标题: 写出2段汇编程序 2字节数R2 R3,的加1和减1 不考虑这个16位二进制的溢出 [打印本页]

作者: 明白    时间: 2014-8-24 19:08
标题: 写出2段汇编程序 2字节数R2 R3,的加1和减1 不考虑这个16位二进制的溢出
写出2段汇编程序
分别实现:2字节数【R2R3】,的加1和减1  
不考虑这个16位二进制的溢出。

作者: 明白    时间: 2014-8-24 19:09
程序能够尽量少就少
作者: 明白    时间: 2014-8-24 19:09
望论坛朋友们积极的参与互动。
作者: hujia    时间: 2014-8-24 21:44
关注中
作者: hujia    时间: 2014-8-24 21:44
看样子有点像读书的时候老师出的题目
作者: 明白    时间: 2014-8-24 22:20
不是书里有的,网上也是查不到的。
一个字节加1用INC,
减1用DEC
很简单,两个字节呢
作者: hujia    时间: 2014-8-24 23:12
我平时不用汇编语言,不过我倒是有个简单的方法可以实现,可以先用c语言定义一个无符号的int变量a,同样也是占用两个字节,执行a++,然后用keil编译器查看反汇编代码,就知道正确的汇编语言代码是什么了
作者: 明白    时间: 2014-8-26 09:50
hujia 发表于 2014-8-24 23:12
我平时不用汇编语言,不过我倒是有个简单的方法可以实现,可以先用c语言定义一个无符号的int变量a,同样也 ...

可以试试看,代码尽量短
作者: 明白    时间: 2014-8-27 16:08
循规蹈矩的想法:
        MOV      A,R3
        ADD      A,#1
        MOV      R3, A
        MOV      A,R2
        ADDC     A,#0   
          MOV      R2,A
改进一下:
        MOV      A,R3
        ADD      A,#1
        MOV      R3, A
        JNC      NCY
        INC      R2  
    NCY:   
作者: hujia    时间: 2014-8-28 17:07
明白 发表于 2014-8-27 16:08
循规蹈矩的想法:
        MOV      A,R3
        ADD      A,#1

如果有 地位向高位进位怎么办呢?
作者: 明白    时间: 2014-8-28 17:13
有没有向高位进位,是自动的
ADDC     A,#0    你看是真的加0吗?
如果是真的加0,那就没意思了
作者: admin    时间: 2014-8-28 17:57
明白 发表于 2014-8-28 17:13
有没有向高位进位,是自动的
ADDC     A,#0    你看是真的加0吗?
如果是真的加0,那就没意思了

明白兄弟 说的对   addc 和add是有区别的  
作者: ubaigou    时间: 2014-8-29 00:51
互动很重要
作者: ubaigou    时间: 2014-8-29 00:51
多多互动
作者: 明白    时间: 2014-8-30 23:11
明白 发表于 2014-8-27 16:08
循规蹈矩的想法:
        MOV      A,R3
        ADD      A,#1

(R2R3)减1,也是同样道理:
        MOV      A,R3
        ADD      A,#255
        MOV      R3, A
        JC       $+3
        DEC      R2  
这里用加法代替减法




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1