SHR R0 JRNC 2108 POP R0 INC R0 JR 2104 RET
2、试编写程序完成两个双字长的数相加并验证之。
3、设计一个有读写内存和子程序调用指令的程序,功能是读出内存中的字符,将其显示到显示器的屏幕上,转换为小写字母后再写回存储器原存储区域。
E 20FO↙
屏幕将显示: 20F0:
按下列格式输入: 20Fo: 41 20F1: 42 20F2: 43 20F3: 44 20F4: 45 20F5: 45
2) 在命令行提示符状态下输入 A 2080↙ 屏幕将显示:
2080:
从地址2080开始输入下列程序:
(2080)MVD R3, 06 : 指定技读数据的个数
MVD R9, 20 : 指定被读、写数据内存区首地址 MVD R8, F0
(2086)LOD R0 : 使内存中的一个字符到R0寄存器 MVD RB, 21 ; 指定于程序地址为2100 MVD RA, 00
CALL ; 调用于程序,完成显示、转换并写回的功能 DEC R3 ; 检查输出的字符个数
JZ 2092 ;完成输出则结束程序的执行过程 INC R8 ; 未完成,修改内存地址
JR 2086 : 转移到程序的2086处,循环执行规定的处理 (2092) RET
A 2100 输入用到的子程序到内存2100开始的存储区 OUT 00 :输出保存在R0寄存器中的字符
MVD R1, 20 :转换保存在R0中的大写字母为小写字母 ADD R0, B1
STO R0 ;写R0中的字符到内存,地址同LOD所用的地址 (2105)IN 01 ;测试串行接口是否完成输出过程 SHR R0
JNC 2105 ;末完成输出过程则循环试
RET :结束子程序执行过程,返回主程序 3)在命令行提示符状态下输入:
G 2080↙
屏幕显示运行结果为: ABCDEF
11个寄存器内容及状态标志 2080: MVD R3,06
4)在命令行提示符状态下输入: D 20F0↙
20F0—20F5内存单元的内容为: 6l 62 63 64 65 66
4、设计一个程序在显示器屏幕上循环显示95个(包括空格字符)可打印字符。 A20A0;从内存的20A0单元开始建立用户的第一个程序 20A0:MVRDR1,7E;向寄存器传送立即数 20A2:MVRDR0,20;
20A4:OUT80;通过串行接口输出R0低位字节内容到显示器屏幕 20A5:PUSHR0;保存R0寄存器的内容到堆栈中 20A6:IN81;读串行接口的状态寄存器的内容
20A7:SHRR0;R0寄存器的内容右移一位,最低位的值移入标志位C 20A8:JRNC20A6;条件转移指令,当标志位C不是1时就转到20A6地址2 0A9:POPR0;从堆栈中恢复R0寄存器的原内容
20AA:CMPR0,R1;比较两个寄存器的内容是否相同,相同则标志位Z=1 20AB:JRZ20A0;条件转移指令,当标志位Z为1时转到 200A0地址20AC:INCR0;把R0寄存器的内容增加1 20AE:JR20A4;无条件转移指令,一定转移到 20A4地址20AF:RET;子程序返回指令,程序结束
六、实验心得: