美文网首页
2018-12-06【嵌入式&物联网】记一次汇编题目

2018-12-06【嵌入式&物联网】记一次汇编题目

作者: 狐二丶 | 来源:发表于2018-12-06 20:39 被阅读0次
    --------------------------------
    Author : ShawnDong
    updateDate :2018.12.6
    Blog : ShawnDong98.github.io
    --------------------------------

    这个题目一开始没看懂题目要求,后来看例程一头雾水,后来在自己写程序的过程中去理解例程的思路,慢慢就豁然开朗。
    我觉得这个题目会感到吃力完全是因为自己太拙了。诸位看到这样的题目,应该会迎刃而解吧。

    题目:设4位BCD码依次存放在内存RAM40H~43H单元的低四位,高四位都为0,要求将其转换为二进制数,结果存入R2R3中。

    核心思想:一个十进制数可表示为:(...(Dn * 10^n + D(n-1))*10 + D(n-2) * 10 + ...) + D0

    首先初始化

            ORG 0000H
    
    BCDHEX: MOV R0, #40H
            MOV R1, #03
            MOV A, @R0
            MOV R3, A
    

    注意:在该题目中R2用来保存高八位,R3用来保存低八位。A保存低八位,B保存高八位,搞清楚这点后。开始接下来的程序。

    LOOP:   MOV A, R3
            MOV B, #10
            MUL AB
            MOV R3, A
    

    将低八位乘10后,将计算结果的低八位存入R3
    注意,接下来这段程序我理解了好久才明白什么意思,一开始一直很费解

            MOV A, B
            XCH A, R2
            MOV B, #10
            MUL AB
            ADD A, R2
            MOV R2, A
    

    将低八位乘10后,将计算结果的低八位存入R3,然后将高八位的数据暂时存放在R2中,并把R2中的值给A,注意这时A中的值是上一次计算结果的高八位,在刚才的程序中,我们仅仅将低八位乘以了10,现在我们将高八位也乘以10,然后还需要将刚才低八位乘10后,计算结果的高八位加上,这才是真正一个二进制乘10的方法。

    至此我们将上一次的计算结果乘以了10,也就是完成了Dn*10^n这一步。接下来就是加上Dn-1这个值,然后再循环就完成了这个题目,程序如下:

            INC R0
            MOV A, R3
            ADD A, @R0
            MOV R3, A
            MOV A, R2
            ADDC A, #0
            MOV R2, A
            DJNZ R1, LOOP
            SJMP $
            END
    

    完整的程序如下:

            ORG 0000H
    
    BCDHEX: MOV R0, #40H
            MOV R1, #03
            MOV A, @R0
            MOV R3, A
            
    SOLVE:  MOV A, R3
            MOV B, #10
            MUL AB
            MOV R3, A
            MOV A, B
            XCH A, R2
            MOV B, #10
            MUL AB
            ADD A, R2
            MOV R2, A
            INC R0
            MOV A, R3
            ADD A, @R0
            MOV R3, A
            MOV A, R2
            ADDC A, #0
            MOV R2, A
            DJNZ R1, SOLVE
            SJMP $
            END
    

    相关文章

      网友评论

          本文标题:2018-12-06【嵌入式&物联网】记一次汇编题目

          本文链接:https://www.haomeiwen.com/subject/uqracqtx.html