Extras din seminar
Acest paragraf trateaza scrierea de cod asamblare in interiorul unui program pascal. In cele ce urmeaza, cunostintele teoretice vor fi introduse prin intermediul exemplelor. Mai exact, vom considera o singura problema pe care o vom rezolva in mai multe variante. Problema este urmatoarea:
Problema. Sa se calculeze suma a doua cuvinte fara semn, folosind asamblorul inline oferit de Borland Pascal 7.
Varianta 1. Se rezolva problema prin intermediul unui bloc asm - end plasat în cadrul unei functii menite a calcula suma celor doua cuvinte fara semn.
program v11;
function suma(x, y:word):word;
{ Functia primeste ca parametru doua numere întregi si returneaza suma acestora }
var rez:word;
begin
{ În interiorul blocului asm end se pot folosi fara restrictie atât variabilele globale, cât si cele locale, indiferent daca acestea sunt declarate local, sau fac parte din lista parametrilor formali. In limbajul Pascal tipurile de date integer si word au dimensiunea de reprezentare de 2 octeti.}
asm
mov ax, x { mutam valoarea variabilei x în registrul AX }
add ax, y { adunam la valoarea memorata în AX valoarea lui y }
mov rez, ax
{ memoram în variabila locala rez, suma celor doua numere din registrul AX}
end;
suma := rez; { Functia va returna aceasta valoare }
end;
var s, a, b:word;
begin
a := 7;
b := 9;
s := suma(a, b); { calculam si afisam suma }
writeln('s = ', s);
end.
Preview document
Conținut arhivă zip
- Asamblorul inline Borland Pascal.doc