第三章习题与思考题参考答案
更新时间:2024-03-22 21:29:01 阅读量: 综合文库 文档下载
习题与思考题
3-8 按要求写出相应的指令。
(1)把寄存器R6的内容送到累加器A中。
(2)把外部RAM 1000H单元的内容传送到内部RAM 30H单元中。 (3)清除内部RAM 3FH 单元的高4位。 (4)使累加器A的最低位置1。 (5)清除进位位。
(6)使ACC.4和ACC.5置1。
(7)把外部ROM 2000H单元中的内容送到内部RAM的20H单元中。 (8) 把外部ROM 2000H单元中的内容送到外部RAM的3000H单元中。 答案:
(1) MOV A,R6
(2) MOV DPTR,#1000H
MOVX A,@DPTR MOV R0,#30H MOV @R0,A
(3) ANL 3FH,#0FH
(4) ORL A,#01H (5) CLR C (6) ORL A,#30H (7) CLR A
(8)
MOV DPTR,#2000H MOVC A,@A+DPTR MOV 20H,A CLR A
MOV DPTR,#2000H MOVC A,@A+DPTR MOV DPTR,#3000H MOVX @DPTR,A
3-10 编写程序段完成如下要求。
(1)将寄存器R0中的内容乘以10(积小于256)。
(2)将片内RAM 30H单元开始的15个字节的数据传送到片外RAM 3000H开始的单元中。
(3)将片外RAM 2000H开始的5个字节的数据传送到片内RAM 20H开
·1·
始的单元中。
(4)有10个字节的二进制数存放在片内RAM以 40H开始的单元内,编程找出其中的最大值并存于内部50H单元中。
(5)将片外RAM空间2000H~200AH中的数据的高4位变零,低4位不变,原址存放。
(6)将外部RAM 2040H单元的内容与3040H单元的内容互换。 答案: (1) MOV B,#0AH
MOV A,R0 MUL AB MOV R0,A (2) ORG 0000H
MOV R0,#30H
MOV DPTR,#3000H MOV R7,#0FH
LOOP: MOV A,@R0
MOVX @DPRT,A INC R0 INC DPTR
DJNZ R7,LOOP SJMP $ END
(3) MOV DPTR,#2000H
MOV R0,#20H MOV R7,#05H
LOOP: MOVX A,@DPTR
MOV @R0,A INC R0 INC DPTR
DJNZ R7,LOOP END
(4) ORG 0000H
MOV A,40H;A寄存器放最大值,且初始化最大值(默认第一个数) MOV R3,#09H;比较次数 MOV R0,#41H
START: CJNE A,@R0,LOOP
LOOP: JNC LOOP1;如果比A小,则跳转到LOOP1
MOV A,@R0;如果比A大,则更新A的值
·2·
LOOP1: INC R0
DJNZ R3 START MOV 50H,A SJMP $ END
(5) MOV DPTR,#20000H
MOV R1,#0BH
LOOP: MOVX A,@DPTR
ANL A,#0FH
MOVX @DPTR,A INC DPTR
DJNZ R1,LOOP SJMP $
(6) MOV DPTR,#2040H
MOVX A,@DPTR MOV R0,#20H MOV @R0,A
MOV DPTR,#3040H MOVX A,@DPTR XCH @R0,A MOVX @DPTR A MOV A,@R0
MOV DPTR,#2040H MOVX @DPTR,A
3-15 设有一带符号的十六位数以补码形式存放在R2、R3寄存器中,试编制求其原码的程序。
ORG 0000H
START: MOV A,R3
JB ACC.7,NEXT;判读符号位,如果是正数则原码与补码一样,如果为
负,求原码的方法是符号位不变,其余位取反加1 MOV R3,A
HERE: SJMP $
NEXT: XRL A,#7FH;高八位,符号位不变,其余取反
MOV R3,A;放回R3 MOV A,R2;低八位 XRL A,#0FFH;取反 ADD A,#01H;加1 MOV R2,A;放回R2
·3·
MOV A,R3;看低八位是否有向高八位进位
ADDC A,#00H MOV R3,A SJMP $ END
3-16 设有一不带符号的十六进制数组,存放在8031单片机片内RAM以BUFFER为首址的连续单元中,其长度为30个字节,要求统计小于10,等于10及大于10的数的个数,并把它们分别存放到片内RAM的LESS、EQUAL、BIG单元中,试编制实现上述要求的程序并画出相应的流程图。 ORG 0000H
BUFFER DATA 10H LESS DATA 30H EQUAL DATA 31H BIG DATA 32H
MOV R0,#BUFFER MOV R7,#1EH MOV LESS,#00H MOV EQUAL,#00H MOV BIG,#00H
NEXT: CJNE @R0,#0AH, LOOP1;循环次数
INC EQUAL AJMP LOOP3
LOOP1: JC LOOP2
INC BIG
AJMP LOOP3
LOOP2: INC LESS LOOP3: INC R0
DJNZ R7, NEXT SJMP $ END
3-17 在外部RAM 1000H单元开始的存储区域存放着10个用ASCII码表示的0~9之间的数字,请编程将它们转换成BCD码,然后存放在2000H~2004H单元(以压缩BCD码存放)。 ORG 0000H
MOV R2,#05H
MOV DPTR,#1000H MOV R0,#20H
LOOP: MOVX A,@DPTR
·4·
ANL A,#0FH MOV R4,A INC DPTR
MOVX A,@DPTR ANL A,#0FH SWAP A ADD A,R4 MOV @R0,A INC R0 INC DPTR
DJNZ R2,LOOP MOV R5,#05H MOV R0,#20H
MOV DPTR,#2000H
LOOP1: MOV A,@R0
MOVX @DPTR,A INC R0 INC DPTR
DJNZ R5,LOOP1 SJMP $ END
3-18 设有50个无符号8位二进制数,存放在8031单片机内部RAM以BOFER为首址的连续单元中,试编制将其中最小数存放到内部RAM的MIN单元的程序并画出相应的流程图。 ORG 0000H
BOFER DATA 20H MIN DATA 60H
MOV R2,#31H;循环49次
MOV R1,# BOFER+1
MOV MIN,BOFER;把最小值放A,且初始化时把第一个数放入A
LOOP: CJNE @R1,MIN,LOOP1 LOOP1: JNC LOOP2; @R1>MIN
MOV MIN,@R1 ;MIN >@R1,MIN要更新
LOOP2: INC R1
DJNZ R2,LOOP SJMP $ END
3-19 设有一字符串存放在8031单片机内部RAM以20H为首址的连续
·5·
正在阅读:
第三章习题与思考题参考答案03-22
九年级物理上第十六章从指南针到磁悬浮列车单元测试沪科版02-26
25项反措12-16
关于介绍自己的作文02-05
2014江西公务员考试行测 每日一练(01.02)12-18
小学美术教案五年级上册:04课 搭架子03-08
孝心在行动作文400字07-09
以学生为中心的初中英语阅读有效教学研究12-16
北师大版_七年级下册_第一章_整式的乘除_计算题专项训练08-12
氨区值班员管理标准01-15
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 思考题
- 习题
- 答案
- 参考
- 第三章