您现在所在的是:

单片机论坛

回帖:7个,阅读:985 [上一页] [1] [下一页]
1059
woodyxue
文章数:66
年度积分:50
历史总积分:1059
注册时间:2006/2/5
发站内信
发表于:2006/2/17 6:52:00
#0楼
要求:把长度为10H的字符串从内部RAM的输入缓冲区inbuf向设在外部RAM的输出缓冲区outbuf进行传送,一直进行到遇见回车ODH或整个字符送完毕。
程序:
MOV   R0,#inbuf
MOV   R1,#outbuf
MOV   R7,#10
LOOP:MOV   A,@R0
        PUSH   A
        MOV   A,#0DH
        SUBB   A,#0DH
        INC   R0
        JZ   LOOP1
        MOVX   @R1,A
        INC   R1
         DJNZ   R7,LOOP
LOOP1:END

各位大侠,请多多指教,我是新学的菜鸟,没什么设备,要是那位有空了可否帮我试一下看可以汇编出来不,小弟谢过了!!!!
1059
woodyxue
文章数:66
年度积分:50
历史总积分:1059
注册时间:2006/2/5
发站内信
发表于:2006/2/17 9:20:00
#1楼
对不起,写错了,改了一下,大家看看!!
MOV   R0,#inbuf
MOV   R1,#outbuf
MOV   R7,#10
LOOP:MOV   A,@R0
        PUSH   A
        MOV   A,#0DH
        SUBB   A,#0DH
        INC   R0
        JZ   LOOP1
        POP   A
        MOVX   @R1,A
        INC   R1
         DJNZ   R7,LOOP
LOOP1:END
早上太急了,忘了POP出栈了!!:)表情
1308
eastzsp
文章数:167
年度积分:50
历史总积分:1308
注册时间:2005/8/10
发站内信
发表于:2006/2/17 10:09:00
#2楼
今天有点空,帮你改改.
MOV   R0,#inbuf
MOV   R1,#outbuf
MOV   R7,#10                 ;这里是10个字符,不是10H(15个字符)
LOOP:MOV   A,@R0
        PUSH   ACC
        SUBB   A,#0DH
        JZ   LOOP1
        POP   ACC
        MOVX   @R1,A
        INC   R0
        INC   R1
        DJNZ   R7,LOOP
LOOP1:END
1185
85880527
文章数:136
年度积分:50
历史总积分:1185
注册时间:2006/1/16
发站内信
发表于:2006/2/17 10:50:00
#3楼
3楼的也受了顶楼的影响,在“JZ LOOP1”没有恢复堆栈,我极力反对这样来传递数值!我记得好象给你修改过一个相似的例子,哎,没仔细看我的回复,还在用POP A,给个标准答案吧:)
MOV R0,#INBUF
MOV R1,#OUTBUF
MOV R7,#10H
LOOP: MOV A,@R0
CJNE A,#0DH,LOOP1
AJMP LOOP2
LOOP1: MOVX @R1,A
INC R0
INC R1
DJNZ R7,LOOP
LOOP2: END
1185
85880527
文章数:136
年度积分:50
历史总积分:1185
注册时间:2006/1/16
发站内信
发表于:2006/2/17 10:58:00
#4楼
突然觉得这里好不合理,顶楼的一个劲在问问题,而我一个劲的在解答,我的金钱和经验值都比顶楼的低,过分:)
1185
85880527
文章数:136
年度积分:50
历史总积分:1185
注册时间:2006/1/16
发站内信
发表于:2006/2/17 11:06:00
#5楼
刚要下,突然又想起一件事,楼上的程序在减之前都没 CLR C。哎,不来了,再也不来这里了
1308
eastzsp
文章数:167
年度积分:50
历史总积分:1308
注册时间:2005/8/10
发站内信
发表于:2006/2/17 11:36:00
#6楼
呵呵,只顾改执行段的程序程序结束后没有出栈,失误!当初在想其实这段程序不用栈传递数据直接判断呢.
1059
woodyxue
文章数:66
年度积分:50
历史总积分:1059
注册时间:2006/2/5
发站内信
发表于:2006/2/19 20:58:00
#7楼
谢谢你的指点!!!
多谢了!!!这里我用的堆栈不是在传递数据,只是保存了一下,不知道可以不???哪天上午写的太急了,很多都不是很好,忘了清零了,真是不好意思,这种小儿科的失误还要让你指出来!!

另外你说的你没有我的等级和经验高我就不知道怎么回事了,是不是你的单片机技术太好了:)。只有我这种菜鸟才有经验积累:)!!!表情

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004