TEC-2000A的基本组成
例子1:设计一个小程序,从键盘上接收一个字符,并且在屏幕上输出显示该字符。(1)asm文件内容如下:
ORG2000HLOOP1:IN81HSHRR0SHRR0JRNCLOOP1IN80HOUT80HRETEND
(2)程序截图为:
(3)遇到的问题及解决思路或方法:
输入G运行程序时不知道屏幕显示的输入字符在哪?后来明确,输入一个字符后,显示在终端里的那一个字符便是已经输出的字符。
(4)思考题的回答:
a)用了两个SHER0是因为按键需要的是判断接收信号,所以需要将指令逻辑右移
两次,将D0、D1位的RxRDY和TxRDY右移进入C,进而判断RXRDY接收准备好信号。而IO指令都是约定使用R0寄存器。
b)四条指令完成了查询是否有按键的功能,没有的话循环测试,有的话继续执行。c)要改为一次输入多个字符,那么程序需要加入循环等待输入的语句,改为:
:设计一个小程序,在屏幕上输出显示0~9折4这10个数字符。
(1)asm文件内容为:
ORG2020HMVRDR2,000AHMVRDR0,0030HLOOP1:OUT80HDECR2JRZLOOP0PUSHR0LOOP2:IN81HSHRR0JRNCLOOP2POPR0INCR0JRLOOP1LOOP0:END
RET
(2)程序截图:
(3)遇到的问题及解决思路或方法:
编译了几次都没通过,第一次是忘记在asm文件中默认为十进制,改为十六进制;第二次是忘记在源文件首尾加上ORG和END;两次之后程序成功输出。a)在终端上输出26个大写英文字母:
Asm源程序内容:ORG2100HMVRDR2,001AHMVRDR0,0041HLOOP1:OUT80HDECR2JRZLOOP0PUSHR0LOOP2:IN81HSHRR0JRNCLOOP2POPR0INCR0JRLOOP1
LOOP0:END运行结果:
RET
b)按任意键显示0……9
Asm源文件内容:思路就是先将R0的内容压栈保存,再判断键盘是否键入了字符,若未键入,则循环等待,若键入,则将R0恢复并输出。(红体部分为添加部分)ORG2020HMVRDR2,000AHMVRDR0,0030HLOOP1:PUSHR0LOOP3:IN81HSHRR0SHRR0JRNCLOOP3POPR0OUT80HDECR2JRZLOOP0PUSHR0LOOP2:IN81H
SHRR0JRNCLOOP2POPR0INCR0JRLOOP1LOOP0:END
RET
程序运行结果:
则结束输入过程。(1)asm文件内容为:
ORG2040HMVRDR2,0030HMVRDR3,0039HLOOP1:IN81HSHRR0SHRR0JRNCLOOP1IN80H