就是在不使用dos中断的情况下,只使用bios中断的前提下,怎样修改中断向量表里的内容
如对int21的服务程序入口地址进行重定位??
6 个解决方案
#1
可以直接访问 0000:0084 处的 dword, 那里是 int21h 的中断处理例程的入口地址, 第一个 word 是 offset, 第二个是其 seg. 要修改的话, 应该先保存原来的内容, 再修改成自己的. 保存原来的内容, 一是可以通过自己的 int21h 中断例程来访问原来的例程, 实现自己的不能完成的功能; 二就是自己的代码撤离时, 可以恢复原来的, 这样此后的int21h 还可以被正常访问.
#2
严重同意楼上的!
#3
中断号*4
如:
21*4=84 cs:0084 为 21H 中断处理程序的入口地址,自己改吧,记得改前要保存原来的中断入口地址,以后要恢复保证原来的中断程序正常使用。
如:
21*4=84 cs:0084 为 21H 中断处理程序的入口地址,自己改吧,记得改前要保存原来的中断入口地址,以后要恢复保证原来的中断程序正常使用。
#4
mov ax, 3521h
int 21h
;
mov ax, 2521h
int 21h
int 21h
;
mov ax, 2521h
int 21h
#5
自己写中断程序很是复杂,写的时候如果有相类似的中断,最好就选择它覆盖,如楼上所说,要保存原来的中断向量,以便恢复.最后用自己的代替.
#6
都是同一个办法,保存原来的中断向量,覆盖中断向量,完成工作之后再恢复原来的中断向量
#1
可以直接访问 0000:0084 处的 dword, 那里是 int21h 的中断处理例程的入口地址, 第一个 word 是 offset, 第二个是其 seg. 要修改的话, 应该先保存原来的内容, 再修改成自己的. 保存原来的内容, 一是可以通过自己的 int21h 中断例程来访问原来的例程, 实现自己的不能完成的功能; 二就是自己的代码撤离时, 可以恢复原来的, 这样此后的int21h 还可以被正常访问.
#2
严重同意楼上的!
#3
中断号*4
如:
21*4=84 cs:0084 为 21H 中断处理程序的入口地址,自己改吧,记得改前要保存原来的中断入口地址,以后要恢复保证原来的中断程序正常使用。
如:
21*4=84 cs:0084 为 21H 中断处理程序的入口地址,自己改吧,记得改前要保存原来的中断入口地址,以后要恢复保证原来的中断程序正常使用。
#4
mov ax, 3521h
int 21h
;
mov ax, 2521h
int 21h
int 21h
;
mov ax, 2521h
int 21h
#5
自己写中断程序很是复杂,写的时候如果有相类似的中断,最好就选择它覆盖,如楼上所说,要保存原来的中断向量,以便恢复.最后用自己的代替.
#6
都是同一个办法,保存原来的中断向量,覆盖中断向量,完成工作之后再恢复原来的中断向量