- [kanwangxue] 如果是文字的,不是特别好啊,体力活,如果文字还加点动画,那就必须顶了。 01/15 01:10
- [kanwangxue] 必须顶啊。 01/15 00:54
- [ltoiii] 既然是实现loop功能,是否要考虑s和se标号? mov bx,offset s - offset 12/09 12:09
- [xiaoyao2012] 正确 11/01 15:33
- [xuer2016] 又找到2条被我忽视的地方: 1.PUSH 和 POP 针对字单元 2.POP 不能是CS 10/26 10:57
- [xuer2016] 学习了 我书写不规范,16进制字母前不加0,后面不加H,以后要注意了。。。 10/26 10:51
- [xuer2016] 来老师这学习下 10/26 10:31
- [youthangel] 不妙,CPU的利用率一下子就上去了。还好我的处理器不是太弱,35%左右的利用率。建议博主在修改一下 10/20 08:23
- [fpamc] 在我心里她就是我的女神。 10/02 08:58
- [newpeople] 你女朋友用得了简直就是一个女神…… 10/01 08:10
- [99998888] 请您指点一下如何找到会ASSEMBLER 语言的翻译,翻译成中文或英文。我的QQ ; 9097815 07/25 09:56
- [jeremy] 我觉得你学习的挺好,可以加你扣扣吗?我的469614823 08/07 14:46
- [zhangbo0805] 哈哈, 你好呀!很希望认识你呀!我发现你学习的积极性很高!正想向您学习呢! 07/31 23:31
- [tomato] 知道了,排得还挺满。 05/29 16:35
- [tomato] 现在学习情况怎么样?在做课设二还是什么? 05/29 10:41
- [tomato] 你的留言收到了。 05/05 23:51
- [fpamc] 开始学习c咯! 05/03 21:40
- [fpamc] 居然不能发博客了……! 04/22 21:03
- [tomato] 你相册中的游戏界面我看过了,非常好,界面很漂亮,很有创造力。博主,很有潜力。加油,一定能把这个游戏做 04/20 23:46
- [fpamc] 忙了半个月,不在家,没时间学习汇编。 但是在途中想到了一个有史以来最难的程序。对于刚学完9章的我。 04/13 20:56
[2012-05-04 20:24] 第十二章作业
检测点12.1
(1)用debug查看内存,情况如下:
0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00
则3号中断源对应的中断处理程序入口的偏移地址的内存单位的地址为: 0070:018b
检测点涉及相关内容:
一个表项存放一个中断向量,也就是一个中断处理程序的入口地址,这个入口地址包括段地址和偏移地址,一个表项占两个字,高地址存放段地址,低地址存放偏移地址
检测点12.1
(2)
存储N号中断源对应的中断处理程序入口的偏移地址的内存单元的地址为: 4N
存储N号中断源对应的中断处理程序入口的段地址的内存单元的地址为: 4N+2
理由:同上O(∩_∩)O~
实验12 编写0号中断处理程序
编写0号中断处理程序,使得在除法溢出发生时,在屏幕中间显示字符串“divide error!”,然后返回DOS
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset do0 ;设置源地址
mov ax,0
mov es,ax
mov di,200h ;设置目标地址
mov cx,offset do0end-offset do0 ;设置字节数,关于为什么书上有就不写了
cld ;设置df为0,正方向
rep movsb ;传送字符串
mov word ptr es:[0*4],200h ;将do0的偏移地址放到0号中断向量表
mov word ptr es:[0*4+2],0 ;将do0的段地址放到0号中断向量表
mov ax,4c00h
int 21h
do0: mov cx,13 ;设置次数
jmp short do0start ;越过字符串,指向正确指令
db 'dpipvpipdpep peprprpoprp!p' ;字符+字符属性(白底黑字对应的字符为p)
do0start:mov ax,cs
mov ds,ax
mov si,205h ;指向字符串的地址
mov ax,0b800h
mov es,ax
mov di,12*160+36*2 ;指向显存地址
cld ;正方向传送
rep movsw ;将字符串送入显存
mov ax,4c00h
int 21h ;返回dos
do0end: nop ;设置无意义指令,为了计算中断程序字节数
code ends
end start
(1)用debug查看内存,情况如下:
0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00
则3号中断源对应的中断处理程序入口的偏移地址的内存单位的地址为: 0070:018b
检测点涉及相关内容:
一个表项存放一个中断向量,也就是一个中断处理程序的入口地址,这个入口地址包括段地址和偏移地址,一个表项占两个字,高地址存放段地址,低地址存放偏移地址
检测点12.1
(2)
存储N号中断源对应的中断处理程序入口的偏移地址的内存单元的地址为: 4N
存储N号中断源对应的中断处理程序入口的段地址的内存单元的地址为: 4N+2
理由:同上O(∩_∩)O~
实验12 编写0号中断处理程序
编写0号中断处理程序,使得在除法溢出发生时,在屏幕中间显示字符串“divide error!”,然后返回DOS
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset do0 ;设置源地址
mov ax,0
mov es,ax
mov di,200h ;设置目标地址
mov cx,offset do0end-offset do0 ;设置字节数,关于为什么书上有就不写了
cld ;设置df为0,正方向
rep movsb ;传送字符串
mov word ptr es:[0*4],200h ;将do0的偏移地址放到0号中断向量表
mov word ptr es:[0*4+2],0 ;将do0的段地址放到0号中断向量表
mov ax,4c00h
int 21h
do0: mov cx,13 ;设置次数
jmp short do0start ;越过字符串,指向正确指令
db 'dpipvpipdpep peprprpoprp!p' ;字符+字符属性(白底黑字对应的字符为p)
do0start:mov ax,cs
mov ds,ax
mov si,205h ;指向字符串的地址
mov ax,0b800h
mov es,ax
mov di,12*160+36*2 ;指向显存地址
cld ;正方向传送
rep movsw ;将字符串送入显存
mov ax,4c00h
int 21h ;返回dos
do0end: nop ;设置无意义指令,为了计算中断程序字节数
code ends
end start
评论次数(2) |
浏览次数(214) |
类型(汇编作业) |
收藏此文 |