我最近钻研了装配并且玩了一下emu8086。我有很多乐趣并且学到了很多东西。 但是我确实错过了一件事,如果我能在模拟或编译之前看到所有寄存器内容,那么这将是非常棒的。任何程序集IDE都提供此功能吗? 我更愿意,如果我还可以编写带有NASM语法的8086程序集,但任何一般的x86程序集都可以解决我头脑中寄存器的负担,这将是一个天赐之物,同时也非常高效!
答案 0 :(得分: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?