Перечислите команды умножения двоичных чисел. Опишите синтаксис каждой команды и принцип ее работы. Приведите примеры умножения двоичных чисел.
Команды MUL и IMUL предназначены для умножения беззнаковых и знаковых двоичных чисел соответственно.
Синтаксис:
mul множитель_1
Команда MUL выполняет умножение содержимого источника и регистра AL, АХ, ЕАХ (в зависимости от размера источника) и помещает результат в АХ, DX:AX, EDX:EAX соответственно.
IMUL источник
Источник (регистр или переменная) умножается на AL, АХ или ЕАХ (в зависимости от размера операнда), и результат располагается в АХ, DX:AX или EDX.EAX соответственно.(Умножение со знаком)
IMUL приемник, источник
Источник (число, регистр или переменная) умножается на приемник (регистр), и результат заносится в приемник.(Умножение со знаком)
IMUL приемник, источник1, источник2
Источник 1 (регистр или переменная) умножается на источник 2 (число), и результат заносится в приемник (регистр). (Умножение со знаком).
Пример:
.data
rez db 45
.code
mov eax,25
mul rez
Перечислите команды безусловного перехода. Опишите синтаксис каждой команды и принцип ее работы. Приведите примеры использования команд безусловного перехода.
Всего в системе команд микропроцессора есть несколько кодов машинных команд безусловного перехода jmp. Их различия определяются дальностью перехода и способом задания целевого адреса.
Синтаксис команды безусловного перехода:
jmp [модификатор] адрес_перехода
jmp - безусловный переход без сохранения информации о точке возврата.
|
|
Адрес_перехода представляет собой адрес в виде метки либо адрес области памяти, в которой находится указатель перехода.
jmp regl6
jmp reg32
Здесь reg16 (reg32) — один из 16- или 32-разрядных регистров адрес, по которому передается управление, должен находиться в одном из этих регистров.
Пример:
L1:
JMP ESI
jmp dword ptr [ESI]
JMP L1
Дайте определение понятию «таблица», «прямой табличный доступ». Опишите, как происходит процесс прямого табличного доступа в таблице.
Таблица - последовательность элементов имеющих одинаковую размерность.
Прямой табличный доступ, это доступ к элементу таблицы по индексу. (Непосредственное вычисление адреса необходимого элемента в таблице и обращение к нему.)
Предположим, что пользователь ввел номер месяца — 03 и программа должна преобразовать этот номер в алфавитное значение March.
Программа для выполнения такого преобразования включает определение таблицы алфавитных названий месяцев, имеющих одинаковую длину. Так как самое длинное название — September, то таблица имеет следующий вид:
MONTBL DB 'January..' DB 'February.' DB 'March....'
Каждый элемент таблицы имеет длину 9 байт. Адрес элемента 'January' — MONTBL+0, 'February' — MONTBL+9, 'March' — MONTBL+18. Для локализации месяца 03, программа должна выполнить следующее:
|
|
1. Преобразовать введенный номер месяца из ASCII 33h в двоичное 03;
2. Вычесть единицу из номера месяца: 03-1 = 02;
3. Умножить результат на длину элемента (9): 02 х 9 = 18;
4. Прибавить произведение (18) к адресу MONTBL. В результате получится адрес требуемого названия месяца: MONTBL+18.
Дата добавления: 2018-05-09; просмотров: 358; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!