《微機原理與介面技術》第一章——微機原理概述
雖然寫這個部落格主要目的是為了給我自己做一個思路記憶錄,但是如果你恰好點了進來,那麼先對你說一聲歡迎。我並不是什麼大觸,只是一個菜菜的學生,如果您發現了什麼錯誤或者您對於某些地方有更好的意見,非常歡迎您的斧正!
目錄
第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中