jmp指令的簡單應用

2022-06-17 06:12:14 字數 1202 閱讀 6360

一、8086cpu的轉移指令行為分類

jmp short 標號

(ip)=(ip)+8位位移

8位位移範圍:-128~+127

jmp near ptr 標號

(ip)=(ip)+16位位移

16位位移範圍:-32768~+32767

二、 原碼, 反碼, 補碼的基礎概念和計算方法

在探求為何機器要使用補碼之前, 讓我們先了解原碼, 反碼和補碼的概念.對於乙個數, 計算機要使用一定的編碼方式進行儲存. 原碼, 反碼, 補碼是機器儲存乙個具體數字的編碼方式.

1. 原碼

原碼就是符號位加上真值的絕對值, 即用第一位表示符號, 其餘位表示值. 比如如果是8位二進位制:

[+1]原 = 0000 0001

[-1]原 = 1000 0001

第一位是符號位. 因為第一位是符號位, 所以8位二進位制數的取值範圍就是:

[1111 1111 , 0111 1111]

[-127 , 127]

原碼是人腦最容易理解和計算的表示方式.

2. 反碼

反碼的表示方法是:

正數的反碼是其本身

負數的反碼是在其原碼的基礎上, 符號位不變,其餘各個位取反.

[+1] = [00000001]原 = [00000001]反

[-1] = [10000001]原 = [11111110]反

可見如果乙個反碼表示的是負數, 人腦無法直觀的看出來它的數值. 通常要將其轉換成原碼再計算.

3. 補碼

補碼的表示方法是:

正數的補碼就是其本身

負數的補碼是在其原碼的基礎上, 符號位不變, 其餘各位取反, 最後+1. (即在反碼的基礎上+1)

[+1] = [00000001]原 = [00000001]反 = [00000001]補

[-1] = [10000001]原 = [11111110]反 = [11111111]補

對於負數, 補碼表示方式也是人腦無法直**出其數值的. 通常也需要轉換成原碼在計算其數值.

摘自:講的很詳細

8086 彙編 jmp 指令

功能 修改cs ip的指令 可以通過改變cs ip中的內容,來控制cpu要執行的目標指令。背景 一般情況下指令是順序地逐條執行的,而在實際中,常需要改變程式的執行流程。轉移指令,短轉移 jmp short 標號 功能 ip ip 8位位移 原理 1 8位位移 標號 處的位址 jmp指令後的第乙個位元...

JMP指令轉換公式推導

看完鬱金香第020課總結 同樣的一句指令 jmp 88881234在不同位置有以下現象 找規律 88881234 010073bb 87879e79 88881234 010073c0 87879e74 88881234 010073c5 87879e6f 因為機器碼 如e9 749e8787 是按...

彙編轉移指令jmp原理

在計算機中儲存的都是二進位制數,計算機將記憶體中的某些數當做 某些數當做資料。在根本上,將cs,ip暫存器所指向的記憶體當做 指令轉移就是修改cs,ip暫存器的指向,彙編中提供了一種修改它們的指令 jmp。jmp指令可以修改ip或cs和ip的值來實現指令轉移,指令格式為 jmp 標號 將指令轉移到標...