控制转移指令

控制转移指令

1.jmp

段内转移 
            
			short     8bit     
			                     -128~+127
			near     16bit
								-2^15~+2^15 -1
段间转移

			远转移    32bit 
			
寻址方式
			
			段内相对寻址  	 jmp   label     修改ip
			段内间接寻址     jmp   r16/m16    更换ip
			
			段间直接寻址    	jmp  far ptr label
		    段间间接寻址       jmp  far ptr men
												ip<-men   cs<-men+2

2. jcc

	无符号数  bellow   above   equal
	                  jb
                      ja
					  jae
					  jnae
					  
	有符号数  less    greater   
;若x>50,转到exit结束;  否则计算x-y   溢出转到overflow   否则|x-y|->result
    cmp x,50
    jg  exit
    mov ax,x
    sub ax,y
    jo  overflow
    cmp ax,0
    jnl next
    neg ax
next:	mov result,ax
    jmp exit
overflow:
    
exit:


3. loop

;求首地址为array的m个字之和,结果存入total
        mov ax,0
        lea bx,array
        mov cx,m
sum:    add ax,[bx]
        inc bx
        inc bx
        loop sum
        mov total,ax
;记录字符串string中空格的个数	
        mov cx,count
        lea bx,string
        mov al,0
        mov dx,0
again:  mov al,[bx]
        cmp al,20h
        jnz  not20h
        inc dx
not20h: inc bx
        loop again

4.子程序

;用子程序实现AL低四位的16进制转化为ascall
        mov al,0fh
        call htoasc
htoasc proc
       or  al,30h
       cmp al,39h
       jbe  over
       add al,7
over:	   
       ret
htoasc endp
原文地址:https://www.cnblogs.com/Howbin/p/9952579.html