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的格式为: 15 14 13 12 11 10 9
所以: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,试写出主程序中为建立这一中断向量而编制的程序段。
答:程序段如下: 8 7 6 5 4 3 2 1 0 CF OF DF IF TF SF ZF AF PF ┇
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 MOV OUT MOV OUT
DX, 0FF83H ; 控制端口的地址为FF83H AL, 00000001B ; PC0设置为高电平输出 DX, AL ; 将控制字写入控制端口 AL, 00001010B ; PC5设置为低电平输出 DX, AL ; 将控制字写入控制端口
8.2设8255A的4个端口地址分别为0C0H、0C1H、0C2H和0C3H,要求用按位置位/复位控制字使PC6输出方波信号,试编程实现。
解:MOV
DX,0C3H
MOV AL,80H OUT DX,AL
AL,0CH
L1:MOV
OUT DX,AL
NOP NOP MOV AL,0DH OUT DX,AL NOP NOP JMP
L1
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库微机原理课后作业--李恒文在线全文阅读。
相关推荐: