这是msdos源代码的汇编代码,当我尝试编译该代码时,它显示错误“ MSDOS.ASM(329):错误A2006:未定义符号:AXSAVE”。请guide.please指导我在哪里是错的。我无法理解为什么即使我在结构“ STKPTRS”下声明了变量AXSAVE时也未声明为符号。
CODE SEGMENT
CODE ENDS
CONSTANTS SEGMENT BYTE
CONSTANTS ENDS
DATA SEGMENT WORD
DATA ENDS
DOSGROUP GROUP CODE,CONSTANTS,DATA
SEGBIOS SEGMENT
SEGBIOS ENDS
; BOIS entry point definitions
IF IBM
BIOSSEG EQU 60H
ENDIF
IF NOT IBM
BIOSSEG EQU 40H
ENDIF
; Location of user registers relative user stack pointer
STKPTRS STRUC
AXSAVE DW ? <--MSDOS.ASM(329):error A2006:undefined symbol: AXSAVE
BXSAVE DW ?
CXSAVE DW ?
DXSAVE DW ?
SISAVE DW ?
DISAVE DW ?
BPSAVE DW ?
DSSAVE DW ?
ESSAVE DW ?
IPSAVE DW ?
CSSAVE DW ?
FSAVE DW ?
STKPTRS ENDS
LEAVE:
CLI
MOV SP,CS:[SPSAVE]
MOV SS,CS:[SSSAVE]
MOV BP,SP
MOV BYTE PTR [BP.AXSAVE],AL
IF DSKTEST
MOV AX,CS:[NSP]
MOV CS:[SPSAVE],AX
MOV AX,CS:[NSS]
MOV CS:[SSSAVE],AX
ENDIF
POP AX
POP BX
POP CX
POP DX
POP SI
POP DI
POP BP
POP DS
POP ES
IRET
DATA SEGMENT WORD
; Init code overlaps with data area below
ORG 0
SPSAVE DW ?
SSSAVE DW ?
IF DSKTEST
NSS DW ?
NSP DW ?
ENDIF
DATA ENDS
END