-3
我想用JMP和JZ寫彙編階乘代碼,我是新來組裝這有什麼錯我的彙編代碼
輸入應該是EAX和輸出是EBX
mov eax,3h ;factorial of 3
;initialize registers
mov ebx,0h
mov ecx,eax
dec ecx
mov edx,0h
loopstart:
mul ecx ;edx:eax = eax * ecx
add ebx,eax ;ebx = ebx + eax
dec ecx ;ecx = ecx - 1
jz exitloop ;jump to exitloop if the last math is zero (in this ex:dec)
jmp loopstart ;jump to loopstart
exitloop:
;mov eax,ebx
call ebxprint; should be 6
查找EAX的階乘
輸入:2
輸出:2
輸入:3
輸出:12
輸入:4
輸出:60
所以,這裏有什麼問題嗎?
描述實際輸出,註釋代碼,並學習如何使用調試器。提示:沒有添加因子,爲什麼你有一個? – Jester
爲什麼你反覆添加部分計算的因子到'ebx'?我想你想刪除'add ebx,eax'指令,並在當前註釋掉的地方添加'mov ebx,eax';在'exitloop'之後的mov eax,ebx'。 –
@PaulHankin謝謝 – BaselSayeh