-2

我遇到了以下汇编代码,但我不明白。

hang:
  jmp hang
  times 512-($-$$) db 0

谁能解释一下,发生了什么?

4

2 回答 2

2

这将导致您的程序通过进入无限循环而挂起,因为会jmp hang跳转到自身。

于 2013-07-21T12:22:13.837 回答
1

该代码用于用 0 填充剩余的程序(如果我没记错的话,它类似于“添加”指令)。它通常用于引导代码,以便将 mbr 签名放在末尾,因此,就“代码”而言,它不应该被执行。

综上所述:

  • 这不会执行停止。

  • 它用于用 '00' 填充程序文件,直到达到 512 字节(在汇编程序的输出文件中!它在运行时什么都不做!)

  • 要停止您的程序,请执行以下操作:

    halt:
      jmp halt
    
于 2013-07-21T15:37:45.603 回答