例子2:从键盘上连续打入多个属于'0'到'9'的数字符并在屏幕上显示,遇非数字符结束输入过程。
A 2040
MVD R2, 30 ; 用于判数字符的下界值
MVD R3, 39 ; 用于判数字符的上界值
(2044)IN 01 ; 判键盘上是否按了一个键,
SHR R0 ; 即串行口是否有了输入的字符
SHR R0
JNC 2044 ; 没有输入则循环测试
IN 00 ; 输入字符到R0低位字节
CMP R0, R2 ; 判输入字符≥字符'0'否
JNC 2053 ; 为否, 则转到程序结束处
CMP R3, R0 ; 判输入字符≤字符'9'否
JC 2053 ; 为否, 则转到程序结束处
OUT 00 ; 输出刚输入的数字符
MVD RB, 20 ; 转去程序前边2044处等待输入下一个字符
MVD RA, 44 ; 这3个语句完全可以用JR 2044替代
JMP ; 此处要表明必须使用专用寄存器的JMP语句用法
(2053)RET
思考题:本程序中为什么不必判别串行口输出完成否? 设计打入'A'~'Z'和'0'~'9'的程序,
遇其它字符结束输入过程。
|
|