打印

汇编中 相等转移如何实现呢

[复制链接]
4063|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wyhkerry|  楼主 | 2008-8-1 14:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位高手,汇编中,相等转移怎么实现啊?比如 当寄存器A的值为#03h时候,转移到changdec 有么好的指令吗  谢谢 
我是这样实现的

  MOV R1,#0ffH
       MOV R2,#0ffH
       MOV R3,#10
GAINWAITAX:
    MOVX A,@DPTR            
     ANL A,#03H
     CLR C
     SUBB A,#03H
     JNC  GAININTERX
         jb gainbit,gainwaita0X
        DJNZ R1,GAINWAITAX
        MOV R1,#255
        DJNZ R2,GAINWAITAX
        mov r2,#0ffh
        djnz r3,gainwaitaX
        setb gainbit
        CLR EX0
gainwaita0X:         
    clr gainbit
        LJMP LOOP    






可以吗 

相关帖子

沙发
xwj| | 2008-8-1 14:18 | 只看该作者

用XRL,再JZ

使用特权

评论回复
板凳
wyhkerry|  楼主 | 2008-8-1 14:46 | 只看该作者

我用subb 可以吗?

我用subb 可以吗?

使用特权

评论回复
地板
救火车| | 2008-8-1 15:07 | 只看该作者

多年不用汇编了,好像是这么写的。

CJNE A,R1,loop
JMP deng
loop:
;不等的程序
deng:
;相等的程序

使用特权

评论回复
5
spqgey| | 2008-8-1 15:28 | 只看该作者

lz正确

subb 完全可以

使用特权

评论回复
6
cgkdxx| | 2008-8-1 15:49 | 只看该作者

cjne a, #xxh, adr1;

a=xxh 跳到adr1执行

使用特权

评论回复
7
xwj| | 2008-8-1 15:55 | 只看该作者

LS错,是不等于才会 跳到adr1执行

51的指令很灵活周到的,能实现的方法太多了,

光是CJNE加上JC就可以区别出大于、小于、等于等各种情况

相等的处理语句放在CJNE的下一行即可

使用特权

评论回复
8
ayb_ice| | 2008-8-1 15:56 | 只看该作者

XRL,CJNE...

使用特权

评论回复
9
HWM| | 2008-8-1 16:01 | 只看该作者

咳,都忘本了。CJNE+JC处理>,=,<都是八十年代玩的东西了。

使用特权

评论回复
10
5880527| | 2008-8-1 17:29 | 只看该作者

SUBB过后用JZ就可以了

使用特权

评论回复
11
lyjian| | 2008-8-1 18:12 | 只看该作者

用CJNE指令最好,其他逻辑或减指令会破坏A内容,还麻烦

        cjne A,#03h,not_equ
        jmp  changdec(或者不用跳,直接把changdec处程序放在这里就行了)
not_equ:

changdec:

xrl和subb会破坏A的内容,操作之前还得现保存A的内容,操作完后又得恢复。
用subb前还得清C标志,麻烦。


使用特权

评论回复
12
5880527| | 2008-8-1 18:40 | 只看该作者

LS说的比较有道理

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

92

帖子

1

粉丝