Többnyelvű programozás
Igen, bizony lehet Assembly-t használni C++-ban, Pascal-ban, illetve feltételezhetően más programnyelvekben is. Az Assembly kódban természetesen hozzáférhetünk hőn szeretett változóinkhoz is. Win32 alatt nem működnek a 16 bites interruptok!
Megvalósítás:
C++-ban:
_asm
{
ide jöhet az asm kód
}
Pascal-ban:
asm
ide jöhet az asm kód
end;
Egyszerű példa:
C++:
int sum(int a,int b)
{
_asm
{
mov ax,a
add ax,b
mov a,ax
}
return a;
}
Pascal:
program asm;
uses crt;
var
a,b:integer;
begin
clrscr;
readln(a);
readln(b);
asm
mov ax,a
add ax,b
mov a,ax
end;
writeln(a);
asm
xor ah,ah
int 16h
end;
end.
Egy egyszerű feladat, ASM használata nélkül kivitelezhetetlen(elvileg):
Készíts olyan hatványfüggvényt, amely csak 2 változót használ, mégpedig a függvény argumentumait(alap,kitevő)! Az értelmezési tartomány az egész számok halmaza legyen! Feltételezzük, hogy a kitevő nem negatív!
{
if(k<1)return 1;
if(k==1)return a;
_asm
{
mov eax,a
mov ecx,k
dec ecx
}
ciklus:
_asm
{
mul a
loop ciklus
}
_asm
{
mov a,eax
}
return a;
}