题目
8255端口地址为300H-303H,在A口的PA3引脚上接有输入的控制信号。8255的三个端口均工作于方式0。编写一个完整的汇编语言程序,完成如下两个功能:
(1)对8255初始化。
(⑵)循环检测PA3的状态:
a)当PA3=0时,把C口的输入数据高四位不变,低四位取反送往B口;
b)当PA3=1时,把C口的输入数据高四位清零,低四位保持不变送往B口。
题目分析
- 在A口的PA3引脚上接有输入的控制信号,故A口为输入(8255除了C口可以4位操作外,a口和B口都是8位统一操作,因此说虽然这里只有PA3一位接入了控制信号我们就要把a口全部都设为输入)
- 题目中需要用到C口输入的8位数据,故C口为输入
- C口的输入改变之后要送往B口,故B口为输出
- 三个口工作方式都是0,A口输入,B口输出,C口输入
- 控制字为 10011001=90H
- 需要检测某一位的状态:使用TEST指令
- 清零某些位,不变某些位:AND(1:不变,0:清零)
- 取反某些位,不变某些位:XOR(1:取反,0:不变)