语句控制实验

一、实验目的

 1. 加强对8259a的理解。

 2. 强化编程能力。

二、实验内容

 设计一段语句控制程序,当开关k0闭合时出现欢迎语句 hello everybody,开关K1闭合时出现语句 my name is rainier,开关K2闭合时出现语句see you again,开关K3闭合时退出程序。

三、实验提示

1. 8259A IR0-IR3与开关K0-K3相连接;

2. 设置8259a控制字,初始化8259A写ICW1,上升沿触发,单片使用;写ICW2,中断号为80h-87h;写ICW4,一般完全嵌套,非缓冲,非自动结束方式。

四、参考程序

DATA SEGMENT

helloDB       'hello everybody $'

namDB        'my name is rainier $'

bye          DB 'see you again $'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE

START:

CLI

MOV  AX,DATA 

MOV  DS,AX

MOV  DX,208H

MOV AL,1BH

MOV AL,13H

OUT   DX,AL         

MOV  DX,209H

MOV AL,80H

OUT  DX,AL

MOV  AL,01H

OUT DX,AL

PUSH  DS

MOV  AX,0H

MOV  DS,AX

MOV  AX,OFFSET IRQ0

MOV SI, 200H

MOV  [SI],AX

MOV  AX,SEG IRQ0

ADD SI,02H

MOV [SI],AX  

MOV  AX,OFFSET IRQ1

ADD SI,02H

MOV  [SI],AX

MOV  AX,SEG IRQ1 

ADD SI,02H

MOV  [SI],AX

MOV  AX,OFFSET IRQ2

ADD SI,02H

MOV  [SI],AX

MOV  AX,SEG IRQ2

ADD SI,02H

MOV  [SI],AX 

MOV  AX,OFFSET IRQ3

ADD SI,02H

MOV  [SI],AX 

MOV  AX,SEG IRQ3

ADD SI,02H

MOV  [SI],AX

POP DS

MOV  DX,209H

IN    AL,DX

MOV  AL,0H

OUT DX,AL

STI

LOOP1:

JMP   LOOP1

IRQ0: 

PUSH  AX

PUSH  BX

PUSH  DX  

PUSH  CX  

MOV  AH,09H  

MOV  DX,OFFSET hello

INT 21H

STI

MOV  DX,208H 

MOV  AL,20H  

OUT DX,AL

POP   CX     

POP   DX

POP   BX

POP   AX

IRET

IRQ1: 

PUSH  AX

PUSH  BX  

PUSH  DX  

PUSH  CX  

MOV  AH,09H

MOV  DX,OFFSET nam  

INT 21H

STI

MOV  DX,208H

MOV  AL,20H

OUT  DX,AL

POP  CX      

POP  DX

POP  BX

POP  AX

IRET

IRQ2:

PUSH  AX  

PUSH  BX  

PUSH  DX  

PUSH  CX

MOV  AH,09H

MOV  DX,OFFSET bye

INT  21H

STI

MOV  DX,208H

MOV  AL,20H

OUT DX,AL

POP  CX   

POP  DX

POP  BX   

POP  AX      

IRET

IRQ3:

MOV AX,4C00H

INT 21H

IRET

CODE ENDS

END START

五、实验接线图

【去实验】