Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-50_1.docx
Скачиваний:
9
Добавлен:
02.08.2019
Размер:
707.62 Кб
Скачать
  1. Адресация операндов, способы адресации, примеры команд с различными способами адресации.

Команда - цифровой двоичный код состоящий из 2 последовательностей 0 и 1. Одна из них определяет код операции, а вторая адреса операндов участвующих в операции и место расположения результатов.

Процессор может работать с безадресными командами(1,2,3-адр-ми)

Одноадресные могут работать с операндами, размещенных в регистрах или памяти. Формат 2-х адресных команд м.б различен.

Адрес состоит из 3 частей:<база>,<индекс>,<смещение>.

Способы адресации: непосредственная, прямая, регистровая, косвенно-регистровая, адресация по базе, прямая с индексированием, по базе с индексированием.

1)регистровая: MOV AX,BX;(BX)->AX

Машинный формат 1001001111000011; код операции:100100;d=1;w=1;mod=11;reg=000;r/m=011.

2)непосредственная: MOV AX,25; (25)->AX

CONST EQU 34H; именованная константа cosnt.

MOV AX,CONST; (34H)->AX.

3)прямая: если известен адрес памяти, начиная с которого размещается операнд, то в команде можно его указать: MOV AX,ES:0001

ES- регистр сегмента данных, 0001-смещение внутри сегмента.

Содержание 2-х байт, начиная с адреса (ES)+0001 пересылаются в АХ- ((ES)+0001)->AX

Также м.б записана с помощью символического имени; которое поставлено в соответствие некоторому адресу памяти: DB-байт, DW- слово, DD- двойное слово. Если в сегменте ES содержится директива Var_p, то по команде:

MOV AX,ES: Var_p; ((ES)+Var_p)->AX

MOV AX, Var_p; ((DW)+Var_p)->AX

4)Косвенно-регистровая: в регистре содержится адрес области памяти в которой операнд содержится: MOV AX,[SJ];

Могут использоваться: SI,DI,BX,BP,EAX,EBX,ECX,EDX,EBP,ESI,EDI.

Не могут:AX,CX,DX,SP,ESP.

5)на базе со смещением: MOV AX,[BX]+2; ((DS)+(BX)+2)->AX

MOV AX,[BP+4]; ((SS)+(BP)+4)->AX

6)прямая с индексированием: MOV,AX,MAS[SI];

((DS)+(SI)+MAS)->AX

MAS- адрес в области памяти для работы с массивами.

7)по базе с индексированием: MOV AX, Arr[BX][DJ];

((DS)+(BX)+(DJ)+Arr)->AX

Особенности:1)данные в памяти перевернутые.

2)размер передаваемых данных определяется типом операндов.

3)типы должны соответствовать.

  1. Понятие команды и директивы в Ассемблере, формат команды и директивы.

Ассемблер-язык программирования низкого уровня=> Программа на нем должна пройти 3 этапа обработки.

Команда состоит из 4-х полей:

[<имя>[:]]<код операции>[<операнды>][;комментарии]

В []-необязательные поля, имя- символическое имя ассемблера, используется в качестве метки для обращения к этой команде, передачи управления на данную команду.

[:]- метка является внутренней.

Код операции определяет какое действие должен выполнить процессор.

Поле <операнды> содержит адреса данных или данные, участвующие в операции и местоположение результатов, через “,”

JMP M1: команда безусловной передачи на команду с меткой М1

M1: MOV AX,BX; пересылка содержимого регистра BX в регистр AX.

Директива: [<имя>]<код псевдо операции><операнды>[;комменты]

Код псевдооперации определяет назначение директивы.

Операндов мб различное кол-во и для одной директивы.

M1 DB 1,0,1,0,1; директива DB определяет 5 байтов в памяти и заполняет их 0 или 1, причем адрес первого байта М1.

M2 Dv ?,?,?; 3 байта ничем не заполнены, адрес первого М2.

Proc; директива начала процедуры

Endp; директива конца процедуры

Segment; директива начала сегмента

Ends директива конца сегмента.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]