其一:试编写程序,统计数据区长度。
设数据区从片内RAM的30H单元开始,该数据区以0结束,统计结果放入2FH中。
我这道题不会做,大家帮我一下。
悬赏分:10 - 解决时间:2009-10-30 00:16
最佳答案:
;-------------------------------------------------
程序如下:
MOV 2FH, #0 ;长度为零
MOV R0, #30H ;起始地址
JIANG_CHA:
MOV A, @R0 ;取来数据
INC R0
INC 2FH ;长度加一
JNZ JIANG_CHA ;不为0,就继续检查
;DEC 2FH ;前面的计算,是把0算做数据区内的,如果不算0,长度应该减一
RET ;结束
;-------------------------------------------------
回答者: 做而论道 - 八级 2009-10-24 20:21
原题网址:http://zhidao.baidu.com/question/122774304.html
;==============================================================
其二:编程,将RAM35H—55H单元中的内容传送到片外RAM中去。
悬赏分:15 - 解决时间:2009-11-8 05:59
最佳答案:
;-------------------------------------------------
;假定片外RAM的地址是2800H。
MOV R0, #35H
MOV DPTR, #2800H
M_LOOP:
MOV A, @R0
MOVX @DPTR, A
INC R0
INC DPTR
CJNE R0, #56H, M_LOOP
RET
;-------------------------------------------------
回答者: 做而论道 - 八级 2009-10-24 08:05
提问者对于答案的评价:谢谢
原题网址:http://zhidao.baidu.com/question/122669926.html
;==============================================================
其三:编程序。在内部RAM的21H单元,开始存在有一组单字节不带符号数,数据长度为30H,要求找出最大数存R1单元。
悬赏分:5 - 解决时间:2009-10-30 15:35
;-------------------------------------------------
程序如下:
MOV R0, #21H ;起始地址
MOV R1, #00H ;先用0当做最大值
MOV R2, #30H ;数据长度
LOOP:
MOV A, @R0 ;取来一个数据
CLR C
SUBB A, R1 ;减“最大值”
JNC rel1 ;不够减就算了
MOV A, @R0 ;够减,就把这个数据
MOV R1, A ;当做最大值
rel1:
INC R0 ;转向下一个
DJNZ R2, LOOP ;循环
SJMP $ ;结束
END
;-------------------------------------------------
回答者: 做而论道 - 八级 2009-10-20 07:41
原题网址:http://zhidao.baidu.com/question/122133106.html
;==============================================================