Передача параметров через стек

 

PUSH BP

MOV BP, SP

PUSHA

 

POPA

POP BP

RET k

6. Загрузка дальнего указателя: LDS reg,mem

Команда загружает операнд памяти (двойное слово) в регистр сегмента и в регистр-получатель.

 

 

{$L sum.obj}

Program abc;

Uses CRT;

Const n=20;

Type tm = Array[1..n] of integer;

Var A: tm; i, s :integer;

Procedure SUM (Var A: tm; k:integer; var s: integer);external;

Begin

Clrscr; Randomize;

For i:= 1 to n do begin

A[i]:= Random (100);

Write (A[i]:3);

End;

SUM(A,n,s);

Writeln;

Write(s);

Readkey;

End.

 

 

.286 ; указание типа процессора и набора команд

public sum

stack1 segment stack

db 128 dup (?)

stack1 ends

code segment byte public

assume cs:code, ss:stack1

sum proc near

push bp

mov bp,sp

pusha

lds si,[bp+10]

mov cx,[bp+8]

lds di,[bp+4]

mov ax,0

cycl: add ax,[si]

add si,2

loop cycl

mov [di],ax

popa

pop bp

ret 10

sum endp

code ends

end

 








Дата добавления: 2015-10-09; просмотров: 509;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.