русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Шановні українці! Матеріал був перекладений з російської мови. Тому можуть бути незначні помикли...

Арифметичні операції Асемблер. Команди Асемблера

Програмування арифметичних виразів в мовою Асемблер відбувається через деякі команди такі, як: mul, div, sub, add. Ці команди називаються командами арифметичних операцій.


Mul - команда множення. Вона примножує регістр ax на те, що стоїть після неї. Результат заноситься в
Div - команда поділу. Вона ділить регістр 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 ; повернення управління ОС
start end ; закінчення програми з ім'ям _start

Результат роботи програми


Переглядів: 4767

Повернутися взміст


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн