1. 程式人生 > >《微機原理與介面技術》第一章——微機原理概述

《微機原理與介面技術》第一章——微機原理概述

雖然寫這個部落格主要目的是為了給我自己做一個思路記憶錄,但是如果你恰好點了進來,那麼先對你說一聲歡迎。我並不是什麼大觸,只是一個菜菜的學生,如果您發現了什麼錯誤或者您對於某些地方有更好的意見,非常歡迎您的斧正!

目錄

第1節  基本術語

第2節    微機發展歷史

第3節   微機部件和結構

第4節   微機工作原理

第5節  組合語言【補充】



第1節  基本術語

微機計算機/微機/PC

微控制器

單板機

第2節    微機發展歷史

世界上第一臺計算機——ENIAC

4004:第一款用於計算機的微處理器

8088:1981年首次用於IBM PC機,開創PC機概念

 

IA——Intel Architecture (X86架構)

Inter Architecture 32=I.A.32位

IA-32結構的最重要成就:向後相容性(“馮·諾依曼”結構+I.A.規範)

IA-32結構起源能追溯到Intel 8088/8086

IA-32結構同時包括16位處理器和32位處理器

記憶體儲器:存有資料和程式

部件之間的互動遵循I.A.規範

個人計算機的標準平臺、最成功的CPU架構

其它CPU架構:ARM,MIPS,PowerPC

第3節   微機部件和結構

第4節   微機工作原理

位(bit):一個二進位制位,計算機中資訊儲存的最小單位。

位元組(byte):相鄰的8個二進位制位。(1024位元組:1KB,1024KB=1MB,1024MB=1GB)

字(word):2位元組

字長:一個字包含的二進位制位數。

數字編碼

  • 十進位制編碼(BCD碼)

8421BCD碼:如83.123對應為1000 0011 . 0001 0010 0011

 

字元編碼

ASCII編碼

 

計算機的三匯流排模型

在微機系統中,外部資訊的傳送是通過匯流排進行的。

計算機儲存器模型

①讀操作

②寫操作

計算機的模型——執行過程

 

前提:程式已經放在記憶體中

執行過程:取出指令和執行指令的迴圈,32位機採用多級流水線

 

機器:停機狀態->執行狀態

把第一條指令所在的地址賦給PC

進入取指(取出指令)階段(指令被送到指令暫存器(IR)->譯碼)

第5節  組合語言【補充】

定址方式和指令系統

指令格式及定址的概念

定址方式及其應用

各類指令的表示、功能、特點

 

5.1節 定址方式

 

立即數定址方式

暫存器定址方式

儲存器定址方式

MOV AL, 10

 ;十進位制數(D)

MOV AL, 00100101B 

;二進位制數(B)

MOV AX, 263AH

 ; 十六進位制數(H)

INC SI

MOV AX,BX

MOV AL, [2000H]

;AL ← PA=DSx16+ 2000

MOV AX,[SI]

;AX ← DSx16 + [SI],[SI+1]

MOV BH,[BP]

 ;BH ← SSx16 + [BP]

MOV AX, [BX+10H]

 ;EA=(BX)+10H

MOV AX, [BX+SI]

 ; EA=(BX)+(SI) ; DS段

運算元直接存放在指令中,緊跟在操作碼之後

①指令中直接給出暫存器名,暫存器的內容即為運算元。

②不需要訪問匯流排週期,因此指令執行速度比較快

③16位運算元:AX、BX、CX、DX、SI、DI、SP、BP等。

④8位運算元:AH、AL、BH、BL、CH、CL、DH、DL等。

①指令直接或間接給出有效地址EA,實體地址PA需計算

②計算實體地址分2步,先計算有效地址EA(與定址方式有關),再計算實體地址PA(與存放的段有關)

 

儲存器定址方式又可分為

直接定址方式

暫存器間接定址方式

暫存器相對定址方式

基址變址定址方式

MOV AL,[2000H]

MOV AX,[SI]

;AX ← DSx16 + [SI],[SI+1]

MOV BH,[BP]

;BH ← SSx16 + BP

MOV CX,ES:[BX]

 

MOV AX, [BX+10H]

MOV AX, [BX+SI]

①指令中直接給出有效地址EA:8位或16位位移量

②PA = (段暫存器)X 10H +指令中的EA

③預設方式下:段暫存器是資料段DS

④段跨越:指令增加段暫存器名字首:CS,ES,SS等

 

①運算元的有效地址EA在暫存器中。

②對16位定址,EA只能放在DI、SI、BX、 BP中

p若EA在DI、SI、BX中,預設段為資料段DS

p若EA在BP中,預設段為堆疊段SS

③支援段跨越。

 

①給定基址/變址暫存器和相對偏移量,兩者之和為EA。

②暫存器BX、SI、DI預設是資料段DS

③暫存器BP預設堆疊段SS。

④支援段跨越

①有效地址EA是基址暫存器與變址暫存器的和。

②預設段由基址暫存器決定。

③支援段跨越。

5.2節 指令格式

基本的組合語言程式框架

5.3節 常用指令

資料傳送:MOV的例子

MOV AL,CH

暫存器間傳送位元組資料

MOV DS,AX

暫存器→段暫存器

MOV AX,0FF3BH

立即數→暫存器

MOV AL,BUFFER

記憶體→暫存器

MOV DAT[BP+DI],ES

段暫存器→記憶體

MOV [1000H],25

立即數→記憶體

MOV CX, [1000H]

記憶體→暫存器

使用MOV指令傳送資料注意事項

1)段暫存器CS及立即數不能作為目標運算元;

MOV CS, 1000 ;

2)兩個儲存單元之間不允許直接傳送資料;

MOV [1000], [2000] ;

3)立即數不能直接傳送到段暫存器;

MOV DS,1000;

4)兩個段暫存器之間不能直接傳送資料;(段暫存器有CS、DS、SS、ES)

MOV ES,SS

5)傳送資料的型別必須匹配;

6)MOV指令不影響標誌位

 

堆疊操作指令PUSH/POP 都是對段暫存器SS的處理

進棧指令:PUSH OPR ;SP←SP-2

出棧指令:POP OPR ;SP←SP+2

堆疊以“先進後出”的方式進行資料操作。

堆疊指標暫存器SP始終指向堆疊的棧頂單元

注:

程式中有一個PUSH,必有一個對應的POP。

 

地址傳送指令 LEA

指令格式:LEA reg,src

指令功能:將src有效地址EA傳送到16位暫存器reg中