第四章 汇编语言程序设计

第四章  汇编语言程序设计
第四章  汇编语言程序设计

第四章汇编语言程序设计

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 $

相关主题
相关文档
最新文档