河北工业大学 单片机实验第二次实验内容实验三算数运算Word文档格式.docx

上传人:b****5 文档编号:18310890 上传时间:2022-12-15 格式:DOCX 页数:34 大小:269.19KB
下载 相关 举报
河北工业大学 单片机实验第二次实验内容实验三算数运算Word文档格式.docx_第1页
第1页 / 共34页
河北工业大学 单片机实验第二次实验内容实验三算数运算Word文档格式.docx_第2页
第2页 / 共34页
河北工业大学 单片机实验第二次实验内容实验三算数运算Word文档格式.docx_第3页
第3页 / 共34页
河北工业大学 单片机实验第二次实验内容实验三算数运算Word文档格式.docx_第4页
第4页 / 共34页
河北工业大学 单片机实验第二次实验内容实验三算数运算Word文档格式.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

河北工业大学 单片机实验第二次实验内容实验三算数运算Word文档格式.docx

《河北工业大学 单片机实验第二次实验内容实验三算数运算Word文档格式.docx》由会员分享,可在线阅读,更多相关《河北工业大学 单片机实验第二次实验内容实验三算数运算Word文档格式.docx(34页珍藏版)》请在冰豆网上搜索。

河北工业大学 单片机实验第二次实验内容实验三算数运算Word文档格式.docx

0X07

0XC8

1

(A)的地址D:

0X00E0

ADDA,#200

0X0002

0XC0

0X90

SJMP$

结果

(A)=0X90,(cy)=1,结果为400

(2)计算两个双字节数的和的参考程序:

ORG0100H

MOVA,#low(36589)

ADDA,#low(46542)

MOV30H,A

MOVA,#HIGH(36589)

ADDCA,#HIGH(46542)

MOV31H,A

MOVA,#0

ADDCA,#0

MOV32H,A

(OV)

(30H)

(31H)

(32H)

ORG0100H

MOVA,#low(36589)

0x0100

0X00

0XED

ADDA,#low(46542)

0x0102

0XBB

MOV30H,A

0x0104

MOVA,#HIGH(36589)

0x0106

0X8E

ADDCA,#HIGH(46542)

0x0108

0XC4

0X44

MOV31H,A

0x010A

MOVA,#0

0x010C

ADDCA,#0

0x010E

MOV32H,A

0x0110

0x0112

83131

地址

D:

0X0030

0X0031

0X0032

2)减法的参考程序

(1)两个单字节数的减法程序

CLRC

MOVA,#100

SUBBA,#200

(SP)

0x0000

0x0001

0X64

SUBBA,#200

0x0003

0X9C

0x0005

-100

(2)两个双字节数的减法程序

MAIN:

SUBBA,#low(16542)

MOVA,#HIGH(36589)

SUBBA,#HIGH(16542)

SUBBA,#0

MOV,#low(36589)

0x0101

SUBBA,#low(16542)

0x0103

0X41

0X4F

0x0105

MOVA,#HIGH(36589)

0x0107

0X40

SUBBA,#HIGH(16542)

0x0109

0X04

0X4E

0x010B

0x010D

SUBBA,#0

0x010F

0x0111

0x0113

2047

 

2、计算下面各式中两个带符号数的和及差,观察OV,并记录运算结果,并求出结果的真值。

(1)计算56+78

MAIN:

MOVA,#56

ADDA,#78

(PC)

(AC)

(PSW)

0X0000

0X38

ADDA,#78

0X0002

0X86

0X45

0X0004

134

(2)计算120+120

MOVA,#120

ADDA,#120

 

0X78

ADDA,#120

0XF0

240

(3)计算-56-78

MOVA,#-56

SUBBA,#78

0X0001

SUBBA,#78

0X0003

0X7A

0X0005

-134 

(4)计算-120-123

MOVA,#-120

SUBBA,#123

(DPTR)

0X88

SUBBA,#123

0X0D

-243 

参考程序见无符号数的加法和减法程序。

3、BCD码运算,观察CY、AC,并记录运行结果,求出结果的真值。

1)计算56+99

参考程序:

MOVA,#56H

ADDA,#99H

DAA

0X56

ADDA,#99H

0x0002

0XEF

DAA

0x0004

0X80

0X55

0x0007

155

2)计算56-99

MOVA,#9AH

SUBBA,#99H

ADDA,#56H

CPLC

0X9A

ADDA,#56H

0X57

0x0008

CPLC

0x000A

0X81

0x000B

-43

3)计算36826529+29541265

被加数

(33H)

36H

82H

65H

29H

加数

(23H)

(22H)

(21H)

(20H)

54H

12H

多字节十进制加法参考程序:

MOVR0,#30H

MOVR1,#20H

MOV2FH,#04H

DA1:

MOVA,@R0

ADDCA,@R1

MOV@R1,A

INCR0

INCR1

DJNZ2FH,DA1

MOV7FH,C

END

(R0)

((R0))

(R1)

((R1))

(D:

0X002F)

0X30

0X29

0X65

MOVR1,#20H

0X20

MOV2FH,#04H

CLRC

0X0007

DA1:

0X0008

0X0009

0X000A

0X94

0X05

MOV@R1,A

0X000B

INCR0

0X000C

0X31

INCR1

0X000D

0X21

0X12

DJNZ2FH,DA1

0X000E

进行循环,第35步循环结果为(21H)=77H,(22H)=36H,(23H)=66H

MOV7FH,C

0X0011

0X66

0X33

0X36

0X23

0X0013

END

0X0033

0X0023

0X0022

0X0021

0X0020

最后结果为:

66267794

思考题

1)如果求两个带符号数的和或差出现了溢出,如何将两个运算数扩大字节后再做一遍,再观察OV,记录结果,求出真值,计算结果还溢出吗?

答:

不会溢出。

如何将两个运算数扩大字节后再做一遍,OV为0,计算结果不会溢出。

2)在多字节十进制加法程序,若两数的和存放到从40H开始的单元,如何修改程序?

在MAIN中加一条MOVR2,40H指令。

并将DA1中的MOV@R1,A改为MOV@R2,A并在INCR1后加一条INCR2。

实验四逻辑运算及位操作指令编程设计

(1)熟悉字节逻辑运算指令功能。

(2)熟悉位操作指令运算功能。

(3)从而更深入的掌握汇编语言程序设计。

(4)学会观察CPU窗口中BIT区的变化。

1.字节逻辑运算程序

在片内RAM的FIRST和SECOND单元中各有一符号数X和Y,要求按下列条件算出Z,存入RESULT单元中(设运算结果仍为8位数)。

FIRSTEQU30H

SECONDEQU31H

RESULTEQU32H

START:

MOVR0,FIRST

MOVA,R0

JBACC.7,NEG

MOVB,#2

DIVAB

MOVA,B

JZTEMP1

MOVA,R0

ADDA,SECOND

SJMPRES

TEMP1:

MOVA,R0

ANLA,SECOND

NEG:

CPLACC.7

JZTEMP2

ORLA,SECOND

TEMP2:

XRLA,SECOND

RES:

MOVRESULT,A

手动设置(d:

0x0030)=0x01,(d:

0x0031)=0x02

(B)

START:

MOVA,R0

JBACC.7,NEG

MOVB,#2

0X0006

0X02

DIVAB

MOVA,B

JZTEMP1

MOVA,R0

ADDA,SECOND

0X000F

0X03

SJMPRES

TEMP1:

ANLA,SECOND

0X0014

0X0017

NEG:

0X0018

0X001A

0X001D

0X001E

JZTEMP2

MOVA,R0

ORLA,SECOND

0X0025

TEMP2:

0X0027

XRLA,SECOND

0X0028

0X002A

0X002C

 结果

 Z=X+Y,即(d:

0x0032)=0x03 

2.位操作程序

布尔电路图如下:

XBIT00H

YBIT01H

ZBIT02H

FBIT03H

START:

MOVC,Z

ANLC,/Y

MOVF,C

MOVC,Y

ANLC,/Z

ORLC,F

MOVC,X

ANLC,Y

ORLC,/F

(F)

初值:

(20H)=07H

START:

ANLC,/Y

MOVF,C

MOVC,Y

ANLC,/Z

ORLC,F

MOVC,X

ANLC,Y

0X0010

ORLC,/F

0X0012

0X0016

结果:

(20H)=0X0F

三、思考题

1.字节与位逻辑运算指令在编程上什么区别?

应注意什么?

主要在寻址方式的不同,使得命令使用也不同。

应注意逻辑运算的寻址方式是位寻址,改变的数只能是0或1。

2.如何用断点方式调试本程序?

在开始调试时用断点按钮和光标配合设定断点然后开始调试。

实验五代码转换及移位操作

一、实验目的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1