۱۶-فروردین-۱۳۹۱, ۰۵:۳۷:۵۹
خواندن و نوشتن پورت ها با دستورات اسمبلی
جمع دو عدد با یک دیگر
ضرب دو عدد با یک دیگر
کد:
Procedure WritePortOut(wPort, Value: Word);
var
bValue: Byte;
Begin
bValue := Trunc(Value and 255);
Asm
MOV DX, wPort
MOV AL, bValue
OUT DX, AL
End;
End;
Function ReadPortIn(wPort: Word): Word;
var
bValue: Byte;
Begin
Asm
MOV DX, wPort
IN AL, DX
MOV bValue, AL
End;
ReadPortIn := bValue;
End;
جمع دو عدد با یک دیگر
کد:
Function Sum(X, Y: Integer): Integer; stdcall;//Fastcall // جمع دو عدد را حساب می کند
begin
asm
MOV EAX,X
ADD EAX,Y
MOV @Result,EAX
end;
End;
ضرب دو عدد با یک دیگر
کد:
Function LongMul(X, Y: Integer): Longint; // ضرب دو عدد را حساب می کند
asm
MOV EAX,X
IMUL Y
end;