标题:条件跳转语句JGE?
取消只看楼主
soler
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:181
专家分:1077
注 册:2005-7-16
结帖率:100%
 问题点数:0 回复次数:0 
条件跳转语句JGE?
;子程序功能:把寄存器BX的内容按十进制有符号数显示出来
;入口地址:BX
;出口地址:无,只有显示信息
;算法描述:1、定义6个字节的存储单元
            2、先判断BX中的内容是否小于0,是则先显示‘-’,再取BX的绝对值
            3、采用除10,得余数的方法,从低位向高位求出每位十进制位
            4、输出数据的字符串
SUBDATA     SEGMENT
                DB 5 DUP ('0'),0AH,0DH,'$'        ;OAH、0DH:换行、回车
SUBDATA     ENDS
DISPBX      PROC
            ASSUME   DS:SUBDATA
            PUSH     DS
            PUSH     DX
            PUSH     AX
            PUSH     CX
            MOV      AX,SUBDATA
            MOV      DS,AX
            CMP      BX,0
            JGE      NEXT
            MOV      DL,'-'
            MOV      AH,2
            INT      21H
            NEG      BX
NEXT:       MOV      SI,4      
            MOV      AX,BX
            MOV      CX,10D
AGAIN:      XOR      DX,DX
            IDIV     CX
            ADD      DL,'0'
            MOV      [SI],DL
            DEC      SI
            JGE      AGAIN
……

上面一段子程序中:
AGAIN:    XOR      DX,DX
            IDIV     CX
            ADD      DL,'0'
            MOV      [SI],DL
            DEC      SI
            JGE      AGAIN  
此处JGE是通过判断什么标志位来决定是否跳转的?Zero?是不是通过判断SI的值是否为0来实现的?对于JGE条件跳转指令,我看了一下书上是这么写的,跳转条件:Sign xor Ov =0也就是标志位和溢出位同时为0或者1的时候跳转到AGAIN,但是我看了一下上面的这些指令,标志位为0,但是溢出位却不知道是否为0 啊,大家帮帮忙,这个到底是怎么回事?谢谢了。
搜索更多相关主题的帖子: JGE 语句 寄存器 条件 SUBDATA 
2005-08-05 14:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-24424-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.182757 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved