第四章 汇编语言程序设计
![第四章 汇编语言程序设计](https://img.360docs.net/img37/16ikq4rk6h2funhkuk95unfc9i87lant-71.webp)
![第四章 汇编语言程序设计](https://img.360docs.net/img37/16ikq4rk6h2funhkuk95unfc9i87lant-c2.webp)
第四章汇编语言程序设计
1、编程将片内40H~60H单元中的内容送到以3000H为首的存储区内。答:MOV R1,#40H
MOV R2,#21H
MOV DPTR,#3000H
L1: MOV A,@R1
MOVX @DPTR,A
INC R1
INC DPTR
DJNZ R2,L1
2、编程计算下列算式的程序
(1)23H+45H+ABH+03H=
MOV A,#23H
ADD A,#45H
ADD A,#0ABH
XCH A,B ;溢出处理
ADDC A,#00H
XCH A,B
ADD A,#03H ;A中为结果低位,B中为高位(2)CDH+15H-38H-46H=
MOV A,#0CDH
ADD A,#15H
SUBB A,#38H
SUBB A,#46H
(3)1234H+8347H=
MOV A,#34H
ADD A,#47H
MOV 30H,A
MOV A,#12H
ADDC A,#83H
MOV 31,A ;30H存结果低位,31H存结果高位
(4)AB123H-43ADCH=
CLR C
MOV A,#23H
SUBB A,DCH
MOV 30H,A
MOV A,#0B1H
SUBB A,#3AH
MOV 31H,A
MOV A,#0AH
SUBB A,,#04H
MOV 32H,A ;30H为低位,32H为高位
3、设有两个4位BCD码,分别存放在23H、22H单元和33H、32H单元中,求他们的和,并送入43H、42H单元中(低位在低字节,高位在高字节)。
答:MOV A,22H
ADD A,32H
MOV 42H,A
MOV A,23H
ADDC A,33H
MOV 43H,A
4、略
5、编程计算片内RAM 区50H ~59H 单元中数的平均值,结果存放在5AH 中。 答:
MOV R0,#8
MOV R1,#50H MOV
A ,#00H L1: ADD
A ,@R1 INC
R1 DJNZ
R0,L1 MOV
B ,#8 DIV
AB
MOV 5AH ,A 6、编写计算下式的程序。设乘积和平方结果均小于255。a 、b 值分别存在片外3001H 和3002H 单元中,结果存于片外3000H 单元中。
(1)??
???÷?=b a b a Y 25 b a b a b a ><=,,,
MOV DPTR ,#3001H
MOVX A ,@DPTR
MOV 30H ,A ;a 暂存30H 单元
INC DPL
MOVX A ,@DPTR
CJNE A ,30H ,L1 ;是否a=b
MOV A ,#25 SJMP
SAVE L1:
JNC L2
MOV B ,30H
MUL AB
SJMP SAVE
L2: MOV B ,A
MOV A ,30H
DIV AB
SAVE: MOV DPTR ,#3000H
MOVX @DPRT ,A
(2)?????-++++=10
)()(10
)(222b a b a b
a Y
10)(,10)(,10)(,222>+=+<+b a b a b a
MOV DPTR ,#3001H
MOVX A ,@DPTR
MOV 30H ,A
INC DPTR
MOVX A ,@DPTR
ADD A ,30H
MOV B ,A
MUL AB
; (a +b)2
MOV 31H ,A
CJNE A ,#10,L1
SJMP SAVE
L1: JC L2
CLR C
SUBB A ,#10
SJMP SAVE
L2: ADD A,#10
SAVE: MOV DPTR,#3000H
MOVC @DPTR,A
7、设有两个长度均为15的数组,分别存放在以200H和210H为首地址的存储区中,试编程求其对应项之和,结果存放到以220H为首地址的存储区中。
答:MOV DPH,#02H
MOV R1,#15
MOV R2,#00H ;数组1首地址低位
MOV R3,#10H ;数组2首地址低位
MOV R4,#20H ;和首地址低位
L1: MOV DPL,R2
MOVX A,@DPTR
MOV R1,A
MOV DPL,R3
MOVX A,@DPTR
ADD A,R1
MOV DPL,R4
MOVX @DTPR,A
INC R2
INC R3
INC R4
DJNZ R1,L1
SJMP $