王爽.汇编.第三版.实验12.答案
来源:互联网 发布:数据保护线缠绕方法 编辑:程序博客网 时间:2024/04/30 10:13
; 测试中断,修改中断号0(除0)的中断向量:修改int 0的处理函数,将0号中断向量指向个人写的中断函数;将个人函数代码写入系统内存区域,然后将系统内存中函数地址写入中断向量表;注意将代码拷贝到系统内存区的时候,call指令很有可能是无效的,因为call的;参数是相对地址,而中断时,系统内存区的相对地址的函数还不知道是什么呢?!?!?!;(因为没有拷贝call的函数代码),所以中断函数里面一般不应该call xx,区别int.asm; #注意do0end标识的使用技巧; #注意db "Overflow!",0的使用技巧以及其寻址方式; #注意中断程序访问的内存和函数必须是“系统级别”的,即不会别的程序随意修改,而且地址固定; 只有如此才能寻址到,因此中断函数里面call别的函数的时候,一定要注意别的函数的有效性。assume cs:codecode segmentstart: ; 源码 mov ax, cs mov ds, ax mov ax, offset do0 mov si, ax ;源码写入的目标地址 mov ax, 0 mov es, ax mov di, 200h ; 源码长度 mov cx, offset do0end - offset do0 cld rep movsb ; 写入0号中断的函数地址:0:200 mov ax, 0 mov es, ax mov word ptr es:[0], 200h mov word ptr es:[2], 0 ; test program mov ax, 100 mov bx, 0 div bx ; test program end ;call do0 mov ax, 4c00h int 21h ;要安装的中断处理程序,注意必须将此代码写入系统的某个地方 ;因为本程序退出后,do0的代码区很可能因为加载别的程序而被修改 ;do0: jmp short do0_code db "Divide error:Overflow!",0do0_code: push ax push ds push si push dx push cx mov ax, 0b800h mov es, ax ; 清屏 mov ax, 0 mov cx, 160*25 clearscreen: mov word ptr es:[bx],ax inc bx loop clearscreen mov ax, cs mov ds, ax mov si, 0202h ; screen pos mov di, 12*160+30*2 ; 写入闪烁的文字 s: mov al, [si] cmp al,0 jz send mov es:[di],al mov byte ptr es:[di+1],10000100b inc si add di,2 jmp short ssend: pop cx pop dx pop si pop ds pop ax ;此处没有使用iret,是因为使用如下指令会使程序返回到dos,而不是卡死 mov ax, 4c00h int 21h ;仅仅是个do0的结束标号,为了号计算do0的代码长度do0end: nopcode endsend start
阅读全文
0 0
- 王爽.汇编.第三版.实验12.答案
- 王爽.汇编.第三版.实验七.答案
- 王爽.汇编.第三版.实验14.答案
- 王爽.汇编.第三版.实验16.答案
- 王爽.汇编.第三版.课程设计1.答案
- 王爽.汇编.第三版.检测点9.3.答案
- 王爽.汇编.第三版.检测点17.1.疑似答案
- 汇编学习-王爽-实验10的答案
- 王爽汇编第三版 实验七
- 汇编学习-实验11答案
- 王爽汇编第二版第三章答案
- 王爽汇编第三版实验10.2 浅析
- 王爽汇编第三版实验10.3 浅析
- 王爽 汇编 实验14
- 王爽-汇编实验5
- 王爽.汇编.第三版.课程设计2
- Java 2实用教程(第三版)实验指导与习题解答and实验模版代码及答案(一)
- Java 2实用教程(第三版)实验指导与习题解答and实验模版代码及答案 (二)
- Linux中如何产生core文件?
- IPlImage的width和widthStep
- 处理百万级以上的数据提高查询速度的方法
- 【Keras】张量的阶数
- PHP学习笔记:1.1 PHP安装
- 王爽.汇编.第三版.实验12.答案
- JarSigner
- Windows窗口消息大全,全不全自己看
- Android 混淆那些事儿
- Vue2.x教程之filter过滤器的使用
- Android进程管理机制和内存机制
- python操作Excel读写: xlrd
- vue环境安装
- 欢迎使用CSDN-markdown编辑器