tre sa fac un program mixt Pascal-asm.mai pe romaneste tre sa fac o functie asm care primeste ca param. a si b , citeste c apeland o proc. pascal si dup'aia calculeaza si returneaza o expresie .problema e la apelul procedurii pascal (c fiind var de tip referinta (aia cu var in fata)) mi se strica tot valoarea var. locale, c la revenirea in fct. asm nu-si pastreaza val citita etc.bag codu aici da de ma lumineaza si pe mine cineva.
procedure citeste(var c : integer);
begin
write('c= ') ; readln(c);
end;
function expresie(var c : integer ; b : integer ; a : integer): integer ; assembler ;
var s:integer;
asm
mov ax,0
mov s,ax
mov ax, ss:[bp+4]
add word ptr ss:[bp-2],ax
mov ax,word ptr ss:[bp+6]
add word ptr ss:[bp-2],ax
{ call citeste
les bx,dword ptr ss:[bp+8]
mov ax,word ptr es:[bx]
sub word ptr s,ax }
mov ax,word ptr ss:[bp-2]
mov sp,bp
end;
var a,b,c,e:integer;
begin{PP}
write('a= '); readln(a);
write('b= '); readln(b);
e:=expresie(c,b,a);
writeln('Expresia a+b-c este egala cu ',e);
readln;
end.
Asm, careva?
1 mesaj
• Pagina 1 din 1
1 mesaj
• Pagina 1 din 1
Cine este conectat
Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 1 vizitator