汇编:JCXZ条件转移指令
生活随笔
收集整理的這篇文章主要介紹了
汇编:JCXZ条件转移指令
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
jcxz = ?j:jmp ?cx:cx寄存器 ?z:zero(當cx寄存器中的值為0時,進行跳轉)
jcxz指令與loop指令正好相反.
loop指令:當cx寄存器的值不等于0時,才進行跳轉.
?
? 所有的條件轉移指令都是短轉移,位移范圍是(-128~127), 經過編譯后,機器碼中包含了位移的范圍。 EBXX, XX就是轉移的字節長度, 這個XX是在編譯器編譯時候計算的。計算公式是: 標號處的編譯地址 - jmp指令后第一個字節的地址。
assume cs:codecode segmentstart: mov ax, 2000Hmov ds,axmov bx,0s: mov ch,0mov cl, ds:[bx]jcxz ok ; cx寄存器的值為0, 才會跳轉inc bxjmp short sok: mov ax, bxmov ax, 4C00Hint 21H code ends end start?
assume cs:codecode segmentstart: mov ax, 2000Hmov ds, axmov bx,0; 利用loop指令,實現在內存 2000H段中查找第一個值; 為0的字節,找到后,將它的偏移地址存儲在dx中 s: mov cl, ds:[bx]mov ch, 0inc cxinc bxloop sdec bx ; 將bx中的值-1mov dx, bxmov ax,4C00Hint 21Hcode ends end start?
總結
以上是生活随笔為你收集整理的汇编:JCXZ条件转移指令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编: dup伪指令
- 下一篇: 汇编:转移目的地址在内存中