单片机第五章作业答案

单片机第五章作业答案
单片机第五章作业答案

5.试编制一个子程序将字符串^MCS-51 Microcomputer^装入外部RAM8000H 开始的显示 缓冲区。

ORG 0000H

AJMP

0030H

MIAN :

MOV DPTR, #800011

MOV Rl, #0

MOV R0, #20

LOOP :

MOV A,

R1

ADD A, #5

MOVC

A, @A+PC

MOVX ?DPTR, A ;1B

INC DPTR ;1B

INC

R1 ;1B

DJNZ

R0, LOOP

;3B

TAB :

DB

C' ,‘ S' / -,,‘ 5,,

9

9

? c ,‘ r ,, 'o'

DB

"J

9

9

9

9

o t m t 9

9

9

p , u , END

6.试设计一个n 字节的无符号十进制数加法子程序,其功能为将(R0)和(R1)指出的内 部RAM

中两个n 字节压缩BCD 码无符号十进制数相加,结果存放于被加数单元中。子程 序入口时,RO, R1分别指向被加数和加数的低位字节,字节数n 存于R2,出口时R0指 向和的最高位字节.CY 为进位位。

其功能为判断(R2R3R4R5)中压缩BCD 码十进制最高位是否为零.若 最高位为0,且该十进制数不为0,则通过左移使最高位不为0。

ORG 0000H AJMP MAIN

LEN

MAIN :

EQU 30 ORG 0000H AJMP

MAIN

ORG 0030H

MOV SP. #60H MOV R2, #LEN ACALL ADD NBYTE SJMP

$ CLR c MOV A, @R0 ADDC A. @R1 DA

A

MOV @R0, A

INC R0 INC R1 DJNZ R2. LOOP

RET

END

试设计一个程序. ADD NBYTE : LOOP :

ORG 0030H

MAIN:MOV A. R2

ANL A. #80H

JNZ NEXT

CLR C

LOOP:MOV A, R5

RLC A

MOV R5, A

MOV A, R4

RLC A

MOV R4, A

MOV A, R3

RLC A

MOV R3, A

MOV A, R2

RLC A

MOV R2, A

ANL A, #80H

JZ LOOP

NEXT:SJMP $

END

9.试设计一个双字节无符号整数乘法子程序,其功能为将(R3R2)和(R5R4)相乘,积存放于

30H~33H。

MOV R0

t

#3311

DJNZ R7, LOOP

| R2R4 || R2R T|L

R2R5R2R5

MULTB: MOV R7, #04 ;结果单元清0

LOOP MOV @R0, #00H

MOV A, R2 ;取被乘数低位字节

x | R5 | | R4 |

R3R4 R3R4 L

+ R3R5 R3R5 L

MOV A, B INC RO ADDC A,他RO MOV @R0, A INC RO MOV A,他RO ADDC A, #00H ;加进位

MOV @R0, A RET

11.试设计一个子程序,其功能为将(R0)指出的内部RAM 中6个单字节正整数按从小到大 的次

MOV B, R4 MUL AB ;取乘数低位字节R4

;R4XR2

ACAL L RADD MOV A, R2 MOV

B,

R5

MUL AB

DEC RO

ACAL L

RADD

MOV A , R4 MOV B, R3

MIL AB

DEC RO

DEC

RO

ACAL L RADD MOV A ,,R5 MOV B, R3

MIL AB

DEC

RO

ACALL RAD ?D

DEC

RO

RET

RADD : ADD A,

?RO

MOV

?RO, A

:调用乘积相加子程序 ;取被乘数低位字节R2

;取乘数高位字节R5

;R5XR2

;积字节指针减1 ;调用乘积相加子程序

;R4XR3

;R5XR3

:累加子程序

序重新排列。

S 2_L:MOV R4, #5

CLR F0

PUSH OOH :RO入栈

POP 01H ;出栈赋给

R1

INC R1

LOOPO:MOV A, R4

MOV R5, A

L00P1:MOV A, @R0

MOV B, A

MOV A, @R1

CJNE A, B. NEXT

SJMP NOCH

NEXT:JNC NOCH

SETB F0

MOV @R0, A

XCH A. B

MOV @R1, A

NOCH:INC RO

INC R1

DJNZ R5, L00P1

JNB FO, HALT

DJNZ R4, LOOPO

HALT:RET

12.试设计一个子程序,其功能为查表指令:MOVCA, 9A+PC,求累加器(A)的平方值.结果送A.入口

时(A) <15o

SQRT:ADD A, #1

@A+PC

MOVC A

t

RET

TAB:DB 0,1,4,9,-,225

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