彙編語言學習分享第2章

CPU的組成

CPU是由運算器(信息處理)、控制器(控制器件工做)、寄存器(信息存儲)等器件組成,他們之間經過總線相連。指針

通用寄存器

通用寄存器時用於存放通常性數據的,以8086 CPU爲例,8086 CPU全部的寄存器都是16位的,8086 CPU中的通用寄存器有AX、BX、CX、DX。爲了兼容上一代CPU中的8位寄存器,這4個寄存器均可以拆成兩個8位的寄存器使用,也就是將16位分紅兩個8位,AX可分爲AH和AL,BX可分爲BH和BL,CX可分爲CH和CL,DX可分爲DH和DL。這裏的H能夠記爲High,高位,L能夠記爲Low,低位。
再來講一下數據寬度,由於寄存器有16位和8位兩種,因此數據寬度能夠分爲字節和字,一個字節由8個bit組成,能夠直接使用低位存儲,一個字由兩個字節,也就是16位,好比一個十六進制3E10,將這個十六進制存放到AX寄存器總,3E就存放在高位AH中,10存放在低位AL中。code

內存單元的物理地址

以前說過數據是經過地址線存放在內存單元中的,那麼就必需要肯定這個內存單元的地址。
基礎地址=段地址x16
基礎地址+偏移地址=物理地址
因此物理地址=段地址x16+偏移地址,這裏的16是十進制的16,也就是十六進制的A。
這裏的段地址能夠理解爲一段一段的內存存儲單元,可是段地址並非固定的,能夠認爲10000H-100FFH是一個段,也能夠將這段地址當作是10000H-1007F和10080H-100FFH組成的段,以10000H-100FFH爲例,它的段地址是1000H,偏移地址爲FF,這樣基礎地址就是1000Hx10H=10000H,這樣就能夠肯定基礎地址。再加上偏移地址,就能夠肯定這段內存。內存

段寄存器

既然能夠經過段地址和偏移地址肯定物理地址,那麼就須要寄存器來存放段地址,8086 CPU中有4個段地址:CS、DS、SS、ES,偏移地址存放在IP寄存器中,這裏以CS寄存器爲例,能夠簡單的理解爲經過CS(代碼段寄存器)、IP(指令指針寄存器)兩個寄存器能夠肯定CPU須要讀取的指令的地址,也就是CPU會將CS:IP指向的內容看成指令執行。it

操做指令

  • mov指令
    mov指令稱爲傳送指令,可使用這個指令爲寄存器賦值,例:mov ax,123 這個語句就相似於C語言中的賦值操做ax=123;基礎

  • jmp指令
    jmp指令叫作轉移指令,能夠用於設置CS、IP中的值(mov指令不能修改CS、IP中的值),例:jmp 2AE3:3,執行這個指令後,CS的值被修改成2AE3H,IP的值被修改成0003H,CPU將從2AE33H處讀取指令。cpu

8086CPU工做過程

(1)從CS:IP指向的內存單元讀取指令,讀取的指令進入指令緩衝器
(2)IP指向下一條指令
(3)執行讀取進指令緩衝器的指令
(4)重複上述三個步驟數據

相關文章
相關標籤/搜索