文档库

最新最全的文档下载
当前位置:文档库 > 微机原理课后作业--李恒文

微机原理课后作业--李恒文

4.11.给定SP=0100H、SS=0500H、PSW=0240H,在存储单元中已有内容为(00024)=0060H、(00026)=1000H,在段地址为0800H及偏移地址为00A0H的单元中,有一条中断指令INT 9。试问,执行INT 9指令后,SS、SP、IP、PSW的内容是什么?栈顶的三个字是什么?

解:执行INT 9指令,首先是PSW的内容入栈,然后是INT 9的下一条指令

的CS:IP入栈。INT 9(CS:IP=0800:00A0 )下一条指令的地址

CS:IP=0800H:00A2H。

PSW、CS、IP的入栈顺序为:

SP-2 → SP , PSW(=0240H)入栈;SP=00FEH

SP-2 → SP , CS (=0800H)入栈;SP=00FCH

SP-2 → SP , IP (=00A2H)入栈;SP=00FAH

栈顶的三个字是: 00A2H 、0800H 、0240H。

SS:SP=0500H:00FAH

执行完INT 9指令,进入中断响应,首先PSW的IF、TF清0。

PSW的格式为:

微机原理课后作业--李恒文

所以:PSW由0240H变为0040H.

中断服务入口:

中断类型号为9,中断向量指针为:9×4=36=24H,中断服务子程序入口

地址在0000:0024~0000:0027单元中。将中断服务子程序入口地址送入CS:IP

中。根据题意:

0000:0024 , IP= 0060H ;0000:0026,CS= 1000H所以,执行完INT 9指令后:

PSW=0040H,SS=0500H,SP=00FAH,CS= 1000H ,IP= 0060H 。

4.11 给定(SP)=0100H,(SS)=0300H,(FLAGS)=0240H,以下存储单元的内容为(00020)=0040H,(00022)=0100H,在段地址为0900及偏移地址为00A0H 的单元中有一条中断指令INT 8,试问执行INT 8指令后,SP,SS,IP,FLAGS 的内容是什么?栈顶的三个字是什么?

答:执行INT 8指令后,(SP)=00FAH,(SS)=0300H,(CS)=0100H,(IP)=0040H,(FLAGS)=0040H

栈顶的三个字是:原(IP)=00A2H,原(CS)=0900H,原(FLAGS)=0240H

4.12. 假定中断类型9H的中断处理程序的首地址为INT_ROUT,试写出主程序中为建立这一中断向量而编制的程序段。

答:程序段如下:

MOV AL, 1CH ;取原中断向量,并保护起来

MOV AH, 35H

INT 21H

PUSH ES

PUSH BX

PUSH DS

MOV AX, SEG INT_ROUT

MOV DS, AX

MOV DX, OFFSET INT_ROUT

MOV AL, 09H

MOV AH, 25H ;设置中断向量功能调用

INT 21H

POP DS

POP DX ;还原原中断向量

POP DS

MOV AL, 1CH

MOV AH, 25H

INT 21H

7.4 设一个接口的输入端口地址为0100H,而它的状态端口地址为0104H,状态口中第5位为1表示输入缓冲区中有一个字节准备好,可输入。设计具体程序实现查询式输入。

答:DATA SEGMENT

BUFFER DB 20 DUP(?) ;接收数据缓冲区

DATA ENDS

CODE SEGMENT

ASSUME DS:DATA,CS:CODE

STAT: MOV AX,DATA ;对DS初始化

MOV DS,AX

MOV DI,OFFSET BUFFER

MOV DX,0104H

STATIN: IN AL,DX

TEST AL,20H ;测试第5位

JZ STATIN ;第5位为0继续测试

MOV DX,0100H

IN AL,DX ;输入数据

MOV [DI],AL

CODE ENDS

END STAT

【例7.1】设8255A的A口工作在方式0,数据输出,B口工作在方式1,数据输入,编写初始化程序(设8255A的端口地址为FF80H~FF83H)。

初始化程序如下:

MOV DX, 0FF83H ; 控制寄存器端口地址为FF83H

MOV AL, 10000110B ; A口方式0, 数据输出, B口方式1, 数据输入

OUT DX, AL ; 将控制字写入控制端

【例7.2】将8255A的C口中PC0设置为高电平输出,PC5设置为低电平输出,编写初始化程序(设8255A的端口地址为FF80H~FF83H)。

初始化程序如下:

MOV DX, 0FF83H ; 控制端口的地址为FF83H

MOV AL, 00000001B ; PC0设置为高电平输出

OUT DX, AL ; 将控制字写入控制端口

MOV AL, 00001010B ; PC5设置为低电平输出

OUT DX, AL ; 将控制字写入控制端口

8.2设8255A的4个端口地址分别为0C0H、0C1H、0C2H和0C3H,要求用按位置位/复位控制字使PC6输出方波信号,试编程实现。

解:MOV DX,0C3H

MOV AL,80H

OUT DX,AL

L1:MOV AL,0CH

OUT DX,AL

NOP

NOP

MOV AL,0DH OUT DX,AL NOP

NOP

JMP L1