Программирование арифметических выражений в языке Ассемблер происходит через некоторые команды такие, как: mul, div, sub, add. Эти команды называются командами арифметических операций.
Mul – команда умножения. Она умножает регистр ax на то, что стоит после нее. Результат заносится в ax.
Div – команда деления. Она делит регистр ax на то, что стоит после нее. Результат заносится в ax.
Add – команда сложения. Слаживает два числа. Результат заносится в первый регистр.
Sub – команда вычитания. Вычитает два числа. Результат заносится в первый регистр.
Пример: Написать программу на ассемблере вычисления выражения: а – e/b – de;
где а =5;
b =27;
c = 86;
е =1986;
d =1112;
Результат вычисления выражения сохранить в памяти. Навести значение и порядок размещения данные в памяти.
Текст программы
.686 ; директива определения типа микропроцессора
.model flat,stdcall ; задание линейной модели памяти
; но соглашения ОС Windows
.data ; директива определения данные
_a dw 5 ; запись в 16-разрядный амбарчик памяти с именем _а числа 5
_b dw 27 ; запись _b = 16h
_c dw 86 ; запись _c = 56h
_e dw 1986 ; запись _e = 7C2h
_d dw 1112 ; запись _d = 458
res dw 0 ; резервирование памяти для сохранения переменной res
.code ; директива начала сегмента команд
start:
mov edx,0 ; очистка регистров
mov ebx,0 ; очистка регистров
mov ecx,0 ; очистка регистров
mov ах,_e ; в регистр ах заносим число _e = 7C2h
mul _d ; множим _e и _d
SHL edx,16 ; делаем здвиг на 16
mov dx,ax
push edx ; бросаем значение в стек
mov edx,0
mov ах,_e
mov cx,_b
div cx ; делим ах с cx
pop ecx ; достаем из стеку значения
sub ecx,eax ; отнимаем
mov ах,_a
sub eax,ecx
mov res, eax
ret ; возвращение управление ОС
end start ; окончание программы с именем _start
Результат работы программы