Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Базовая. Относительный адрес операнда находится в регистре BX, имя которого заключается в квадратные скобки.

Читайте также:
  1. Базовая
  2. Базовая
  3. Базовая идея алгоритма кодирования Хаффмена для двоичных кодов заключается в том, чтобы начинать с малого количества символов и переходить к большим количествам символов.
  4. Базовая информация.
  5. Базовая модель OSI (Open System Interconnection)
  6. Базовая передача данных
  7. Базовая презентация и документация (от 0 до 5 баллов).
  8. БАЗОВАЯ ПРОГРАММА КОРРЕКЦИИ
  9. БАЗОВАЯ ПРОГРАММА СПЕЦИАЛИЗАЦИИ ПО ПСИХОТЕРАПИИ

Относительный адрес операнда находится в регистре BX, имя которого заключается в квадратные скобки.

MOV AL, [BX]

 

Индексная

Относительный адрес операнда находится в реестре SI или DI, имя которого заключается в квадратные скобки

MOV [SI], AL

 

Базовая со смещением

Относительный адрес операнда равен сумме базового адреса и смещения

BX -> DS

BP -> SS

ПРИМЕРЫ:

 

MOV AX, [BP+2]

MOV AX, MAS [BX]

 

Индексная со смещением

Относительный адрес операнда равен сумме индексного регистра и смещения.

MOV AL, [SI+5]

MOV DX, ES:[DI+2]

MOV BL, BUF [DI]

 

Базово – индексная

[BX] [SI] - ds

[BX][DI]- ds

[BP] [SI] - ss

[BP] [DI] -ss

 

Примеры:

Mov ax [bx][si], al

 

Базово – индексная со смещением

Относительный адрес равен сумме базового индексного регистра и смещения.

 

АРИФМЕТИЧЕСКИЕ КОМАНДА

Команда сложения

· Инкремент

INC операнд

R8, 16, 32

M8, 16, 32

Алгоритм:

Операнд:= операнд +1

 

Устанавливает флаги OF, SF, ZF,AF, PF. Не воздействует на флаг CF

INV AX; увеличить значение в ax на 1

· Команда сложения

ADD приемник, источник

Алгоритм:

Приемник:= приемник + источник

 

Устанавливает флаги OF, SF, ZF, AF, PF, CF

 

Если результат выходит за границы операнда приемника (возникает переполнение), то учесть эту ситуацию нужно анализируя флаг CF

Add ax, 678; сложить ax с 678 и результат записать в ax.

 

Сложение с учётом флага переноса CF

 

ADC=: приемник, источник

Алгоритм:

Приемник:= приемник + источник +CF

 

Masm

model small

. data

Sl1 dd 91fe544fh

Sl2 dd 0f0544cdh

ElderREZ db 0; для учёта переноса из страшего разряда результата

Ta

rez dd 0

.steck 256

. code

begin:

Mov ax, @data

Mov ds, ax

Mov ax,word ptr sl1

Add ax, word ptr sl2; сложение младших слов слагаемых

Mov word ptr rez, ax

Mov ax, word sl1+2; сложение старших слов слагаемых + CF

Ade ax, word ptr sl2+2

Mov word ptr rez+2, ax

Ade elderREZ, 0; учесть возможный перенос

Mov ax, 4c00h

Int21h

еnd begin

 

Вычитание чисел числе без знака

· Декремент

DEC операнд

Операнд:= операнд-1

Устанавливает флаги OF,SF,ZF,AF,PF. Не воздействует на флаг CF

DEC AL

 

· Команда вычитания

SUB операнд1, операнд2

Алгоритм

Операнд:=операнд1-операдн2

SUB BX,12; вычесть из bx 12 и записать 12 в bx

Вычитание с учетом заема

Sbb операнд1, операнд 2

Операнд1:= операнд 1-операнд2-CF

Устанавливает флаги OF, SF,ZF,AF,PF,CF

Применяется для выполнения вычитания старших частей значений многобайтных операндов.

Vich_1 = 1122334455667788h

Vich_2=99aabbccddeef0f0h

Masm

Model small

.data

Vich_1 dd 55667788h, 11223344h

Vich_2 dd 0deefofoh, 99aabbcch

Rez dd 2 dup (0)

.stack 256

.code

Start

Mov ax, @data

 

Команды умножения

Умножение числа без знака

MUL сомножитель _1

R8, 16,32

M8,16,32

Местоположение второго сомножителя и результата фиксировано, зависимо от размера первого сомножителя по таблице.

Сомножитель_1 Сомножитель_2 Результат
Байт al 16 бит в ax^ Al – младшая часть результата Ah – старшая часть результата
Слово ax 32 бит в паре dx:ax ax – младшая часть результата dx – старшая часть результата
Двойное слово cax 64 бит в паре edx:eax Eax – младшая часть результата Edx – старшая часть результата

 

Не воздействует на флаги SF, ZF, AF, PF

Если стршая половина результата нулевая, то флаги OF и CF = 0.

Если стршая половина результата ненулевая, то флаги OF и CF =1.

Пример: 25*15

mov al, 25

mov bl, 15

mul bl

Умножение числа со знаком

· IMUL сомножитель_1

R8, 16, 32

M8, 16,32

Аналогична команде mul. Отличается от нее тем, что формирует знак.

· IMUL множ_1, множ_2

R16, 32 R16, 32

M16, 32

18, 16,32

Алгоритм:

Множ_1:= множ_1*множ_2

Оба операнда должны быть одной размерности. Если результат не помещается в отведенный под него регистр, то флаги OF и CF = 1

Пример:

15*23

.386

MOV AX,15

IMUL AX,23

· IMUL рез-т, множ_1, множ_2

R 16, 32 R16. 32 18, 16, 32

M16, 32

Алгоритм:

Рез-т:= множ_1*множ2

Первый и второй операнд должны быть одной размерности. Если результат не помещается в отведённый под него регистр, то флаги OF и CF = 1.

Пример: 186*18

.486

MOV BX, 186

IMUL AX, BX, 18




Дата добавления: 2014-12-19; просмотров: 114 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.009 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав