Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 具有特定功能的汇编IDE_Assembly_Nasm_X86 16 - Fatal编程技术网

Assembly 具有特定功能的汇编IDE

Assembly 具有特定功能的汇编IDE,assembly,nasm,x86-16,Assembly,Nasm,X86 16,我最近深入研究了组装,并稍微玩弄了一下emu8086。我玩得很开心,也学到了不少东西。 然而,我真的错过了一件事,如果在我模拟或编译之前,我能在编写时看到所有寄存器内容,那将是多么棒啊。是否有任何汇编IDE提供此功能? 如果我也能用NASM语法编写8086汇编,我会更愿意,但是任何能在我头脑中消除跟踪寄存器负担的通用x86汇编都是天赐良机,而且效率很高 我想你还没有考虑清楚。粗略地说,如果你能知道寄存器的值,你就不需要程序了。寄存器值根据输入和其他内容而变化,并且也不能保证在不同时间在代码中的同

我最近深入研究了组装,并稍微玩弄了一下emu8086。我玩得很开心,也学到了不少东西。 然而,我真的错过了一件事,如果在我模拟或编译之前,我能在编写时看到所有寄存器内容,那将是多么棒啊。是否有任何汇编IDE提供此功能?
如果我也能用NASM语法编写8086汇编,我会更愿意,但是任何能在我头脑中消除跟踪寄存器负担的通用x86汇编都是天赐良机,而且效率很高

我想你还没有考虑清楚。粗略地说,如果你能知道寄存器的值,你就不需要程序了。寄存器值根据输入和其他内容而变化,并且也不能保证在不同时间在代码中的同一点相同。考虑一个循环变量。您希望显示什么值

    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?

我真丢脸!你是对的,实际上循环不会有太大的问题,可以在动态解释器中将整个循环解释为一条指令,这仍然非常有用。更糟糕的是,在故意不保存寄存器的情况下,代码会无序跳回。像那样跳来跳去会使口译员更加混乱,变得毫无用处。