_TEXT SEGMENT BYTE PUBLIC 'CODE'
_TEXT ENDS
_DATA SEGMENT WORD PUBLIC 'DATA'
_DATA ENDS
CONST SEGMENT WORD PUBLIC 'CONST'
CONST ENDS
_BSS SEGMENT WORD PUBLIC 'BSS'
_BSS ENDS
DGROUP GROUP _DATA,CONST,_BSS
ASSUME CS:_TEXT,DS:DGROUP,SS:DGROUP
_DATA SEGMENT
public sign
_sign DW 0 ;返回到C程序中的标志变量
_DATA ENDS
public _deinstall
extrn _ss_save:NEAR
extrn _sp_save:NEAR
_TEXT SEGMENT
_deinstall PROC FAR
PUSH SI
PUSH DI
PUSH BP
MOV WORD PTR _ss_save,SS ;保存主程序的栈
MOV WORD PTR _sp_save,SP
MOV CS:_ds_save,DS ;保存数据段
MOV hx,CS
MOV DX,OFFSET terminateAddr ;BX:DX指向程序的结束地址
INC _sign
INT 62H ;调用Communicate
JMP SHORT noterminate
terminateAddr:
MOV AX,CS:_ds_save
MOV DS,AX
INC _sign
MOV SS,WORD PTR _ss_save ;恢复栈
MOV SP,WORD PTR _sp_save
noterminate:
POP BP
POP DI
POP SI
RET
_deinstall ENDP
_ds_save DW 0
_TEXT ENDS
END
说明: 这段代码是我从 王仕元 那本书上抄的,就是 TSR 那个例子里的。 用 WIN-TC 编译不过去 郁闷死了!
错误提示:
正在汇编文件: msrt1.ASM
**警告** msrt1.ASM(7) 保留字作为标识符使用: CONST
**错误** msrt1.ASM(14) 未定义符号: sign
**错误** msrt1.ASM(29) 未定义符号: hx
急求 大家指点 该怎么解决啊 在线等 ! 万分感谢
------解决方案--------------------------------------------------------
你再看下,抄错没有。
------解决方案--------------------------------------------------------
14 行:public sign 应该是 public _sign
29 行:MOV hx,CS 应该是 mov bx, cs
那些错误提示不是很明确了么?