《计算机组成原理》实验一 TEC-XP汇编语言程序设计参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一 TEC-XP汇编语言程序设计

(1)设计一个小程序,从键盘上接收一个字符并在屏幕上输出显示该字符。

A 2000 ↙

输入如下形式的程序:

2000: IN 81

2001: SHR R0

2002: SHR R0

2003: JRNC 2000

2004: IN 80

2005: OUT 80

2006:RET ↙

2007:↙

(2)设计一个小程序,用次数控制在终端显示器屏幕上输出‘0’到‘9’十个数字符。

提示:假设用R2存储字符个数,R0放第一个字符“0”,输出一个字符则R2减1,完成输出后R0加1 ,以准备下一个字符。

A 2020 ↙

2020 : MVRD R2 , 0A

MVRD R0 , 30

2024 : OUT 80

DEC R2

JRZ , 202E

PUSH R0

2028 : IN 81

2029 : SHR R0

202A : JRNC 2028

POP R0

INC R0

jr 2024

202E : RET

202F:↙

(3)从键盘上连续打入多个属于‘0’到‘9’的数字符并在屏幕上显示,遇到非数字字符结束输入过程。

验证:本程序中是否需要判别串行口输出完成否?为什么?

A 2040 ↙

2000 : MVRD R2 , 30

2002 : MVRD R3 , 39

2004 : IN 81 ;判断键盘上是否按了一个键

2005 : SHR R0

2006 : SHR R0

2007 : JRNC 2004 ;没有输入则循环测试

2008 : IN 80 ;输入字符放入R0的低8位

2009 : MVRD R1 , 00FF

200B : AND R0 , R1 ;清空R0的高八位

200C : CMP R0 , R2 ;输入字符>=‘0’

200D : JRNC 2013 ;否则,转到结束处

200E : CMP R3 , R0 ;输入字符<=‘9’

2010 : JRNC 2013 ;否则,转到结束处

2011 : OUT 80 ;输出字符

2012 : JMPA 2004

2013 : RET

(4)计算1到10的累加和。

A 2060 ↙

2060:MVRD R1,0000 ;存放累加和

MVRD R2, 000A ;最大加数

MVRD R3,0000

2066:INC R3

ADD R1,R3

CMP R3,R2

JRNZ 2066

RET

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

提示:假设被显示字符‘A’~‘F’,需先用E命令将其送入到内存20F0H开始的存储区域中。程序地址2080H,子程序完成转换为小写字母的功能,程序地址2100H。

第一步:

1.将被显示的6个字符‘A’-‘F’送入到内存20F0H开始的存储区中。

E 20F0↙

依次输入‘A’-‘F’的ASCII码

2. A 2080 ↙

2080:MVRD R3,0006 ;指定读数据的个数

MVRD R2,20F0;读写区域的首地址

2084:LDRR R0,[R2] ;读内存的第一个字符到R0寄存器

CALL 2100 ;调用子程序完成显示、转换等功能

DEC R3

JRZ 208B ;循环结束时

INC R2

JR 2084

208B: RET

3.从2100H开始输入下列程序:

2100:OUT 80 ;输出保存在R0中的字符

MVRD R1,0020

ADD R0,R1 ;将大写字母转换为小写字母

STRR [R2],R0 ;写R0中的字符到内存

2105: IN 81

SHR R0

JRNC 2105

RET;

第二步:

1.G 2080↙显示 ABCDEF

2.D 20F0↙

20F0H-20F5H内存单元的内容为:0061 0062 0063 0064 0065 0066

相关文档
最新文档