Косвенный переход - раздел Компьютеры, Практическая работа №1 Архитектура ЭВМ и вычислительных систем Теперь Рассмотрим Другую Разновидность Безусловного Перехода - Косвенный Пере...
Теперь рассмотрим другую разновидность безусловного перехода - косвенный переход. В этом случае в команде перехода указывается не сам адрес перехода, а то место, где находится этот адрес. Таким местом может быть регистр общего назначения или слово памяти:
JMP r16 или JMP m16
В этих командах берется содержимое указанного регистра или слова памяти, оно рассматривается как адрес некоторой команды программы и именно по этому адресу делается переход. Причем этот адрес рассматривается как "настоящий", а не отсчитанный от команды перехода.
Примеры ([х] - содержимое ячейки или регистра х):
A DW L
...
JMP А ; goto [A] = goto L
MOV DX,A ; DX=L
JMP DX ; goto [DX] = goto L
L: ...
Косвенные переходы используются в тех случаях, когда адрес перехода становится известным только во время счета программы.
Возьмем команду JMP Z, где Z - некоторое имя (но не имя регистра). Что это такое - прямой переход по метке Z или косвенный переход по адресу из ячейки Z? Если имя Z описано до этой команды, то здесь проблемы нет: если именем Z помечена команда (рис. а), то это переход по метке, а если имя Z описано в директиве DW (рис. б), то это косвенный переход.
Z: INC AX Z DW L JMP Z ; goto ?… … … JMP Z ;goto Z JMP Z ;goto L Z …a) б) в)
Но если Z - ссылка вперед, т. е. это имя описывается позже (рис. в), тогда ассемблер не будет знать, какой здесь переход. Чтобы снять эту неоднозначность, принято следующее соглашение: в подобной ситуации ассемблер всегда считает, что Z - метка, и потому всегда формирует команду прямого перехода по этой метке (причем команду длинного перехода). Если же затем обнаружится, что Z - не метка, то будет зафиксирована ошибка.
Так вот, если нас это правило не устраивает, если нам нужен косвенный переход, то мы обязаны сообщить об этом ассемблеру. Для этого используется оператор PTR: вместо просто имени Z надо записать конструкцию WORD PTR Z, которой мы сообщаем ассемблеру, чтобы он рассматривал Z как имя переменной размером в слово, чтобы он формировал машинную команду косвенного перехода.
Итак, при переходах вперед имеем следующие случаи:
JMP Z ;goto Z JMP Z ;ошибка JMP WORD PRT Z ;goto L… … …Z: Z DW L Z DW L
Архитектура ЭВМ и вычислительных систем... Тема Выполнение операций сложения и вычитания в обратном и дополнительном... Цель работы Научиться производить операции сложения и вычитания в дополнительных и обратных кодах...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ:
Косвенный переход
Что будем делать с полученным материалом:
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Особенности сложения чисел в обратном и дополнительном кодах.
При сложении чисел в дополнительном коде возникающая единица переноса в знаковом разряде отбрасывается.
При сложении чисел в обратном коде возникающая единица переноса в знаковом разряде п
Числа с фиксированной точкой.
Запись числа с фиксированной точкой обычно имеет знаковый и цифровой разряды. Фиксированная точка означает, что на этапе конструирования ЭВМ было определено, сколько и какие разряды машинного слова
Числа с плавающей точкой.
Для представления чисел с плавающей точкой (ЧПТ) используется полулогарифмическая форма записи числа:
N = ± mq ± p
где q- основание системы счисления,
Умножение двоичных чисел
Применительно к двоичной ПСС наиболее известны следующие основные способы выполнения операций умножения:
умножение начиная с младших разрядов множителя:
Проверка состава оборудования
В программе, предназначенной для тиражирования, очень важной характеристикой является переносимость. Поскольку ПЭВМ разных пользователей могут иметь существенные отличия в конфигурации оборудования
Тип ПЭВМ
В конце ПЗУ BIOS по адресу FF00:0FFE записан байт типа ПЭВМ. Специфицированы следующие 4 значения этого байта для машин фирмы IBM: 0xFF - IBM PC; 0xFE - XT; 0xFD - PCjr; 0xFC - AT. Для ПЭВМ других
Состав оборудования
Опеределять состав оборудования следует только после того, как мы определили тип ПЭВМ. Это обусловлено тем, что способы получения информации о составе оборудования различны для XT и для AT. Рассмот
Определение объема оперативной памяти
Методика определения объема памяти - такая же, как и определения списка оборудования. Объем ОЗУ (в Кбайтах) находится в области памяти BIOS по адресу 0040:0013 (2-байтное слово) и может быть получе
Команды сложения и вычитания
В ПК имеется несколько команд сложения и вычитания. Основными из них являются следующие:
Сложение: ADD op1, op2Вычитание (subtract): SUB op1, op2 В этих к
Команды умножения
Если сложение и вычитание беззнаковых и знаковых чисел производятся по одним и тем же алгоритмам, то умножение чисел этих двух классов выполняется по разным алгоритмам, в связи с чем в ПК имеются д
Команды деления
Как и умножение, деление чисел без знака и со знаком также реализуется двумя командами:
Деление целых без знака (divide): DIV ор
Деление целых со знаком (integer
Изменение размера числа
Рассмотрим такую задачу. Пусть к числу из регистра ВХ надо прибавить число из регистра AL: BX:=BX+AL. Здесь требуется сложить слово с байтом, но в ПК нет команды сложения слова с байтом. Поэтому, п
Расширение байта до слова(convert byte to word): CBW
У этой команды местонахождение операнда и результата фиксировано: операнд всегда берется из AL, а результат всегда записывается в АХ. Команда записывает в регистр АН число 00h или 0FFh в зависимост
Логические команды
Логическим командам, которые, как следует из их названия, выполняют логические операции - отрицание, конъюнкцию и дизъюнкцию, присущ ряд общих черт.
Во-первых, все они реализуют, как говор
Ор1 ор2
r8 i8, r8, m8
m8 i8,r8
r16 il6, rl6, ml6
m16 il6, rl6
Команда производит поразрядное логическое умножение операндов и записы-вает результат на место первого опер
Проверка: TEST opl,op2
Это аналог команды AND, но результат логического умножения никуда не записывается. Главное в команде TEST - установка флагов. Как уже было сказано, в логических командах интерес представляет только
Исключающее ИЛИ (exclusive OR): XOR opl,op2
Допустимые типы операндов - как в команде AND.
И здесь результат записывается на место первого операнда, причем i-й бит результата равен 0, если i-e биты операндов совпадают, и равен 1, ес
Прямой переход
В данном случае в качестве ор указывается метка той команды, на которую надо передать управление:
JMP <метка>
Пример:
JMP L ;следующей будет выполняться команда с м
Команды сравнения и условного перехода
Если переход осуществляется только при выполнении некоторого условия и не осуществляется в противном случае, то такой переход называется условным. Условный переход обычно реализуется в два шага: сн
Команды управления циклом
С помощью команд перехода можно реачизовать любые разветвления и циклы. Например, следующие операторы языка Паскаль
а) if X>0 then S1 else S2
б) while X>0 do S
в) r
Хотите получать на электронную почту самые свежие новости?
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Новости и инфо для студентов