条件跳转语句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 啊,大家帮帮忙,这个到底是怎么回事?谢谢了。