assembly - x86 汇编语言中跳转到特定行

标签 assembly x86 masm

在 x86 汇编语言中,是否可以指定跳转到特定行号?在这里,我尝试对第 3 行使用 jmp 指令。(我还不知道将标签作为参数传递给函数的方法,所以我尝试在这种情况下使用行号而不是标签。)

.686p
.model flat,stdcall
.stack 2048
.data

ExitProcess proto, exitcode:dword
.code

start:

jmp 3; this produces the error shown below

mov ax, 0
mov bx, 0
mov ah, 1

invoke  ExitProcess, 0
end start

上面的代码产生错误1>p4.asm(11): error A2076: 跳转目标必须指定标签

最佳答案

您可以在该行放置一个标签。根据您的汇编语言方言,您可能能够使用数字本地标签,或者可能需要使用符号标签。下面是一个可能的例子。我这里只有 NASM 进行测试,所以我不太确定这个示例是否能很好地映射到 MASM,但您应该明白:

start:
    jmp .line3
    mov ax, 0
.line3:
    mov bx, 0
    mov ah, 1

NASM 使用前导 . 来标识本地标签。

关于assembly - x86 汇编语言中跳转到特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16028795/

相关文章:

c - ARM 皮质 M0+ : How to use "Branch if Carry" instructions in C-code?

c++ - Debian Stretch 和 Jessie 32 位库

c - 在c中访问进程独立寄存器的值

c++ - 在内联汇编中访问 C 结构成员

c++ - 程序集显示大量重复代码?

assembly - 汇编 cmp 指令到底比较什么?

assembly - 为什么 clang 的结尾使用 `add $N, %rsp` 而不是 `mov %rbp, %rsp` 来恢复 `%rsp` ?

windows - NASM 教程使用 int 80h,但这不适用于 Windows

assembly - 在 8086 中的变量中存储标志值 - 汇编语言

assembly - 如何将负整数转换为字符串并在 MASM Assembly 中输出