運算式:EAX = 7*EAX - 2*EBX - EBX/8
我的代碼:
start:
mov EAX,9
mov EDX ,7
mul EDX ; EAX<-EAX*EDX
mov EDX,EAX ; EDX<-EAX*EDX<=>(7*9)
mov EBX,8
mov EAX,2
mul EBX; EAX<- EAX*EBX (2*8)
mov ECX,EAX
sub EDX,ECX; <=>7*EAX-2*EBX (7*9-2*8)
mov EAX,EBX
div EBX ; EAX <=> 8/8
sub EDX,EAX; <=> 7*9-2*8-8/8
push 0
call exit
end start
uj5u.com熱心網友回復:
EAX = 7*EAX - 2*EBX - EBX/8
不是因為運算式包含乘法 (*) 或除法 (/),您的解決方案應該使用這些操作。
- 因為
7*EAX您可以使用更簡單的imul eax, 7. EBX您可以簡單地減去EBX兩次,而不是加倍。- 為了計算 的八分之一
EBX,您只需將其值向右移動 3 次即可。
imul eax, 7
sub eax, ebx
sub eax, ebx
shr ebx, 3
sub eax, ebx
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/443218.html
上一篇:為什么MOV指令被ADD指令取代
