русс | укр

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

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


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


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

API-подібні процедури в мовою Асемблер. Процедури в Assembler

Процедури в мовою Асемблер працюють також, як і в інших мовах програмування.

Приклад: Написати програму на Асемблері обчислення виразів: b/c + ас
пгде а =5;
b =27;
c = 86;
пе =1986;
d =1112;
пРезультат обчислення виразу зберегти в пам'яті. Навести значення і порядок розміщення дані в пам'яті.


Текст програми

.386 ; директива визначення команд мікропроцесора
.model flat,stdcall ; завдання лінійної моделі пам'яті
; але угоди ОС Windows
option casemap:none ; відміну маленьких і великих букв
includelib\masm32\lib\kernel32.lib
ExitProcess proto :DWORD
ADDDD proto :WORD, :WORD, :WORD ; прототип процедури
.data ; директива визначення дані
res dw 2 dup(0) ; резервування комірок для результату
.code ; директива початку коду програми
start: ; мітка початку програми з ім'ям start
invoke AddDD,5,86,1986 ; виклик директиви AddDD з параметрами
invoke ExitProcess,0
ADDDD proc arg1:WORD,arg2:WORD,arg3:WORD
mov eax,0 ; очищення регістрів
mov ebx,0
mov ecx,0
mov edx,0

mov ах,arg3 ; arg3 = 1986
div arg2 ; операція ділення
mov bx,ax
mov cx,dx

mov ах,arg1 ; ах := arg1
mul arg2 ; ax* arg2 = 86
SHL edx,16 ; операція здвигу
mov dx,ax

add ebx,edx
mov res,cx ; запам'ятовування в пам'яті
mov res+2,dx ; запам'ятовування в пам'яті
ret ; повернення з процедури
AddDD endp ; закінчення процедури з ім'ям AddDD
end start ; закінчення програми з ім'ям start


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

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

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


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