为什么以下指令在gdb中不跳转?

时间:2019-04-10 17:18:48

标签: assembly x86-64 dynamic-linking

我有以下程序exitc.s:

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
   If KeyCode = vbKeyReturn Then
      If Not Shift = acCtrlMask Then
         MsgBox "Enter"
         KeyCode = 0
         Me.parent.Combo.SetFocus
      End If
   End If
End Sub

通过以下方式构建:

[OP@localhost linking]$ cat exitc.s
    .section .text
    .globl _start

_start:
    call exit

通过[OP@localhost linking]$ as exitc.s -o exitc.o [OP@localhost linking]$ ld exitc.o -o exitc -lc -I /usr/lib64/ld-linux-x86-64.so.2 运行它时,会发生以下情况:

gdb

在组装的最后一步,为什么不发生跳跃?

1 个答案:

答案 0 :(得分:0)

  

在组装的最后一步,为什么不发生跳跃?

确实发生了跳转 ,但恰好跳到了下一条指令。

这是完全可以预期的,并且是惰性符号解析的工作方式。您可以例如阅读here