熟悉并使用算术逻辑操作类指令

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

微处理器原理课实验日志

一、实验题目:熟悉并使用算术逻辑操作类指令

二、实验结果

本次实验的目的是为了让我们熟悉算术运算类指令,熟悉逻辑运算类指令,掌握算术运算类指令对标志位的影响。本次实验分为验证性和操作性,对于验证性实验要求在自己理解程序的基础上去运行程序,查看运行结果。操作性实验要求自己编写程序实现相关要求,最后运行查看结果。

第一个程序是验证性(加法减法指令),代码为:

MOV A,#12H

MOV R0,#24H

MOV 21H,#56H

ADD A,#12H

MOV DPTR,#4316H

ADD A,DPH

ADD A,R0

CLR C

SUBB A,DPL

SUBB A,#25H

INC A

SETB C

ADDC A,21H

INC R0

SUBB A,R0

MOV 24H,#16H

CLR C

ADD A,@R0

此程序的功能为:熟悉加法减法指令,尤其是ADD与ADDC、还有就是在SUBB中注意什么时候Cy标志位清零的运用;DPH、DPL 的运用等。最后在没有运行程序之前对程序进行简单的运算,累加器A中的数据是0xE0=#83H,程序运算结果如下:

按照实验要求第二个程序代码为:

MOV 30H,#34H

MOV 31H,#2AH

MOV 32H,#0FAH

MOV 33H,#48H

MOV R0,#30H

MOV A,@R0

INC R0

MOV B,@R0

MUL AB

MOV R1,A

MOV R2,B

MOV A,@R0

INC R0

MOV B,@R0

DIV AB

MOV R3,A

MOV R4,B

本程序的重点是分析乘法中高八位存在B寄存器中和低八位存在累加器A中,除法运算A累加器中存放的是商,B寄存器中存放的余数。所以,分析得到乘法运算中A累加器中存放的是88H,B寄存器中存放是08H;除法运算中A累加器存放的是00H,B寄存器中存放的是2AH.程序运算的结果如下:

按照第三个程序是移位指令代码为:

MOV A,#39H

CPL A

RL A

CLR C

RRC A

SETB C

RLC A

SWAP A

此程序的运行结果应该是:0C6H、8DH、46H、8DH、D8H。

操作性实验,按照要求书写代码如下:

ORG 00H MOV 30H,#56H MOV 31H,#34H MOV 32H,#12H MOV 40H,#90H MOV 41H,#78H MOV 42H,#56H MOV R0,#30H MOV R1,#40H MOV A,@R0 ADDC A,@R1 DA A

MOV 50H,A INC R0

INC R1

MOV A,@R0 ADDC A,@R1 DA A

MOV 51H,A INC R0

INC R1

MOV A,@R0 ADDC A,@R1 DA A

MOV 52H,A

END

运行结果为:(50H)=46H, (51H)=13H,(52H)=69H.

三、实验过程中的问题及解决方案

在本次实验中,对验证性实验出现的问题,自己对程序代码的不熟悉,理解上出现了问题,经过查阅书籍最后都一一解决。

对于操作性实验遇见的问题是,开始运算结果总是在(51H),(52H)的数据上差一。最后在老师的指点下得到解决,问题是自己没有理解到标志位Cy.以及ADD与ADDC的具体该怎么运用。

相关文档
最新文档