Цель настоящей работы – освоение арифметических команд, программирование формул на языке ассемблера.
ОСНОВНЫЕ СВЕДЕНИЯ
Команды двоичной арифметики
ÌÍÅÌÎÊÎÄ | OSZAPC | ДЕЙСТВИЕ |
mov DST, SRC | ------ | пересылка, DSTSRC |
xchg OPND1,OPND2 | ------ | обмен, DSTSRC |
add DST, SRC | xxxxxx | сложение, DSTDST+SRC |
adc DST, SRC | xxxxxx | сложение с переносом, DSTDST+SRC+CF |
inc OPND | xxxxx- | увеличить на единицу, OPNDOPND+1 |
sub DST, SRC | xxxxxx | вычитание, DSTDST-SRC |
sbb DST, SRC | xxxxxx | вычитание с заемом, DSTDST-SRC-CF |
dec OPND | xxxxx- | уменьшение на единицу, OPNDOPND-1 |
neg OPND | xxxxxx | изменение знака, OPND0-OPND |
rcl DST, CONT | x----x | циклический сдвиг влево через CF |
rcr DST, CONT | x----x | циклический сдвиг вправо через CF |
rol DST, CONT | x----x | циклический сдвиг влево |
ror DST, CONT | x----x | циклический сдвиг вправо |
sal DST, CONT | xxxuxx | арифметический сдвиг влево |
sar DST, CONT | xxxuxx | арифметический сдвиг вправо |
shl DST, CONT | xxxuxx | логический сдвиг влево |
shr DST, CONT | xxxuxx | логический сдвиг вправо |
Режимы адресации
Обозначения: R – регистр, V – переменная, C – константа.
НАЗВАНИЕ | ОБОЗНАЧЕНИЕ | СОДЕРЖАНИЕ | ПРИМЕР |
РЕГИСТРОВАЯ ПРЯМАЯ | R | операнд находится в регистре | mov AX, SI переслать содержимое регистра SI в регистр AX |
НЕПОСРЕДСТВЕННАЯ | C | непосредственный операнд - константа присутствует в команде | mov AX, 093Ah занести константу 093Ah в регистр AX |
ПРЯМАЯ | V + C или V - C | исполнительный адрес операнда присутствует в команде | mov BX, WW+2 переслать в BX слово памяти, отстоящее от переменной с именем WW на 2 байта |
КОСВЕННАЯ РЕГИСТРОВАЯ | [R] где R - BP, BX, SI, DI | регистр содержит адрес операнда | mov [BX], CL переслать содержимое регистра CL по адресу, находящемуся в регистре BX |
КОСВЕННАЯ РЕГИСТРОВАЯ ОТНОСИТЕЛЬНАЯ | V[R], C[R], [R+V], [R+C], V.[R], [R].C], где R - SI,DI (ИНДЕКСНАЯ) BX,BP (БАЗОВАЯ) | адрес операнда вычисляется как сумма содержимого регистра и смещения | mov M[BX], CL переслать содержимое регистра CL по адресу,отстоящему от переменной M на BX байт |
ИНДЕКСНО-БАЗОВАЯ | [BR][IR], V[BR][IR], [BR][IR]C,где IR - SI, DI, BR - BX, BP | адрес операнда вычисляется как сумма содержимых базового и индексного регистров и возможного смещения | mov [BX][SI]3, AL переслать содержимое регистра AL по адресу, сумме регистров BX, SI и константы 3 |
Замечание. Для всех режимов адресации при формировании физического адреса используется сегментный регистр DS, за исключением случаев, когда в качестве базового регистра выступает регистр BP, в этом случае используется сегментный регистр SS.
|
|