请汇编高手帮忙注释段程序

来源:百度知道 编辑:UC知道 时间:2024/05/16 04:59:33
新手啊,请越详细越好
var_2 = word ptr -2
arg_0 = word ptr 4
arg_2 = word ptr 6
arg_4 = word ptr 8
arg_6 = byte ptr 0Ah
arg_A = byte ptr 0Eh
arg_E = word ptr 12h
arg_12 = byte ptr 16h
arg_16 = word ptr 1Ah
arg_18 = word ptr 1Ch

push bp
mov bp, sp
sub sp, 2
push si
mov si, [bp+arg_0]
mov ax, [bp+arg_4]
mov dx, [bp+arg_2]
and dx, 0
and ax, 0FFh
cwd
mov [si], al
mov ax, [bp+arg_2]
and ax, 0FF00h
xor dx, dx
mov cl, 8
call near ptr sub_53D1
mov [si+1], al
mov al, byte ptr [bp+arg_2]
and al, 0FFh
mov [si+2], al
mov al, [bp+arg_6]
mov [si+3], al
mov al, [bp+arg_A]
mov [si+4], al
mov ax, [bp+arg_E]
and ax, 0FF00h
xor

好好看书比什么都强。解释不太清楚的地方还是自己好好学习吧。
var_2 = word ptr -2\*定义VAR_2等于word类型的-2
arg_0 = word ptr 4\*定义arg等于word类型的4,下同。
arg_2 = word ptr 6
arg_4 = word ptr 8
arg_6 = byte ptr 0Ah\*定义arg等于byte类型的0A(10),下同
arg_A = byte ptr 0Eh
arg_E = word ptr 12h
arg_12 = byte ptr 16h
arg_16 = word ptr 1Ah
arg_18 = word ptr 1Ch

push bp\*中断压栈
mov bp, sp
sub sp, 2
push si \*原址压栈
mov si, [bp+arg_0]\*中断处理程序地址,下面开始中断处理程序。
mov ax, [bp+arg_4]
mov dx, [bp+arg_2]
and dx, 0
and ax, 0FFh
cwd
mov [si], al
mov ax, [bp+arg_2]
and ax, 0FF00h
xor dx, dx
mov cl, 8
call near ptr sub_53D1
mov [si+1], al
mov al, byte ptr [bp+arg_2]
and al, 0FFh
mov [si+2], al
mov al, [bp+arg_6]
mov [si+3], al
mov al, [bp+arg_A]
mov [si+4], al
mov ax, [bp+arg_E]
and ax, 0FF00h
xor dx, dx
mov cl, 8
call near ptr sub_53D1
m