1
、
编程将片内
RAM30H
单元开始的15
B
的数据传送
到片外
RAM3000H
开始的单元中去
。
解:
STRAT
:
MOV
R0,#30H
MOV
R7,#0FH
MOV
DPTR,#3000H
LOOP
:
MOV
A,@R0
MOVX
@DPTR,A
INC
R0
INC
DPTR
DJNZ
R7,LOOP
RET
2
、编程将片内
RAM
40H
单元中的内容送到片外
RAM2000H
单元中。
解:
ORG
0100H
MOV
A
,
40H
MOV
DPTR
,
#2000H
MOVX
@DPTR
,
A
END
3
、
将内部
RAM
40H
开始的
10
个字节的数搬到外部
RAM
2000H
处
MOV
DPTR,#2000H
MOV
R0,#40H
MOV
R2,#0AH
LOOP:
MOV
A,@R0
MOVX
@DPTR,A
INC
R0
INC
DPTR
DJNZ
R2,LOOP
SJMP
$
END
4
、
将存于外部
RAM 8000H
开始的
50H
数据传送
0010H
的区域,请编程实现。
MOV
DPTR
,
#8000H
MOV
R0
,
#10H
MOV
R2
,
#50H
LOOP
:
MOVX
A
,
@DPTR
;取数
MOVX
@R0,A
;存数
1NC
DPTR
1NC
R0
DJNZ
R2
,
LOOP
RET
5
.片内
RAM40H
开始的单元内有
10B
二进制数,编程找出其中最大值并存于
50H
单元中.
解
START: MOV
R0,#40H
;
数据块首地址送
R0
MOV
R7,#09H
;
比较次数送R7
MOV
A,@R0
;
取数送A
LOOP:
INC
R0
MOV
30H,@R0
;
取数送30
H
CJNE
A,30H,NEHT
;
(
A
)与(
30H
)相比
NEXT:
JNC
BIE1
(A)
≥
(30H)
转
BIR1
MOV
A,30H
;(A)
<
(30H),
大数送
A
BIE1:
DJNZ
R7,LOOP
;
比较次数减
1
,不为
0
,继续比较
MOV
50H,A
;
比较结束,大数送
50H
RET
6.
片内
RAM30H
开始的单元中有
10B
的二进制数,请编程求它们之和(和<
256
)
.
解
ADDIO
:
MOV
R0,30H
MOV
R7,#9
MOV
A,@R0
LOOP
:
INC
R0
ADD
A,@R0
DJNZ
R7,LOOP
MOV
30H,A
RET
7
、
设从内存
BLOCK
单元开始存放一
无符号数的数据块,其长度为
LEN
。试找出其最小数,并存入
MIN
单元。