我是靠谱客的博主 个性歌曲,这篇文章主要介绍中断体验:观察自定义中断的安装及触发,现在分享给大家,希望可以做个参考。

【说明】中断机制是一种重要的解决问题的手段。针对初学者不能对中断的相关技术有直观的认识,特设计了这个学习活动。

【知识准备】中断向量表;中断处理过程;中断安装程序

【体验步骤】
步骤1 自定义78h号中断的中断处理例程,并将其安装到内存中

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
;文件名: ptest.asm assume cs:code code segment start:mov ax,cs mov ds,ax mov ax,0 mov es,ax ;安装中断例程 lea si, do_78h mov di,200h mov cx,offset do78h_end - offset do_78h cld rep movsb ;设置中断向量表 mov word ptr es:[78h*4],200h mov word ptr es:[78h*4+2],0 mov ax,4c00h int 21h ;定义中断例程:显示"flying"; do_78h: jmp short istart msg db 'flying!-Piao Guo....' istart: push ds push es push si push di push ax push cx mov ax, cs mov ds, ax mov si, 202h mov ax,0b800h mov es,ax mov di,160*24 mov ah, 11001111b ;闪烁红底加亮白字 mov cx,offset istart - offset msg s: mov al,[si] mov es:[di],ax ;字符与属性一起移入 inc si add di,2 loop s pop cx pop ax pop di pop si pop es pop ds iret do78h_end:nop code ends end start

编译、连接及运行过程如下:
这里写图片描述

请说出来:运行以后什么也看到,程序的作用是什么?

步骤2 编程序,触发中断78h

复制代码
1
2
3
4
5
6
7
8
9
10
11
;文件名: pa.asm assume cs:code, ss:stack stack segment stack db 16 dup (0) stack ends code segment start: int 78h mov ax,4c00h int 21h code ends end start

编译、连接、运行程序:
这里写图片描述

请说出:在运行pa时,发生了什么?为什么?

步骤3 在debug中载入pa.exe并单步运行,观察寄存器的变化
重点关注:CS、IP,以及标志寄存器中IF的值,如图,EI(允许)或DI(关闭)
这里写图片描述

一边观察,一边说出运行中涉及的中断的机制

步骤4 在debug中调用int 78h
按下面操作工作:
这里写图片描述

请说出,调用int 78时发生了什么?

步骤5:关闭DOSBOX,再打开,不做步骤1,直接从步骤2开始重做上面的工作。

请说出:你看到了什么?为什么会是这样?

最后

以上就是个性歌曲最近收集整理的关于中断体验:观察自定义中断的安装及触发的全部内容,更多相关中断体验:观察自定义中断内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部