第32讲内容为外设与CPU数据传送的几种方式
其中,讲了RT/CMOS RAM的传送方式
系统为RT/CMOS RAM分配的端口地址为70H~71H。可通过IN/OUT进行存取。存取内部64个字节时,先把要存取的单元地址送入70H,再存取端口71H。
例: 读取:
MOV AL, n ; 要存取的单元地址
OUT 70H, AL
JMP $ + 2 ; 延时
IN AL, 71H
存储:
MOV AL, n
OUT 70H, AL
JMP $ + 2
out 71H, AL
查询方式传送数据:
查询设备状态,若设备就绪,则立即与设备进行数据交换,否则循环查询。状态寄存器有一个位来表示外设是否准备好。
IN AL, STAT_PORT
TEST AL, 80H
读入数据时状态信息应清0
例: 假定串行通讯口输入数据,寄存器的端口地址为50H,状态寄存器的端口地址为51H,状态寄存器各位为1时含义如下,请编写一程序输入一串字符并存入缓冲区BUFF,同时检测正确性
状态寄存器:
0- 输出寄存器空
1- 输入寄存器空
3- 奇偶校验错
4- 溢出错
5- 格式错
MOV DI, 0
mov CX, 80
ONE: IN AL, 51H
TEST AL, 02H
JZ ONE
IN AL, 50H
MOV BUFF[DI], AL
INC DI
IN AL, 51H
TEST AL, 38H
JZ ERR
LOOP ONE
JMP EXIT
ERR:……
EXIT……