微機原理 五 80x86指令格式

2021-09-19 13:51:20 字數 1025 閱讀 5547

8086指令系統採用了一種靈活的, 由1-6個位元組組成的變字長的指令格式, 包括操作碼, 定址方式以及運算元三個部分

通常指令的第一位元組為操作碼位元組(opcode), 規定指令的操作型別. 第二位元組為定址方式位元組(mod), 規定運算元的定址方式; 接著以後的3-6位元組依據指令的不同而取捨

第一位元組為操作碼, 它指出指令所要進行的操作. 其中

第二位元組為定址方式, 它指出所用的兩個運算元存放的位置.其中 :

1> 運算元的種類

指令中操作的物件稱為運算元. 8086指令中運算元的種類分為資料運算元和位址運算元兩種

(1)資料運算元

資料運算元與資料有關的運算元,即指令中操作的物件是資料, 可以分為

(2)位址運算元

位址運算元是與程式轉移位址有關的運算元. 即指令中操作的物件不是資料, 而是要轉移的目標位址, 其也可以分為上面的幾種種類, 分別代表其儲存位置的位址

對於資料運算元,有的指令有兩個運算元, 乙個叫源運算元, 乙個叫目的運算元. 有的只有乙個運算元. 有的沒有運算元, 有的指令有乙個隱含或兩個隱含運算元

對於位址運算元, 指令只有一目的運算元, 它是乙個供程式轉移的目標位址

2>定址方式

所謂定址方式, 就是指令中所給出的尋找運算元(包括資料運算元和位址運算元)的方法

(1)資料定址方式

(2)位址定址方式

在8086指令系統中,有一組指令被用來控制程式的執行順序. 程式的執行順序是由cs和ip的內容所決定的. 通常情況下,biu完成一次取指令週期後, 就自動改變ip的內容以指向下一條指令的位址, 使程式按預先存放在程式儲存器中的指令的次序, 從低位址到高位址順序執行. 如果要改變程式的執行順序, 轉移到所要求的指令位址再順序執行, 可以安排一條程式轉移指令,並按指令的要求修改ip內容或者同時修改ip和cs的內容.

轉移位址可以在段內,也可以跨段.尋求轉移位址的方法稱為位址定址方式

80x86指令系統 資料傳送指令

累加器專用指令 位址傳送指令 標誌暫存器傳送指令 型別轉換指令 普通的傳送指令,src表示源運算元,dst表示目的運算元。雙運算元指令不允許兩個運算元都使用儲存器。如果其中乙個運算元為段暫存器,則另乙個運算元必須為儲存器或者暫存器。段暫存器不能是cs暫存器,另外,對於mov segreg,mem r...

x86指令格式

當計算機處理器晶元執行時,它讀取儲存在記憶體中的指令碼。每個指令碼集合可能包含乙個或多個位元組的資訊,這些資訊指示處理器完成特定的任務。每條指令碼都是從記憶體中讀取的,指令碼所需的資料也是儲存在記憶體中並從記憶體中讀取。包含指令碼的記憶體位元組和包含處理器使用的資料的位元組沒有區別。為了區分資料和指...

80x86彙編常用指令

一 資料傳輸指令 它們在存貯器和暫存器 暫存器和輸入輸出埠之間傳送資料.1.通用資料傳送指令.mov 傳送字或位元組.movsx 先符號擴充套件,再傳送.movzx 先零擴充套件,再傳送.push 把字壓入堆疊.pop 把字彈出堆疊.pusha 把ax,cx,dx,bx,sp,bp,si,di依次壓...