例子4:设计一个有读写内存和子程序调用指令的程序,功能是读出内存中的字符,将其显示到显示器的屏幕上,转换为小写字母后再写回存储器原存储区域。
E 20F0 (送入将被显示的6个字符'A'~'Z'到内存20F0开始的存储区域中)
41 42 42 44 45 46
A 2080
MVD R3, 06 ; 指定被读数据的个数
MVD R9, 20 ; 指定被读、写数据内存区首地址
MOV R8, F0 ;
(2086)LOD R0 ; 读内存中的一个字符到R0寄存器
MVD RB, 21 ; 指定子程序地址为2100
MVD RA, 00
CALL ; 调用子程序,完成显示、转换并写回的功能
DEC R3 ; 检查输出的字符个数
JZ 2092 ; 完成输出则结束程序的执行过程
INC RA ; 未完成,修改内存地址
JR 2086 ; 转移到程序的2086处,循环执行规定的处理
(2092)RET
A 2100 输入用到的子程序到内存2100开始的存储区
OUT 00 ;输出保存在R0寄存器中的字符
MVD R1, 80 ;转换保存在R0中的大写字母为小写字母
ADD R0, R1
STO R0 ;写R0中的字符到内存,地址同LOD所用的地址
IN 01 ;测试串行接口是否完成输出过程
SHR R0
JNC 2106 ;未完成输出过程则循环测试
RET ;结束子程序执行过程,返回主程序
运行过程中,可以直接看到屏幕上显示的内容,运行过后,再用D 20F0命令看内存的20F0区域中保存的运行结果:
61 62 63 64 65 66
|