当前位置:文档之家› 单片机作业及参考答案

单片机作业及参考答案

习题1、BCD 码加法编程。

X 、Y 为4位压缩BCD 码,求 Z=X+Y 。

设X 存在片内RAM 40H 、41H 单元,Y 存在42H 、43H 单元,编程求 Z=X+Y ,并存入片内RAM 单元44H 、45H 、46H 。

ADB :MOV A ,40H ADD A ,42H DA A MOV 44H ,A MOV A ,41H ADDC A ,43H DA A MOV 45H ,A MOV A ,#0 ADDC A ,#0 MOV 46H ,A RET
习题2:编程求双字节减法。

设X 、Y 存在片内 RAM 40H 起始单元,计算Z=X-Y 。

SUBD :CLR C MOV A ,40H SUBB A ,42H MOV 44H ,A MOV A ,41H SUBB A ,43H MOV 45H ,A MOV A ,#0 SUBB A ,#0 MOV 46H ,A RET 习题3:编程完成对DPTR 的减1操作.
MOV A ,DPL
CLR C
SUBB A ,#1
MOV DPL ,A
MOV A ,DPH
SUBB A ,#0
MOV DPH ,A
习题4:如何将累加器A 中的数据高4位清0,低位不变?
ANL A ,#0FH
习题5:如何将寄存器R2中的数据奇数位取反,偶数位不变?
MOV A ,R2
XRL A ,#10101010B
MOV R2,A
;取被加数低字节 ;加上加数低字节 ;BCD 十进制调整 ;保存和的低字节 ;取被加数高字节 ;加上加数高字节 ;BCD 十进制调整 ;保存和的高字节 ;求高字节进位 ;子程序结束 ;清借位标志
;取被减数低字节
;减去减数低字节
;保存差的低字节
;取被减数高字节
;减去减数高字节
;保存差的高字节
;保存差的借位标志

;子程序结束
习题:计算程序中转移指令的相对偏移量 e ,并判断是否超出转移范围。

地址源程序
2130H LOOP:…

21B0H SJMP LOOP
解:e = 目的指令地址-(转移指令地址+指令字节数)
= 目的地址-PC当前值
=2130H-(21B0H+2)
=-130﹤-128
故超出转移范围。

相关主题