jcxz指令
jcxz指令為有條件轉移指令,所有的有條件轉移指令都是短轉移(jmp為無條件轉移指令),在對應的機器碼中包含轉移的位移,而不是目的地址。對ip的修改范圍都為-128~127
j=jmp
cx=cx寄存器
z=zero=0
======>含義:在cx寄存器中的值為0時跳轉
與loop指令相反(在cx中值不為零時跳轉)
當cx≠0時什么都不做
注意:所有的有條件有條件轉移都是短轉移,且經過編譯之后,機器碼包含了位移范圍
如:EBXX(XX表示位移范圍)
XX是由編譯器編譯的時候執(zhí)行的
公式:標號處的偏移地址-jmp指令之后的第一個字節(jié)的地址
指令格式:jcxz 標號(如果cx=0,轉移到標號處執(zhí)行)
操作:當cx=0時,IP=IP+8位位移
八位位移=標號處的地址-jcxz指令后的第一個字節(jié)的地址
八位位移的范圍為-128~127,用補碼表示;
八位位移由編譯程序在編譯時算出。
當cx≠0時,什么都不做(程序向下執(zhí)行)
問題:
補全編程,利用jcxz指令,實現在內存2000H段中查找第一個值為0的字節(jié),找到后,將它的偏移地址存貯在dx中。
調試時,修改一下內存單元的數據
總結