我创建了变量:
Y sword 8
Z sword 20
T sword 68
B sword ?
我必须评估以下内容,B = 4T - (8 + Z)+ Y
我真的不熟悉如何做到这一点。有人可以帮我理解吗?
答案 0 :(得分:1)
假设剑是签名的16位数字:
movsx eax,sword ptr T
movsx ebx,sword ptr Y
shl eax,2 ; faster than imul
movsx edx,sword Z
add eax,ebx
add edx,8
sub eax,edx
mov sword ptr B,ax
然后优化一点:
movsx eax,sword ptr T
movsx ebx,sword ptr Y
movsx edx,sword Z
lea eax,[ebx+eax*4] ; less code than shr
add edx,8
sub eax,edx
mov sword ptr B,ax
答案 1 :(得分:-1)
在仍然学习汇编的重要概念时,一种简单的方法是用C / C ++编写程序并让编译器输出汇编。从那里,研究语法,看看它是否有意义。这实际上就是我学习x86程序集的方式......