彙編的跳轉原理

2021-09-29 07:04:29 字數 409 閱讀 5414

在彙編內 跳轉指令無條件 jmp 的原理是一種計算方式跳轉 不是直接進行跳轉 下面舉例

start :mov ax,13h

jmp short s

s: add ax,2

loop start

例如這個**來講 在cpu讀取到jmp指令的機器碼 通過資料匯流排放到指令緩衝器 進行執行之前 cpu的ip暫存器 會自動讀取到下一條指令的位址 然後通過jmp 的機器碼 比如 ebf6 那麼會把f6和ip的位址 補碼進行相加 然後存放到ip暫存器 改變ip暫存器的位址 然後下一條指令執行的時候 cpu會自動讀取到cs:ip 指向的指令 也就實現了所謂的跳轉

jmp near 標籤 這個指令的明確意義是進行16位跳轉 上面那個是8位的偏移 跳轉

mov ax,offset s 把標籤的位址進行存放到ax暫存器

彙編 跳轉指令

助記符 標誌位說明 jz je zf 1 等於零 相等 jnz jne zf 0 不等於零 不相等 jssf 1 符號為負 jnssf 0 符號為正 jp jpe pf 1 低8位 1 的個數為偶 jnp npo pf 0 低8位 1 的個數為奇 joof 1 溢位jno of 0 無溢位jc jb...

彙編跳轉標誌

助記符 標誌位說明 jz je zf 1 等於零 相等 jnz jne zf 0 不等於零 不相等 jssf 1 符號為負 jnssf 0 符號為正 jp jpe pf 1 1 的個數為偶數 jnp jpo pf 0 1 的個數為奇數 joof 1 溢位jno of 0 無溢位jc jb jnae ...

彙編 跳轉指令的簡單總結

跳轉命令 命令含義 遵循標誌 je jz 結果為0則跳轉 比較結果相等時跳轉 zf 1 jne jnz 結果不為0跳轉 比較結果不相等跳轉 zf 0 js結果為負則跳轉 sf 1 jns結果為非負則跳轉 sf 0 jp jpe 結果中的1個數為偶數則跳轉 pf 1 jnp jpo 結果中的1個數為奇...