1
我最近研究了彙編,並用emu8086玩了一下。我有很多樂趣和學習很多。 但是我確實會錯過一件事,如果在我模擬或編譯之前我能看到所有寄存器內容(如我在寫),那將會非常棒。任何程序集IDE是否提供此功能? 我寧願如果我也可以用NASM語法編寫8086程序集,但任何一般的x86程序集都會提升我腦海中記錄寄存器的負擔,這將是天賜良機,也是非常高效的!具有特定功能的彙編器IDE
我最近研究了彙編,並用emu8086玩了一下。我有很多樂趣和學習很多。 但是我確實會錯過一件事,如果在我模擬或編譯之前我能看到所有寄存器內容(如我在寫),那將會非常棒。任何程序集IDE是否提供此功能? 我寧願如果我也可以用NASM語法編寫8086程序集,但任何一般的x86程序集都會提升我腦海中記錄寄存器的負擔,這將是天賜良機,也是非常高效的!具有特定功能的彙編器IDE
我不認爲你有這樣的想法。粗略地說,如果你能知道寄存器的價值,你就不需要一個程序。寄存器值根據輸入和其他事物而變化,並且不能保證在不同時間的代碼中的相同點處相同。考慮一個循環變量。你想要顯示什麼值?
call get_int ; this function returns a number entered by the user in eax
; so, what's the value of eax here that your IDE should print?
; okay let's multiply it by 10 using addition in a loop
mov edx, eax
mov ecx, 9 ; ecx is 9 here, no problem
addloop:
add eax, edx ; but what's the value of eax here?
dec ecx ; or ecx here?
jnz addloop
; what's the result in eax?
對我感到羞恥!你是對的。實際上循環不會是那麼大的問題,人們可以將整個循環解釋爲動態解釋器中的一條指令,這仍然非常有用。更糟糕的是,有些代碼無意中跳回代碼,而有意不保存寄存器。像這樣跳來跳去,會讓翻譯更加混亂,讓它變得毫無用處。 –