概述
由于内中断(int)事实上是调用预先存在内存中的函数,所以我们可以覆盖掉原函数,自己完成内中断函数的设计
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
db 128 dup(0)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,STACKS
MOV SS,AX
MOV SP,128
CALL copy_new_7CH
CALL set_new_7CH
INT 7CH
MOV AH,4CH
INT 21H
;===============================================
new_7CH:
MOV AX,1000H
IRET
end_new_7CH:
;===============================================
set_new_7CH:
MOV BX,0
MOV ES,BX
MOV word ptr ES:[7CH*4],7E00H
MOV word ptr ES:[7CH*4+2],0
end_set_new_7CH:
RET
;===============================================
copy_new_7CH:
MOV AX,0
MOV ES,AX
MOV DI,7E00H
MOV AX,CS
MOV DS,AX
MOV SI,OFFSET new_7CH
mov cx,OFFSET end_new_7CH - new_7CH
cld
rep movsb
end_copy_new_7CH: ret
;===============================================
CODES ENDS
END START
最后
以上就是高兴饼干为你收集整理的【学习笔记】汇编:自己模拟内中断函数设计的全部内容,希望文章能够帮你解决【学习笔记】汇编:自己模拟内中断函数设计所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复