Перечислите команды умножения двоичных чисел. Опишите синтаксис каждой команды и принцип ее работы. Приведите примеры умножения двоичных чисел.



Команды 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!