Сабақ мақсаты: Ассемблер тілінде процедураны қолданып жұмыс жасауды үрену яғни функцияларға берілген есептерді шығару



бет1/2
Дата07.04.2022
өлшемі33,52 Kb.
#138296
түріСабақ
  1   2
Байланысты:
11lab
9кл СОР №5 3 четв. 1 вариант

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


Достарыңызбен бөлісу:
  1   2




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет