设计与开发

单片机da指令 跟电师傅学单片机(13):单片机算术运算类指令图文讲解

小编 2024-10-06 设计与开发 23 0

跟电师傅学单片机(13):单片机算术运算类指令图文讲解

一:加一减一指令(共9条)

单片机加一减一指令表

1、INC:单片机加1指令(共5条),主要用于修改地址指针和计数次数,只有一个操作数。

指令功能:是将操作数所确定的单元或寄存器中的内容加1,最后将结果还是送回原操作数单元中。

操作数:累加器A、寄存器Rn、直接地址direct、寄存器间接寻址单元、数据指针寄存器DPTR中的内容。

2、DEC:单片机减1指令(共4条),只有一个操作数,与INC指令类似。

指令功能:是将操作数所确定的单元或寄存器中的内容减1,最后将结果还是送回原操作数单元中。

操作数:累加器A、寄存器Rn、直接地址direct、寄存器间接寻址单元中的内容。

二:十进制调整指令(1条)

DA A

单片机十进制调整指令,功能是在进行BCD码加法运算时,用来对BCD码的加法运算结果自动进行修正,修正结果存放在A中。

BCD码:是二进码十进数或二-十进制代码,用4位二进制数来表示1位十进制数中的0~9这10个数码。

注意:

1:在进行BCD加法运算时,在单片机加法指令ADD或ADDC指令后紧跟着DA A指令,单片机自动判断和修正。

2:对BCD码的减法运算时不能用DA A指令不进行修正,不适用减法指令。

3:影响PSW中CY、AC、OV标志位。(请看下图:标志寄存器PSW功能图)

三:乘法指令(1条)

MUL AB

单片机乘法指令,功能是实现2个8位无符号数的乘法运算,相乘的2个数分别存放在累加器A中和寄存器B中,乘积结果为16位:低8位存放在A中,高8位存放在B中。

注意:

1:乘数和被乘数可以交换。

2:乘积结果大于255,PSW中的溢出标志位OV置1,否则为0 。

单片机标志寄存器PSW功能图

单片机指令举例:

02H和04H的乘法运算

MOV A,#02H

MOV B,#04H

MUL AB

执行指令结果:

A:08H

B:00H

OV:0

四:除法指令(1条)

DIV AB

单片机除法指令,功能是实现2个8位无符号数的除法运算,被除数放在累加器A中,除数放在寄存器B中。相除结果:商放在A中,余数放在B中。

注意:

单片机除法指令也影响PSW中CY和OV标志位,相除之后CY和OV均为0。(请看上图:标志寄存器PSW功能图)

单片机指令举例:

22和4的除法运算

MOV A,#22

MOV B,#04

MUL AB

执行指令结果:

A:05H

B:02H

CY:0

OV:0

单片机乘除法指令

到此为止,24条单片机算术运算类指令讲解完毕,谢谢阅读!欢迎留言讨论,共同提高!

大学单片机考试试卷及答案

一、填空题(每空1分,共15分)

1、二进制数(11101100)2=___EC____H =___236____D。

2、一个机器周期等于____6____个状态周期,振荡脉冲2分频后产生的时序信号的周期定义为___状态_____周期。

3、一般的计算机系统都是由____地址总线_______、___数据总线_______、_____控制总线____三总线结构组成。

4、89C51片内RAM有___256___字节,其中包含___128___字节用户数据存储单元和__128____字节的特殊功能寄存器单元,片内ROM有___4K___字节。

5、假定(A)=95H,(R0)=20H,(20H)=0BFH。执行指令:ADD A,@R0后,累加器A的内容__54H___,CY的内容__1___,AC的内容__1___,OV的内容__1___。

得分

评卷人

、选择题(每题2分,共30分)

1、在MCS—51指令中,下列指令中 C 是无条件转移指令。

A.LCALL addr16 B.DJNZ direct,rel C.SJMP rel D.ACALL addr11

2、16.寻址方式就是 C 的方式。

A.查找指令操作码 B.查找指令

C.查找指令操作数 D.查找指令操作码和操作数

3、下列指令判断若P1口最低位为高电平就转LP,否则就执行下一句的是 B 。

A.JNB P1.0,LP B.JB P1.0,LP C.JC P1.0,LP D.JNZ P1.0,LP

4、下列指令能能使累加器A的最高位置1的是 D 。

A.ANL A,#7FH B.ANL A,#80H C.ORL A,#7FH D.ORL A,#80H

5、下列指令能能使P1口的最低位置1的是 B 。

A.ANL P1,#80H B.ORL P1,#01H C.ORL P1,#0FFH D.ORL P1,#80H

6、MCS—51汇编语言指令格式中,唯一不可缺少的部分是 B 。

A.标号 B.操作码 C.操作数 D.注释

7、MCS—51指令包括操作码和操作数,其中操作数是指 D 。

A.参与操作的立即数 B.寄存器 C.操作数 D.操作数或操作数地址

8、设累加器A中为无符号数,B中数为2,下列指令 D 的作用与其它几条不同。

A ADD A,0E0H B MUL AB C RL A D RLC A

9、欲将P1口的高4位保留不变,低4位置1,可用指令 B 。

A ANL P1,#0F0H B ORL P1,#0FH

C XRL P1,#0FH D 以上三句都对

10、8051单片机的位寻址区位于内部RAM的 D 单元。

A 00H~7FH B 20H~7FH

C 00H~1FH D 20H~2FH

11、8051的程序计数器PC为16位计数器,其寻址范围是 D 。

A 8K B 16K C 32K D 64K

12、在单片机算术运算过程中,指令DA A常用于 C 运算。

A.二进制 B.加法 C.BCD码加法 D.十六进制

13、LJMP跳转空间最大可达到 D 。

A 2KB B 256B C 128B D 64KB

14、单片机能直接运行的程序叫 C 。

A 源程序 B 汇编程序 C目标程序 D编译程序

15、将内部数据存储单元的内容传送到累加器A中的指令是 C 。

A MOVX A,@R0 B MOV A, #data C MOV A,@R0 D MOVX A, @DPTR

三、分析下面程序并填空(每空1分,共25分)

1、程序填空

MOV A,#10H (A)=_10H___________MOV B,A (B)=_10H____________MOV A,B (A)=__10H___________ADD A,B (A)=__20H____________MOV 20H,A (20H)=___20H__________INC A (A)=_____21H________MOV 21H,A (21H)=_____21H________INC A (A)=________22H____MOV 22H,A (22H)=_______22H______

2、程序填空

MOV DPTR,#2000H (DPTR)=__2000H___________MOV A,#80H (A)=_______80H_____MOVX @DPTR,A (2000H)=___80H_________INC DPTR (DPTR)=____2001H________MOV A,#90H (A)=____90H________MOVX @DPTR,A (2001H)=___90H__________MOV DPTR,#2000H (DPTR)=____2000H________MOVX A,@DPTR (A)=_____80H________MOV B,A (B)=____80H_______INC DPTR (DPTR)=__2001H________MOVX A,@DPTR (A)=_______90H______

3、改正下列指令

MOV @R3,A MOV @R1,AMOV DPTR,A MOVX @DPTR,AINC @R3 INC R3DEC DPTR DEC R3ADDC #30H,A ADDC A,#30H

四、寻址方式(每题2分,共10分)

(说明8051单片机的下列各条指令中源操作数的寻址方式)

1.ANL A,20H 直接寻址2.ADDC A,#20H 立即寻址3.JZ rel 相对寻址4.CLR C 位寻址5.RR A 寄存器寻址

五、综合题(共20分)

1、编程将片内RAM30H单元开始的15个的数据传送到片外RAM3000H开始的单元中去。(10分)

MOV R0,#30H

MOV DPTR,#3000H

MOV R7,#15

LOOP: MOV A,@R0

MOVX @DPTR,A

INC R0

INC DPTR

DJNZ R7,LOOP

2、片内RAM40H开始的单元内有10个二进制数,编程找出其中最大值并存于50H单元中。(10分)

START: MOV R0,#40H ;数据块首地址送R0

MOV R7, _#9___ ;比较次数送R7

MOV A,@R0 ;取数送A

LOOP: INC R0

MOV _30H __,@R0 ;取数送30H

CJNE A,30H,NEXT ;(A)与(30H)相比

NEXT: __ JNC NEXT1_ ;(A)≥(30H)转NEXT1

__ MOV A,30H _ ;(A)<(30H),大数送A

NEXT1: DJNZ R7,LOOP ;比较次数减1,不为0,继续比较

__MOV 50H,A___ ;比较结束,大数送50H

RET

相关问答

单片机指令DA 解释?

BCD码转换指令;比如说:81D+91D=172D而:81H+91H=112H这里为了将81H+91H结果与81D+91D一致,经过DA有:DA(112H)=112H+60H=172H虽然一个是16...

汇编中 DA指令 到底什么意思?

单片机汇编DAA指令为十进制调整指令,是结合加法指令一起用的,在其它场合使用没有意义甚至会出错,如十进制加法38+55=93汇编为MOVA,#38H;...

单片机 中调整 指令 : DA 若A=35H,执行下列程序段后,累加器A的...

[最佳回答]答案是A=62HDAA是BCD加法后的调整两个BCD码相加35+27=62ADDA,#27后A=5BHDAA;进行调整就成了62H一定是两个BCD码相加,DAA要紧跟在AD...

单片机 十进制怎么运算?

如果是51单片机的话,做十进制减法运算,只能用ADD和ADDC指令做,因为只有这两条加法指令运算的结果才能用DAA指令进行十进制调整。方法是:如Y=A-B,变成Y=A+(...

()地址线。15、 DA指令 是()指令,它只能紧跟在()指令后使用...

[最佳回答]6、在片外扩展一片2764程序存储器芯片要(13位)地址线。15、DA指令是(二进制转十进制)指令,它只能紧跟在(加法)指令后使用。38、在程序状态寄存器PS...

51 单片机 十进制调整 指令 ?

如果是51单片机的话,做十进制减法运算,只能用ADD和ADDC指令做,因为只有这两条加法指令运算的结果才能用DAA指令进行十进制调整。方法是:如Y=A-B,变成Y=A+(...

单片机 DA AD的光电隔离问题?

很多DA/AD芯片的模拟地/数字地都是分开的,处理好数字地与模拟地一般就可以用了。还没有在数据线上用过光耦...感觉没这个必要。坐等高手~~一般高速DA/AD在处...

单片机 输出正弦波信号?

用C语言写比较简单,用函数可以用,如果用汇编语言写,就要用查表的方法,而且采样点不能太多(不超过255为好).上面那位说得对,就是一个D/A程序,只是不断的转换...

如何用 单片机 做一个1~4V的稳定输出?

用单片机实现一个(1-4)V的电压输出,如果只是用作信号,不需要输出电流,则可以通过单片机的DA来实现。如果用作电源,需要输出电流,则需要通过PWM来实现,也就...用...

为什么在51 单片机 里面数据存储器高128个字节里存放的是特殊...

一、判断题()1.MCS—51单片机是高档16位单片机。()2.MCS—51的产品8051与8031的区别是:8031片内无ROM。()3.单片机的CPU从功能上可分为运算器和...

猜你喜欢