单片机程序分析试题(高分跪求,谢谢高手啦~~)

来源:百度知道 编辑:UC知道 时间:2024/05/30 02:56:05
下列指令组要完成重复执行NEXT 开始的程序50 次。请找出错误,并改正之。运行结
束后,A、R0、R1 和R2 寄存器的值分别为什么?
MOV R0,#32H
CLR A
MOV R1,A
MOV R2,A
NEXT:
MOV A,R1
ADD A,R0
MOV R1,A
MOV A,R2
ADDC A,#0
MOV R2,A
DEC R0
DJNZ R0,NEXT
SJMP $
6. 使用μVision2 集成开发环境对上题的正确结果进行软件仿真;用C-51 实现题5 的功能,
并使用μVision2 集成开发环境进行软件仿真。

8. 下列程序段要将R3(高位)、R2(低位)中的16 位二进制数乘2 后,存回R3、R2 中
(设结果仍为两字节)。请找出错误,并改正之。
MOV A,R2
ADD A,R2
MOV R2,A
MOV A,R3
ADD A,R3
MOV R3,A
SJMP $

10. 已知(A)=25H,执行下列指令组后(20H)=( ),(21H)=( ),
并使用μVision2 集成开发环境进行软件仿真。
MOV 20H,A
ANL 20H,#0FH
SWAP A
ANL A,#0FH
MOV 21H,A
SJMP $

第一题:
去掉倒数第三行DEL R0即可循环50次
程序运行完后,
A中值为04H,R0中值为00H,R1中值为0FBH,R2中值为04H
第八题:
改为:
CLR C ;增加
MOV A,R2
ADD A,R2
MOV R2,A
MOV A,R3
ADDC A,R3 ; 修改
MOV R3,A
SJMP $
第10题:
(20H)=05h
(21H)=02H
如果要具体的计算过程,亦可以找我。
记得给我加分哟!

做个记号,有空在来答

(1)重复执行NEXT 开始的程序50 次
DEC R0 删除这句
运行结束后,A、R0、R1 和R2 寄存器的值分别为什么?

在KEIL仿真得到结果

A=0x04、R0=0x00、R1=0xfb、R2=0x04

(2)自己想

(3)自己想