匯編總結二
一、相關基礎知識總覽
1.CPU概述
一個典型的CPU由運算器、控制器、寄存器等器件組成。
內部總線實現CPU內部各個器件之間的聯系。
外部總線實現CPU和主板上其它器件的聯系。
2.相關術語
(1) x位CPU
(2) ISA (Instruction-set Architecture)
(3) x86
二、通用寄存器
8086CPU中,寄存器AX, BX, CX, DX通常用於存放一般性數據,稱為通用寄存器。每個寄存器均為16位。
AX分為AH和AL
BX分為BH和BL
CX分為CH和CL
DX分為DH和DL
三、字在寄存器中的存放
字節 內存劃分的基本單位
字 兩個字節
雙字 四個字節
四字 八個字節
一個字由兩個字節組成,可以存在一個16位寄存器中。字的高8位 → 存放於通用寄存器的高8位寄存器
字的低8位 → 存放於通用寄存器的低8位寄存器。
四、匯編指令: mov, add
1.引例
2.指令使用註意事項
五、8086給出物理地址的方法
1.內存單元的物理地址
CPU訪問內存單元時要給出內存單元的地址。
所有的內存單元構成的存儲空間是一個一維的線性空間。每一個內存單元在這個空間中都有唯一的地址,這個唯一的地址稱為物理地址。
2.相關說明
(1) 8086中,通過段地址: 偏移地址來間接描述內存單元的物理地址。CPU根據如下公式計算得到物理地址:
其中:
① 「段地址: 偏移地址」 也稱「邏輯地址」
② 「段地址 × 16 」 構成段的起始物理地址,故根據需要劃分段使用時,段的起始物理地址必須是16的倍數。
(2) 段的劃分是靈活的,一個物理地址可以用不同的「段地址: 偏移地址」表示。只要滿足段的起始物理地址是16的倍數。
(3) 在寫法上,地址通常用十六進制表示。表示十六進制的H在「段地址: 偏移地址」中可省略不寫。
六、CS和IP
1.CS和IP是什麽?做什麽用?
CS: 代碼段段寄存器,用於存放代碼段的「段地址」
IP: 指令指針寄存器,用於存放CPU將要讀取的指令在代碼段中的偏移地址。
CS:IP對應的物理地址存放的是CPU將要讀取的指令。
2.相關註意事項
(1) CPU從何處執行指令是由CS和IP中的內容決定的。
(2) 程序員可以通過改變CS、IP中的內容來控制CPU執行目標指令。
(3) IP和CS值的修改不能通過mov指令實現,需借助轉移指令 (如jmp, call等)。
3.修改CS和IP的指令jmp
(1) 同時修改CS、IP的內容:
用指令中給出的段地址修改CS,偏移地址修改IP。
(2) 只修改IP的內容:
用指令中寄存器的值修改IP。
匯編總結二