10-11-Зертханалық жұмыс. Ассемблер тілінде процедураны қолдану.
Сабақ мақсаты: Ассемблер тілінде процедураны қолданып жұмыс жасауды үрену яғни функцияларға берілген есептерді шығару.
Процедуралар
Процедура - бұл белгілі бір тапсырманы орындау үшін сіздің бағдарламаңыздан шақырылатын кодтың бір бөлігі. Процедуралар бағдарламаны құрылымдық етеді және түсінуді жеңілдетеді. Әдетте, процедура шақырылған жерінен қайтады.
Процедура декларациясы үшін синтаксис:
name PROC
; процедураның коды жазылады
;
RET
name ENDP
name - бұл процедураның аты, жоғарыда және төменде бірдей ат болуы керек, бұл процедуралардың дұрыс жабылуын тексеру үшін қолданылады.
Мысал. max (a,b) + max(5,a-1) өрнегін процедураны қолданып есептеу
.586
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\debug.inc
include \masm32\macros\macros.asm
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\debug.lib
.data
A dw 9
B dw 5
rez dw ?
.code
MAX proc
cmp ax,bx
jge M
mov ax,bx
M: ret
MAX endp
start:
PrintText "max (a,b) + max(5,a-1)-esebin shigaru mysaly:"
PrintLine
mov eax,0
mov ebx,0
mov ax,A
mov bx,B
call MAX ; result in AX
mov rez,ax
mov ax,5
mov bx,A
dec bx
call MAX ; result in AX
add rez,ax
mov dx,rez
PrintDec dx,"decimal"
PrintLine
end start
Достарыңызбен бөлісу: |