7.一个采用查询方式输出数据的 I/O 接口中,8 位数据端口地址为 2000H,1 位
状态端口地址为 2002H,外设状态位用 D0 传送,高电平表示数据准备好。设 1000
个字节数据存在内存 BUFFER 为首地址的缓冲区中,写出查询方式输出 1000 个
字节数据的程序段。
LEA SI,BUFFER
MOV CX,1000
P: MOV DX,2002H
L: IN AL,DX
TEST AL,01H
JZ L
MOV DX,2000H
MOV AL,[SI]
OUT DX,AL
INC SI
LOOP P
HLT
8.编写完整程序,将键盘输入的小写字母转换成大写字母并输出显示,直到输入
字符‘$’结束。如果输入的不是小写字母时要显示错误提示‘PLEASE INPUT
AGAIN!’。
DATA SEGMENT
ERRMSG DB 'PLEASE INPUT AGAIN!',0DH,0AH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
AGAIN:MOV AH,1
INT 21H
CMP AL,'$'
JE EXIT
CMP AL,'a'
JB ERROR
CMP AL,'z'
JA ERROR
SUB AL,20H
MOV DL,AL
MOV AH,2
INT 21H
JMP AGAIN
ERROR:LEA DX,ERRMSG
MOV AH,9
INT 21H
JMP AGAIN
EXIT:MOV AH,4CH
INT 21H
CODE ENDS
END START