精品文档
第一章 1-4
运算器,控制器,存储器,输入设备,输出设备 1-9(7)
1-11(3)
1-12(4)
1-16(3) 见例1-17 1-19(1) 0100 0111 1-20(1) 41 42 38
第二章
2-2 见书p30, 2-4 见书p31, 2-5 见书p31, 2-6 见书p32, 2-9 见书p38, 2-10 见书p39, 2-13 见书p43, 2-14 见书p46,
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
。 1欢迎下载
精品文档
MOV @R0,A
(3) ANL 3FH,#0FH (4) ORL A,#01H (5) CLR C
(6) ORL A,#30H (7) CLR A
MOV DPTR,#2000H MOVC A,@A+DPTR MOV 20H,A (8) 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开始的单元中。
(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
。 2欢迎下载
精品文档
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的值 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;高八位,符号位不变,其余取反
。 3欢迎下载