Передача адрес параметрів через стек при взаємодії процедур мовою асемблера для ПЭВМ типу IBM PC/XT/AT

Страницы работы

Содержание работы

Лабораторна робота №6

Виконав студент гр. АП-31б

Комарьов Р. Ю.

Тема: «Передача адрес параметрів через стек при взаємодії процедур мовою асемблера для ПЭВМ типу 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

Висновок: виконавши дану лабораторну роботу я на практиці придбав і закріпив знання в складанні і налагодженні програм асемблера, що організують взаємодію процедур через стек мовою асемблера .

Похожие материалы

Информация о работе