2014-03-06 22 views
1

我最近研究了汇编,并用emu8086玩了一下。我有很多乐趣和学习很多。 但是我确实会错过一件事,如果在我模拟或编译之前我能看到所有寄存器内容(如我在写),那将会非常棒。任何程序集IDE是否提供此功能? 我宁愿如果我也可以用NASM语法编写8086程序集,但任何一般的x86程序集都会提升我脑海中记录寄存器的负担,这将是天赐良机,也是非常高效的!具有特定功能的汇编器IDE

回答

2

我不认为你有这样的想法。粗略地说,如果你能知道寄存器的价值,你就不需要一个程序。寄存器值根据输入和其他事物而变化,并且不能保证在不同时间的代码中的相同点处相同。考虑一个循环变量。你想要显示什么值?

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? 
+0

对我感到羞耻!你是对的。实际上循环不会是那么大的问题,人们可以将整个循环解释为动态解释器中的一条指令,这仍然非常有用。更糟糕的是,有些代码无意中跳回代码,而有意不保存寄存器。像这样跳来跳去,会让翻译更加混乱,让它变得毫无用处。 –