这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 单片机汇编两道题,大人帮帮忙阿

共2条 1/1 1 跳转至

单片机汇编两道题,大人帮帮忙阿

院士
2006-09-17 18:14:16     打赏
单片机汇编两道题,大人帮帮忙阿



关键词: 单片机     汇编     两道     大人     帮帮忙    

院士
2006-12-22 22:43:00     打赏
2楼
问 板主:我在侃单片机也发了这个主题,实在是因为着急阿。不知道违规么,如果违规我道歉,并麻烦您帮忙删除这个。

**************************************

马上要考试了,因为很多年没用这方面东西了,有2道题必出的

考题自己不能肯定,还求各位大侠援手帮个忙。
要求用51的汇编语言写,用8086或者c51都能找到很多现成的参

考,偏偏规定要用intel的51
路过的大侠要是忙,您给点拨一下思路或者提示一下容易出错的

地方也好。

1:从aa存储单元开始存放有32个单字节无符号数,用51的汇编

语言编写程序求32个数的平均值,结果存放AVR单元

2:自单元bb开始存放有一个字符串(以$结尾),用51汇编程序

编写程序统计数字字符0---9的个数

万分感谢
**********

我自己做了一下第一题,不知道对不对。
我在这里的一个概念有些糊涂,上面那位朋友写的程序加的和会

不会溢出呢?
要是会溢出只能用双字节加法,可这样除法也要双字节,似乎很

麻烦了,除法的程序我真么做似乎还有一个缺点,没有余数了。
大人帮忙看看阿

SUN:    MOV    R0,#32        ;R0存数字个数
    MOV     R2,#00H    ;R2,R3存双字节和
    MOV    R3,#00H
    MOV    R4,#AAH        ;R4存首地址
LOOP:    MOV    A,R4    
    ADD    A,@R4        ;求和
    MOV    R3,A
    CLR    A
    ADDC    A,R2
    MOV    R2,A
    DJNZ    R0,LOOP
    
LOOP2:    MOV    R1,#05H
    CLR    C
    RRC    R2
    RRC    R3    ;除一次2
    CLR    C
    DJNZ    R1,LOOP2    ;除32等于除5次2
    END 1: 楼主程序有错:根本没有取数据,而且只有R0/R1可以作指针1:从aa存储单元开始存放有32个单字节无符号数,用51的汇编。假定这32个数存放在idata中。
   原程序改编如下:(楼主的除法部分错误,希望楼主自己改正)
SUN:    
    MOV    R0,#aa        ;R0存数据地址
    MOV    R4,#32        ;R4存数字个数
    MOV    R2,#00H       ;R2存累加数的双字节和高字节
    MOV    R3,#00H       ;R4存累加数的双字节和低字节
    
LOOP:    
    MOV    A,@R0    
    ADD    A,R3        ;求和
    MOV    R3,A
    CLR    A
    ADDC    A,R2
    MOV    R2,A
    INC    R0 ; 这里假定是升序排列,若是降序排列,需要改用DEC R0
    DJNZ    R4,LOOP
2: 在别人的提示下自己做了一下,不知道这样行嘛?SUN:    MOV    R5,#32        ;R0存数字个数
    MOV     R1,#00H    ;R2,R3存双字节和
    MOV    R2,#00H
    MOV    R0,#AAH        ;R4存首地址
LOOP:    MOV    A,R0    
    ADD    A,@R0        ;求和
    MOV    R1,A
    CLR    A
    ADDC    A,R2
    MOV    R2,A
    DJNZ    R5,LOOP
    
LOOP2:    MOV    R6,#05H
    MOV    R7,#00H    
    CLR    C
    RRC    R2
    RRC    R3    ;除一次2
    RRC    R7
        
DJNZ    R6,LOOP2    ;除32等于除5次2
    MOV    A,R7
    SWAP    A
    MOV    R7,A
    RR    R7
    END
    最后结果,R3中是商,R7中是余数     3: 第二题这么做行么,还有什么好办法么?ascii    A=41,a=97,0=30,$=24
    MOV    DPL,#BBH
LOOP:    MOVX    A,@DPTR
    CJNE    A,#30H,A0
    AJMP    SUN
A0:    CJNE    A,#31,A1
    AJMP    SUN
A1:    CJNE    A,#31,A2
    AJMP    SUN  
继续一直到39  
    INC    DPTR
    JMP    LOOP

SUN:    INC,R1    ;R1中存统计数字
    JMP,LOOP 4: 谢谢a12345678

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]