微机原理第二篇

8259中断程序控制实验
【实验目的】

1.掌握8259中断控制的器的工作原理

2.学习8259的应用编程方法

3.掌握8258的级联的使用方法

【实验原理】

1.中断控制器8259A,在此次实验中把主控制器的IR6,IR7以及从控制器的IR1开放出来供实验使用,从片的int接到主片的IR2上构成级联

2.初始化命令字的生成规则,这个和书上的是一致的,比如ICW1中控制边沿触发还是电平触发,在这个实验里,用的是边沿触发,因此置为0;ICW2前五位代表中断向量地址;ICW3是关于从主片的选择的;ICW4是嵌套模式和是否禁止自动中断。

初始化命令字ICW1~ICW4来对8359进行初始化

操作命令字OCW1~OCW3用来定义8259的控制方式



【实验内容】

实验一:单中断实验,把单次脉冲输出和主片的IR7相连,那么每按动一次,都作为一次外部中断事件处理,在显示屏上输出一个字符‘7’。

设置中断代码部分:

CODE SEGMENT

ASSUME CS:CODE

START:

MOV AX,0000H

MOV ES,AX

MOV DI,3CH                                                   ;中断矢量地址,目的地址偏移量即0F*4

MOV AX,OFFSET IR7             ;取中断入口地址

CLD

STOSW

MOV AX,CS                   ;段地址

STOSW

CLI

MOV AL,11H                         ;ICW1

OUT 20H,AL

MOV AL,08H                          ;ICW2

OUT 21H,AL

MOV AL,04H                          ;ICW3

OUT 21H,AL

MOV AL,01H                          ;ICW4

OUT 21H,AL

MOV AL,6FH                         ;0CW1

OUT 21H,AL

STI

A1:NOP

JMP A1                   ;注意这里是一个死循环,是为了体现下面设置的IR7中断

IR7:STI

PUSH AX

PUSH BX

PUSH CX

PUSH DX                                                     ;入栈保护

MOV DL,37H                 ;ascll码中7是37H

MOV AH,02H

INT 21H

MOV AL,20H                   ;OCW2

OUT 20H,AL

POP DX

POP CX

POP BX

POP AX                                                        

IRET


MOV AH,4CH

INT 21H

CODE ENDS

END START

这个代码是按照书上来写的,然后参考了一下教程里面内容。一开始不清楚那个死循环的功能,后来才明白,入过没有这个循环,那么就顺序执行到下面的IR7了,体现不出这是一个“中断”

入栈保护的那一段,保险起见,就把四个寄存器全保护起来了。

实验截图:


实验结果

实验二:双中断优先级实验,KK1和KK2分别连接到主片的8259A的IR7和IR6上,按一次KK1时,显示屏出现显示7,按一次KK2时,显示字符6。由于体现的是中断优先级,所以把实验连线改为IR7,IR6都接KK1,这样按动KK1的时候,只要能够先后的显示出响应结果,就算是实验成功了。

中断代码:

   CODE SEGMENT

ASSUME CS:CODE

START:

MOV AX,0000H

MOV ES,AX

MOV DI,3CH

MOV AX,OFFSET IR7

CLD

STOSW

MOV AX,CS

STOSW

MOV DI,38H            ;中断IR6,0E*4,中断矢量口

MOV AX,OFFSET IR6

CLD

STOSW

MOV AX,CS

STOSW

CLI

MOV AL,11H                   ;ICW1

OUT 20H,AL

MOV AL,08H                   ;ICW2

OUT 21H,AL

MOV AL,04H                    ;ICW3

OUT 21H,AL

MOV AL,01H                    ;ICW4

OUT 21H,AL

MOV AL,2FH                    ;0CW1

OUT 21H,AL

STI

A1:NOP         ;这里依旧有一个循环

JMP A1

IR7:STI            ;中断IR7

PUSH AX

PUSH BX

PUSH CX

PUSH DX

MOV DL,37H

MOV AH,02H

INT 21H

MOV AL,20H                    ;OCW2

OUT 20H,AL

POP DX

POP CX

POP BX

POP AX                  ;保护以及恢复

IRET


IR6:                      ;中断IR6

STI

PUSH AX

PUSH BX

PUSH CX

PUSH DX

MOV DL,36H              ;ASCLL码6的表示

MOV AH,02H

INT 21H

MOV AL,20H                ;OCw2

OUT 20H,AL               

POP DX

POP CX

POP BX

POP AX                         ;保护以恢复现场

IRET


MOV AH,4CH

INT 21H

CODE ENDS

END START


实验结果:


实验结果

由实验结果可得,IR6的优先级是比IR7的高的,这段代码就是比上一个多了IR6的中断服务程序。


实验三:实现KK1,KK2的加减功能,摁下KK1,实现加一;摁下KK2实现减一。

与实验二的不同点就是:1.中断操作不同,可以先给寄存器赋一个初始值,然后中断中一个进行加一操作INC,一个进行减一操作DEC。2.连线不同,KK1连IR7,KK2连IR6,由于摁下并不同步,所以这里不再有优先级的考量了。

CODE SEGMENT

ASSUME CS:CODE

START:

MOV AX,0000H

MOV ES,AX

MOV DI,3CH

MOV AX,OFFSET IR7

CLD

STOSW

MOV AX,CS

STOSW

MOV DI,38H

MOV AX,OFFSET IR6

CLD

STOSW

MOV AX,CS

STOSW

CLI

MOV AL,11H;ICW1

OUT 20H,AL

MOV AL,08H;ICW2

OUT 21H,AL

MOV AL,04H;ICW3

OUT 21H,AL

MOV AL,01H;ICW4

OUT 21H,AL

MOV AL,2FH;0CW1

OUT 21H,AL

MOV DL,37H

STI

A1:NOP

JMP A1



IR7:STI

PUSH AX

PUSH BX

PUSH CX

INC DL


MOV AH,02H

INT 21H

MOV AL,20H;OCW2

OUT 20H,AL


POP CX

POP BX

POP AX

IRET


IR6:

STI

PUSH AX

PUSH BX

PUSH CX


DEC DL

MOV AH,02H

INT 21H

MOV AL,20H

OUT 20H,AL


POP CX

POP BX

POP AX

IRET


MOV AH,4CH

INT 21H

CODE ENDS

END START


实验结果:


实验结果

【小结或讨论】

这次实验还是有难度的,周四进行的实验,周三在课堂上写的一个题目练习还是大有帮助的,把中断这一章的知识点都概括一番了。这次试验主要难点就是mov指令的书写,课件里面的和书本有些出入,倒不如按着书本来写,感觉可以利用这次的实验,当作两道例题,再加上课堂上的一道题目,好好消化一番,中断问题应该就差不多了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容

  • # 常见汇编代码 # 1. 编写程序:比较AX,BX,CX中带符号数的大小,将最大的数放在AX中 code...
    喝豆腐脑加糖阅读 2,602评论 0 0
  • 王爽汇编全书知识点大纲 第一章 基础知识 机器语言 汇编语言的产生 汇编语言的组成 存储器 cpu对存储器的读写 ...
    2c3ba901516f阅读 2,412评论 0 1
  • 一、基础知识 mov ax,bx把BX内容送到AX中。汇编语言有3类指令,汇编指令、伪指令,其他符号。CPU通过地...
    赤果_b4a7阅读 1,841评论 0 1
  • 编程语言的发展 机器语言由0和1组成 汇编语言(Assembly Language)用符号代替了0和1,比机器语言...
    阿凡提说AI阅读 4,007评论 0 15
  • 傲慢让别人无法来爱我,偏见让我无法去爱别人。 ——题记 《傲慢与偏见》这本书讲述的是出...
    茹兮yoyi阅读 471评论 0 0