1. 程式人生 > >8086中的jmp相關指令

8086中的jmp相關指令

能修改CS以及IP的指令都是轉移指令。它分為段內轉移,段間轉移。

段內轉移:只修改IP的值

段間轉移:同時修改CS以及IP的值

段內轉移根據轉移的距離遠近分為:短轉移,近轉移

短轉移:轉移範圍為-128 – 127

近轉移:轉移範圍為-32768 –32767

根據轉移情況又分為:

無條件轉移指令

條件轉移指令

迴圈指令

過程

中斷

<1> jmp short xxx(行號)

這個是短轉移指令,實現段內的轉移,在翻譯成機器碼的時候,碼內並沒有目標地址,有的只是轉移位移,這樣做的好處就是防止目標地址過大的時候超出轉移的範圍。所以

jmp short xxx 本質上是 令 (IP)= (IP)+ 8bit( 轉移位移)

<2>jmp near ptr xxx(行號)

Jmp near xxx本質上是令(IP)= (IP)+16bit(轉移位移)

<3>jmp far ptr xxx(行號)

同時修改CS以及IP,能在機器碼中找到目標地址

<4>jmp reg

(IP) = (reg),修改IP的地址

<5>jmp word ptr 記憶體單元地址(段內轉移)

含義:記憶體單元存放一個字也就是兩個位元組,用來表示一個目標地址

如:

Jmp word ptr ds:[0]

Jmp word ptr [bx]

<6>jmp dword ptr 記憶體單元地址(段間轉移)

含義:記憶體單元處存放兩個字也就是4個位元組,用來表示一個目標地址

Jmp dword ptr ds:[0]

Jmp dword ptr [bx]

<7> jcxz  xxx(行號)

這個顧名思義很簡單,就是當cx = 0的時候,jump,所以就是 jcxz。

這個實現的是段內的短轉移,當cx =0的時候,(IP)= (IP)+ 8bit偏移地址

<8>loop xxx(行號)

它是迴圈指令,也是短轉移指令。每次執行的過程如下:

(cx) = (cx) -1; if cx ==0,(IP) = (IP) +8bit(位移)

如果cx=0的話,程式什麼都不做,直接往下執行

相關推薦

8086jmp相關指令

能修改CS以及IP的指令都是轉移指令。它分為段內轉移,段間轉移。 段內轉移:只修改IP的值 段間轉移:同時修改CS以及IP的值 段內轉移根據轉移的距離遠近分為:短轉移,近轉移 短轉移:轉移範圍為-128 – 127 近轉移:轉移範圍為-32768 –32767 根據轉移

RedisKey相關的常用指令詳解

redis key vaule Redis是一個開源的使用ANSI C 語言編寫、支持網絡、同memcache相比在Redis下可以實現基於內存亦可持久化的日誌型、Key-Value 類型的NoSQL數據庫,且在Redis中Key的類型也更為豐富。所以較為廣泛的在生產環境中使用,在這裏就說一

關於JVM方法呼叫的相關指令,以及解析(Resolution)和分派(Dispatch)的解釋——過載的實現原理與重寫的實現原理

我們看一下main方法的位元組碼,可知say1方法是static方法,所有它的方法呼叫指令為invokestatic,再者他是一個靜態解析過程,我們可以從位元組碼清除地看出來 StaticResolution.say1 ()字樣。 say2()是一個final方法,不可以過載,重寫,雖然是一個invokev

ES查詢相關

api ast str article bsp htm category blog http elasticsearch中的API:http://www.cnblogs.com/yjf512/p/4862992.html elasticsearch查詢系列:http

JSP的編譯指令和動作指令的差別

font class 編譯 執行 gb2 ron 消息 腳本 con JSP中的編譯指令和動作指令的差別 1、編譯指令是通知Servlet引擎的處理消息。而動作指令僅僅是執行時的腳本動作 2、編譯指令是在將JSP編譯成Servlet時起作用,而動作指令可替換成J

【踩坑】angularJS 1.X版本 ng-bind 指令多空格展示

ext 數據庫查詢 sci 接收 可能 color 最終 數據 目的 做項目的時候遇到的問題 1、問題描述   用戶在表單某個值輸入多個空格,例如:A B,保存至服務器   在列表查詢頁面中使用bg-bind的指令單向綁定,結果展示位A B,連續的空格被替換

iOS逆向工程之Hopper的ARM指令

工程一、Hopper中的ARM指令ARM處理器就不多說了,ARM處理器因為低功耗等原因,所以大部分移動設備上用的基本上都是ARM架構的處理器。當然作為移動設備的Android手機,iPhone也是用的ARM架構的處理器。如果你想對iOS系統以及你的應用進一步的了解,那麽對ARM指令集的了解是必不可少的,ARM

CSS相關概念

height strong 位置 段落 data 替換 weight 概念 microsoft CSS的幾個概念: 包括塊:一個元素的“布局上下文”。對於正常的HTML文本流中的一個元素,包括塊由近期的塊級祖先框、表單元格或行內塊祖先框的內容邊界(content ed

linux查看文件相關指令

battery localhost 多行 文章 activity printing 移動 輸出顯示 整理 以下內容整理自以下兩篇文章: http://www.cnblogs.com/xilifeng/archive/2012/10/13/2722596.html L

MFC ocx IE應用相關問題

如果 選項卡 原因 -h spa 問題 tom 刷新 cls 一、IE中調用控件時碰到過的問題 1、控件發消息讓IE退出 ::PostMessage(m_hwnd, WM_DESTROY, 0, 0);      //m_hwnd為ie的窗口句柄 ::PostMes

Think PHPURL_MODE相關事項

有關 錯誤 模塊 override path 讀取 服務器 生效 正常的 官網上有關於URL_MODE的解釋:http://document.thinkphp.cn/manual_3_2.html#url 這裏主要講一下URL_MODE為2,即REWRITE模式。 REW

Android入門之文件系統操作(二)文件操作相關指令

-h tools strong abc his art 為什麽 重命名 path (一)獲取總根 [java] view plain copy File[] fileList=File.listRoots(); //返回fileList.length為1 /

linuxweblogic相關命令操作

異常 重復 ins gic host 可能 子shell 並且 admins 在weblogic的目錄下找到bin目錄,其中有startWeblogic.sh、startManagerWeblogic.sh等 首先需要啟動startWeblogic.sh,這個是管理服務,也

ARM匯編程序的偽指令

get 指向 只需要 小寫 blog 參考 循環 共享 配置 轉自http://blog.chinaunix.net/uid-13701930-id-336459.html 4.1 ARM匯編器所支持的偽指令 在ARM匯編語言程序裏,有一些特殊指令助記符,這些助記符與指

8086具有特殊功能的寄存器

特殊功能 移位 title tle 計數器 查表 寄存器 pac enter 寄存器名 特殊用途 隱含性質 AX,AL 在I/O指令中作數據寄存器 在乘法指令中存放被乘數或乘積,在除法指令中存放被除數或商 不能隱含 隱含 AH

shiroCacheManager相關的類結構介紹,提供redis Cache實現

cache lob constrain manage alt session isempty debug arr cacheManager主要用於對shiro中的session、realm中的認證信息、授權信息進行緩存。 1.類結構 2.接口及類介紹 C

Nginx常用的指令配置詳解

Nginx中的rewrite指令的應用rewrite指令的作用:是做一些訪問匹配規則的判斷,從而實現相應的操作。location / {proxy_pass http://192.168.1.5if (-d $request_filename) {...........; 這裏的意思是訪問的如果是一個目錄

OO課程IDEA相關插件的使用

流程圖 source 由於 相關 AI 我們 plugins 分享 校園網 寫在前面 ??由於OO課程博客作業的需要分析代碼的復雜度並繪制UML圖,但是課件上推薦的分析工具(http://metrics.sourceforge.net )經過自己幾個小時的折騰還是沒有安裝成

工作常用Git指令操作

line 文件路徑 res 系列 wid AR 探討 diff 輕量 常用Git指令總結   前陣子有幾天好不順,可謂是喝水都嗆著,更何況被Git給嗆著了,還不輕,哈哈。所以打算總結一下自己在工作使用到Git相關的東西以及和大家探討使用GIt的心得體會。於是,關於Git的

python開發編碼相關問題

bsp 存儲 統一 pytho 文字 CI 計算 python nio Python2的解釋器默認以 ascii碼的編碼方式進行編碼,由於ASCII碼只占一個字節126個包含英文和特殊字符,不能正常解碼,所有要在文件開頭聲明編碼方法‘# codeing:utf-8’ pyt