手机版

基础汇编语言程序设计实验指导(3)

发布时间:2021-06-06   来源:未知    
字号:

(2066)INC R3 ; 得到下一个参加累加的数

ADD R1, R3 ; 累加计算

CMP R3, R2 ; 判是否累加完

JRNZ 2066 ; 未完, 开始下一轮累加

RET

运行过后, 可以用 R 命令看 R1 中的累加结果。

例子 5: 设计一个有读写内存和子程序调用指令的程序,功能是读出内存中的字符,将其显示到显示器的屏幕上,转换为小写字母后再写回存储器原存储区域。

E 20F0 (送入将被显示的 6 个字符‘A’~‘F’到内存 20F0开始的存储区域中) 0041 0042 0043 0044 0045 0046

A 2080

(2080)MVRD R3, 0006 ;指定被读数据的个数

MVRD R2, 20F0 ;指定被读、写数据内存区首地址

(2084)LDRR R0,[R2] ;读内存中的一个字符到 R0 寄存器

MVRD R8, 2100 ;指定子程序地址为2100 *此条指令与下一条指令可以改为CALA CALR R8 ;调用子程序,完成显示、转换并写回的功能

DEC R3 ;检查输出的字符个数

JRZ 208C ;完成输出则结束程序的执行过程

INC R2 ;未完成,修改内存地址

JR 2084 ;转移到程序的 2086 处,循环执行规定的处理

(208C)RET

A 2100 ; 输入用到的子程序到内存 2100 开始的存储区

(2100)OUT 80 ;输出保存在 R0 寄存器中的字符

MVRD R1,0020

ADD R0,R1 ;将保存在 R0 中的大写字母转换为小写字母

STRR [R2],R0 ;写 R0 中的字符到内存,地址同 LOD 所用的地址

(2105)IN 81 ;测试串行接口是否完成输出过程

SHR R0

JRNC 2105 ;未完成输出过程则循环测试

RET ;结束子程序执行过程,返回主程序

运行过程中,可以直接看到屏幕上显示的内容,运行过后, 再用 D 20F0 看内存的 20F0 区 域中保存的运行结果:

0061 0062 0063 0064 0065 0066

上述 5 个例子, 都是用监控程序的 A 命令完成输入源汇编程序的。在涉及到汇编语句标号的地方, 不能用符号表示, 只能在指令中使用绝对地址。使用内存中的数据, 也由程序员给出数据在内存中的绝对地址。显而易见, 对这样的极短小程序矛盾并不突出, 但很容易想到,对很大的程序, 一定会有较大的困难。

在用 A 命令输入汇编源语句的过程中, 有一定用机经验的人, 常常抱怨 A 命令中未提供适当的编辑功能, 这并不是设计者的疏漏, 因为我们并不准备在这种操作方式下支持设计较

基础汇编语言程序设计实验指导(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)