Лабораторна робота №6
Комарьов Р. Ю.
Тема: «Передача адрес параметрів через стек при взаємодії процедур мовою асемблера для ПЭВМ типу IBM PC/XT/AT»
Мета: Придбання і закріплення практичних навичок у складанні і налагодженні програм мовою асемблера, що організують взаємодію процедур через стек мовою асемблера .
Індивідуальне завдання: Задано масиви А и В по N = 50 елементів (констант типу WORD). Визначити кількість пар елементів, що задовольняють умові Ai > Bi.
Вибір перемінних:
A |
Масив а |
B |
Масив b |
k |
Кількість Ai>Bi |
N |
кількість елементів у масивах |
Текст програми ( laba6.asm ):
data segment
k dw 0
n dw 50
a dw 50 dup (0,1,2,3,4,5,6,7,8,9)
b dw 50 dup (9,8,7,6,5,4,3,2,1,0)
data ends
stak segment stack
dw 100 dup (?)
tos label word
stak ends
code segment
extrn pr:far
assume cs:code, ds:data, ss:stak
m0: mov ax, data
mov ds, ax
mov ax, stak
mov ss, ax
mov sp, offset tos
mov ax, offset n
push ax
mov ax, offset a
push ax
mov ax, offset b
push ax
mov ax, offset k
push ax
call far ptr pr
mov ah,4ch
int 21h
code ends
end m0
( laba61.asm ):
code1 segment
public pr
assume cs:code1
pr proc far
push bp
mov bp, sp
push ax
push bx
push cx
push dx
push si
push di
mov si, [bp+12] ; адрес n
mov cx, [si] ; n
mov si, [bp+10] ; адрес a
mov di, [bp+8] ; адрес b
xor ax, ax
mov dx, ax
m1: mov ax, [si]
cmp ax, [di]
jng m2
inc dx
m2: add si,2
add di,2
loop m1
mov si, [bp+6] ; адрес k
mov [si], dx ; k
pop di
pop si
pop dx
pop cx
pop bx
pop ax
pop bp
ret 8
pr endp
code1 ends
end
Результати роботи програми:
15CE:0000 16 00
Висновок: виконавши дану лабораторну роботу я на практиці придбав і закріпив знання в складанні і налагодженні програм асемблера, що організують взаємодію процедур через стек мовою асемблера .
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.