PDA

View Full Version : سوال در مورد تبدیل یک تابع از پاسکال به اسمبلی



bozqurt
پنج شنبه 28 آذر 1387, 16:36 عصر
این کد پاسکال ماست




procedure pset(x,y:longint;r,g,b,a:byte);
var
bank,ofs1:word;
ofs:longint;
begin
ofs:=(y*1024+x)*4;
bank:=ofs div 65536;
asm
mov ax,04f05h
mov bx,0
mov dx,bank
int 10h
end;
ofs1:=ofs-bank*65536;
memw[$A000:ofs1]:=b;
memw[$A000:ofs1+1]:=g;
memw[$A000:ofs1+2]:=r;
memw[$A000:ofs1+3]:=a;
end;

اینم کد اسمبلی که متاسفانه درست کار نمیکنه مشکل در کجاست ؟ و این کد بر خلاف انتظار در قسمت بالای مانیتور نقطه میذاره .



pset proc
mov eax,640
mul y
add ax,x
mov ecx,4
mul ecx
push eax
mov ecx,0ffffh
div ecx
mov dx,ax
mov ax,04f05h
mov bx,0
int 10h
pop eax
mov ebx,eax
mov eax,65536
mul edx
sub ebx,eax
mov ax,0A000h
mov es,ax
mov ah,r
mov es:[bx+2],ah
mov ah,g
mov es:[bx+1],ah
mov ah,b
mov es:[bx],ah
ret
pset endp
x dw 0
y dw 0
r db 0
g db 0
b db 0