16位汇编第第四讲常用的7种寻址方式
常用的7中尋址方式
昨天稍微講了一下,立即數尋址,今天繼續講解尋址方式.
(注意,這個屬于簡陋版的,寫了4個小時的博客,也就是第一版,保存了一下,但是博客出問題了,重新打開后發現保存的內容沒了,讓我很無語
所以我星期六星期天重新編輯這一張,現在發出這些先簡單的預習一下謝謝)
1.操作碼,操作數,位移量,立即數的概念
8086的尋址方式,這個尋址方式是什么意思,是讓我們書序8086匯編指令的格式,
尤其是其中的操作數的表達方法
操作碼: mov add ....等指令,暫時就先把這些認定為mov即可.后面會一一講解指令
操作數, 例如 mov ax,1234 那么操作數就是 ax,和 1234 其中 1234成為源操作數,ax成為目標操作數
為什么這樣說,因為我們要把源操作數 通過 mov 傳送指令, 傳送給 目標操作數ax
對于操作數而言
1.操作數可以是一個具體的值(也就是 立即數,其中立即數是后面翻譯過來的,叫做(imm縮寫))
2.操作數可以是存放數據的寄存器(上面也說了, ax目的地操作數)
3.操作數可以是存儲器的地址(怎么理解,可以理解為 mov ax,[2000])可以是一個地址
?
常用的7中尋址方式
昨天稍微講了一下,立即數尋址,今天繼續講解尋址方式.
1.操作碼,操作數,位移量,立即數的概念
8086的尋址方式,這個尋址方式是什么意思,是讓我們書序8086匯編指令的格式,
尤其是其中的操作數的表達方法
操作碼: mov add ....等指令,暫時就先把這些認定為mov即可.后面會一一講解指令
操作數, 例如 mov ax,1234 那么操作數就是 ax,和 1234 其中 1234成為源操作數,ax成為目標操作數
為什么這樣說,因為我們要把源操作數 通過 mov 傳送指令, 傳送給 目標操作數ax
對于操作數而言
1.操作數可以是一個具體的值(也就是 立即數,其中立即數是后面翻譯過來的,叫做(imm縮寫))
2.操作數可以是存放數據的寄存器(上面也說了, ax目的地操作數)
3.操作數可以是存儲器的地址(怎么理解,可以理解為 mov ax,[2000])可以是一個地址
?
立即尋址
????? mov ax,2000h
?
格式是:
????? 操作碼? 立即數
????? 操作碼則是mov? 立即數就是后面的數
寄存器尋址方式
mov ax,1234h
mov bx,ax
機器代碼格式
?
操作碼
89 操作碼和操作數
存儲器尋址方式
- 8086設計了多種存儲器尋址方式
1、直接尋址方式
2、寄存器間接尋址方式
3、寄存器相對尋址方式
4、基址變址尋址方式
5、相對基址變址尋址方式
五種尋址方式,加上上面兩種總共其中
?
直接尋址方式
mov ax,[2000h]
反匯編:
?????
機器代碼格式
????? 操作碼 立即數
????? A1???????? 0020
寄存器間接尋址方式
有效地址存放在基址寄存器BX或變址寄存器SI、DI中
默認的段地址在DS段寄存器,可使用段超越前綴改變
MOV AX,[SI] ;AX←DS:[SI]
?
機器碼格式
操作碼 尋址方式,目的寄存器
8B 04
????? 04拆分為二進制為? 0000 0100 00(尋址方式) 000(目的寄存器) 100 (源操作數)
可以對應下方的表格
查找 (mod 尋址方式 )
?
?
由此得出源操作數是SI
寄存器相對尋址
有效地址是寄存器內容與有符號8位或16位位移量之和,寄存器可以是BX、BP或SI、DI
有效地址=BX/BP/SI/DI+8/16位位移量
段地址對應BX/SI/DI寄存器默認是DS,對應BP寄存器默認是SS;可用段超越前綴改變
mov ax,[di +? 06h]兩種不同的形式,如過06是8位的話那么尋址方式是不同的.
?
操作碼? 尋址方式/目標寄存器/源操作數?? ?位移量
8B???????? 45????????????????????? ????????????????????06
45 得出尋址方式目的寄存器,和源操作數
01 000? 101
?
代表了DI 要加一個8位的偏移量即可.
基址變址尋址方式
有效地址由基址寄存器(BX或BP)的內容加上變址寄存器(SI或DI)的內容構成:
有效地址=BX/BP+SI/DI
段地址對應BX基址寄存器默認是DS,對應BP基址寄存器默認是SS;可用段超越前綴改變
mov ax,[bx+si] 基址寄存器(bx bp) 變址寄存器(SI DI)
?
操作碼 尋址指令/目標寄存器,源操作數
8B??????? 00
?
基址變址,相對尋址
mov ax,[bx + si +06h]
?
操作碼 尋址公式/目標寄存器/源操作數? 位偏移
8B?????????? 40??????????????????????????????????? 06
拆分40得出 0100 0000?
?
表示BX + SI 還需要家后面的8位偏移量6
?
轉載于:https://www.cnblogs.com/iBinary/p/7456301.html
總結
以上是生活随笔為你收集整理的16位汇编第第四讲常用的7种寻址方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DB2快速入门的捷径pdf
- 下一篇: asp.net mvc 接入阿里大于