直接装入法:
PUSH DS
PUSH AX
XOR AX, AX
MOV DS, AX ;
MOV AX, OFFSET SERVE ;取来偏移地址.
MOV DS: [60H * 4], AX ;写入.
MOV AX, SEG SERVE ;取来段地址.
MOV DS: [60H * 4 + 2], AX ;写入.
POP AX
POP DS
;完.
--------------------
利用DOS系统功能调用:
PUSH DS
MOV AX, SEG SERVE ;取来段地址.
MOV DS, AX
MOV DX, OFFSET SERVE ;取来偏移地址.
MOV AX, 2560H ;25H:写中断向量;60H:中断类型码.
INT 21H
POP DS
;完
由于该中断服务程序的入口地址为SERVE,因此其偏移地址已确定,关键是你要理解你要写的代码中,其CS和中断服务程序的CS是一致的。
代码如下:
MOV AX,0
MOV DS,AX
MOV BX,60H*4
MOV DX,OFFSET SERVE
MOV [BX],DX
ADD BX,2
PUSH CS
POP AX
MOV [BX],AX
.
.
SERVE:
.
.
SERVE先把基址和偏移分开。然后再分别mov到4*60的地址去
org 60h
ljmp serve
不解释,你试了就知道