汇编翻译为Pascal

genispan genispan 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
有没有大牛帮忙翻译下下面的汇编代码,感激不尽!

procedure _ClearAlpha(Src: Pointer; Count: integer; Value: longword);
asm
{ Clear alpha }
PUSH EDI

MOV EDI, EAX {X}
MOV EAX, ECX {Value}
MOV ECX, EDX {Count}
TEST ECX,ECX
JS @exit
AND EAX, $00FFFFFF
@1:
MOV EDX, [EDI]
AND EDX, $00FFFFFF
CMP EDX, EAX
JNE @2
MOV [EDI], EDX
@2:
ADD EDI, 4

LOOP @1

@exit:
POP EDI
end;

还有一段:

procedure _FillLongwordRect(Src: Pointer; W, H, X1, Y1, X2, Y2: Integer; Value: Longword);
asm
PUSH EDI
PUSH EAX
PUSH EBX
PUSH ECX
PUSH EDX

MOV EDI, EAX
XOR EBX, EBX
XOR EAX, EAX
MOV EBX, W
MOV EAX, Y1
MUL EBX
ADD EAX, X1
ADD EDI, EAX
ADD EDI, EAX
ADD EDI, EAX
ADD EDI, EAX

MOV EBX, X2
SUB EBX, X1
INC EBX
TEST EBX,EBX
JS @exit

MOV EDX, Y2
SUB EDX, Y1
INC EDX
TEST EDX,EDX
JS @exit
MOV EAX, VALUE

@1:
PUSH EDI
MOV ECX, EBX
CLD
REP STOSD
POP EDI
POP ECX
ADD EDI, ECX
ADD EDI, ECX
ADD EDI, ECX
ADD EDI, ECX
PUSH ECX
DEC EDX
CMP EDX, 0
JNE @1

@exit:
POP EDX
POP ECX
POP EBX
POP EAX
POP EDI
end;

...全文
评论
收藏 已收藏
分享
返回顶部
genispan
Delphi 5,944 成员 262,941 内容