Цель настоящей работы – освоение арифметических команд, программирование формул на языке ассемблера.
ОСНОВНЫЕ СВЕДЕНИЯ
Команды двоичной арифметики
| ÌÍÅÌÎÊÎÄ | 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.






