MVRDR1,00FFHANDR0,R1CMPR0,R2JRNCLOOP2CMPR3,R0JRNCLOOP2OUT80HJMPALOOP1LOOP2:RETEND
(2)程序截图:
设计输入A~Z和0~9的程序,遇到其他字符就结束输入过程:Asm程序:(R4、R5不能用!)
ORG2040HMVRDR2,0030HMVRDR3,0039HMVRDR6,0041HMVRDR7,005AHLOOP1:SHRR0
IN81H
;用于判断大写字母的下界值;用于判断大写字母的上界值
SHRR0JRNCLOOP1IN80HMVRDR1,00FFHANDR0,R1CMPR0,R2
JRNCLOOP3;有借位是0,不符合条件,跳转CMPR3,R0
JRCLOOP4;有借位继续执行,无借位就跳转输出LOOP3:
CMPR0,R6
JRNCLOOP2;有借位是0,不符合条件,跳转判断CMPR7,R0
JRNCLOOP2;有借位是0,不符合条件,跳转判断LOOP4:
OUT80H
JMPALOOP1LOOP2:END
程序运行结果截图:
RET
:计算1-10的累加和。(1)asm文件内容为:
ORG2060H
MVRDR1,0000HMVRDR2,000AHMVRDR3,0000HLOOP1:INCR3ADDR1,R3CMPR3,R2JRNZLOOP1RETEND
(2)程序截图:
(3)如何查看结果:
通过
这三个寄存器来观察,1-10的累加和为55,十六进制表示为0037H,恰好是R1的值,而R3和R2一致,说明R3寄存器依次加1到达了10,也说明结果正确。设计一个有读写内存和子程序调用指令的程序。
(1)asm文件内容为:(红色字为输入内存单元的内容)
ORG2080HMVRDR3,0006HMVRDR2,20F0HMVRDR6,0041H
LOOP1:STRR[R2],R6INCR6
;输入内存单元的内容
;修改内存单元中的内容
LDRRR0,[R2]CALAlOOP3DECR3JRZLOOP2INCR2JRLOOP1LOOP2:RETLOOP3:OUT80HMVRDR1,0020HADDR0,R1STRR[R2],R0LOOP4:IN81SHRR0JRNCLOOP4RETEND