2012-01-26 19 views
0

我试图编译Heaven's Gate为什么不YASM不承认关键词“补偿”?

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关键字?为什么我得到这个错误?

回答

1

偏移是在YASM/NASM语法多余的。删除它们,因为标签本身代表其偏移量。

+0

谢谢!似乎修复错误。 :) – Mehrdad 2012-01-26 23:26:57

+0

至于为什么他们的例子已经清楚地抵消针对YASM,我不知道。在早期版本中可能有masm语法支持或其他东西。 – 2012-01-26 23:34:04

+1

也许,是的。 'dword ptr'等也出现错误,并且删除'ptr'也解决了这个问题。 – Mehrdad 2012-01-27 01:20:07