0

我正在尝试编译天堂之门

yasm-1.2.0-win64.exe "Heaven's Gate.asm"

使用以下代码:

global main
section .text
main:
    bits 32
        db      9ah ;call 33:in64
        dd      offset in64
        dw      33h
        ;32-bit code continues here

    bits 64
    in64:
        gs mov rax, qword [30h] ;gs not fs
        mov rax, qword [rax+60h]
        mov rax, qword [rax+18h]
        mov rax, qword [rax+30h]
        mov rax, qword [rax+10h]

    bits 32
        retf

但 YASM 告诉我:

Heaven's Gate.asm:6: error: undefined symbol `offset' (first use)  
Heaven's Gate.asm:6: error:  (Each undefined symbol is reported only once.)

不是offset关键字吗?为什么我会收到此错误?

4

1 回答 1

2

offset在 yasm/nasm 语法中是多余的。删除它们,因为标签本身代表它的偏移量。

于 2012-01-26T23:21:52.980 回答