130 likes | 197 Views
第一章 微電腦系統介紹. 電腦內部硬體電路是由半導體電路所設計完成,這些半導體電路被設計成 二進制系統 0 與 1 ,來表示電子信號的低電位與高電位,稱之為數位電路。電腦 使用二進系統 0 與 1 ,來處理大量的資料,我們可以將二進資料編成指令碼來控 制電腦的運作,這些指令碼稱之為機械碼。但是對程式設計者而言,面對一群 無意義的機械碼,除了程式設計上的困難之外,日後的修改與維護,也是一大 障礙。如果我們將每一個指令碼都指定一個名稱 (name) ,在程式設計上將大大 地獲得改善。這些指令碼的名稱,稱之為助憶符號 (mnemonic) 。
E N D
第一章 微電腦系統介紹 電腦內部硬體電路是由半導體電路所設計完成,這些半導體電路被設計成 二進制系統0與1,來表示電子信號的低電位與高電位,稱之為數位電路。電腦 使用二進系統0與1,來處理大量的資料,我們可以將二進資料編成指令碼來控 制電腦的運作,這些指令碼稱之為機械碼。但是對程式設計者而言,面對一群 無意義的機械碼,除了程式設計上的困難之外,日後的修改與維護,也是一大 障礙。如果我們將每一個指令碼都指定一個名稱(name),在程式設計上將大大 地獲得改善。這些指令碼的名稱,稱之為助憶符號(mnemonic)。 每一個微處理機所提供的指令集(instruction set),都有一套自己的助憶符號 ,而使用這些指令所撰寫而成的程式,稱之為組合語言。因此在學習組合語言 之前,有必要先了解數字系統之十進制、二進制、八進制與十六進制的意義與 其之間的轉換。
第一章 微電腦系統介紹 1-1 十進制系統 十進制(Decimal)系統使用0到9十個阿拉伯數字來表示其數值。 1-2 二進制系統 二進制(Binary)系統使用0與1兩個數字來表示其數值。 1-3 八進制系統 八進制系統使用0到7共八個阿拉伯數字來表示其數值。 1-4 十六進制系統 十六進制系統使用0~9及A~F共16個數來表示其數值。
表1-1 進制比較表 第一章 微電腦系統介紹
表1-5 資料表示法 表1-6 段、頁、節之位元組數目 第一章 微電腦系統介紹 1-7 資料表示法 電腦最基本的資料單位為位元(bit),而電腦每次所存取資料的最小單位為 位元組(byte),利用不同數目位元所組合出來的資料單位及其大小,如表1-5所 示。此外,組合語言在處理資料時,將16個位元組稱為一段(paragraph;簡稱para) ,16個段(para)稱為一頁(page),256頁稱為一個節區(segment),詳如表1-6所示。
表1-7 位元組(byte)、字元組(word)資料表示範圍 第一章 微電腦系統介紹 1-8 組合語言數制表示法 組合語言的數值進制表示,是使用進制英文名稱的第一個英文字,加於數值 之後,來表示其進制單位。其中十進制(Decimal)使用『D』,亦可省略,二進制 (Binary)使用『B』,八進制(Octal)使用『O』,十六進制(Hexadecimal)使用『H』。 1-9 負數(補數)表示法 目前電腦使用「2補數表示法」來表示負數,其方法是將二進數值的每一個 位元先取「1補數」,即0變成1,1變成0,待所有位元皆取完1補數之後,最後 結果再加上1,即為負數之2補數表示法。
圖2-1 微電腦系統 第二章 中央處理器內部硬體結構介紹 微電腦系統,係由中央處理單元(Central Processing Unit;CPU)、記憶體(Memory) 與輸入/輸出(Input/Output;I/O)單元,三大部份所組成。其中CPU可分成兩部分, 即算術邏輯運算單元(Arithmatic and Logic Unit;ALU)及控制單元(Control Unit;CU)。 CPU負責指令碼的提取、解碼與執行算術或邏輯的運算,並且將運算結果儲存至 記憶體中,或是經由I/O輸出至外界週邊設備。記憶體單元提供存放程式與資料的 空間,而I/O則提供CPU與外界週邊設備或元件溝通的管道。 記憶體單元 輸入單元 算術邏輯單元 輸出單元 控制單元 資料匯流排 控制匯流排
第二章 中央處理器內部硬體結構介紹 2-1 中央處理器(CPU) 為了提高CPU的執行速度與效率,在CPU內部也有記憶體存在,稱之為暫存器 (Register),在8086/8088 CPU內部有14個16位元暫存器,共分為5組。 n一般用途暫存器:AX、BX、CX、DX n指標暫存器:SP、BP、IP n索引暫存器:SI、DI n區段暫存器:CS、DS、SS、ES n 旗標暫存器:FLAG
圖2-2 一般用途暫存器AX、BX、CX、DX 第二章 中央處理器內部硬體結構介紹 2-1-1 一般用途暫存器:AX、BX、CX、DX 一般用途暫存器除了可以當成16位元暫存器使用之外,也可以分成兩個8位元 暫存器來使用,即AX(AH、AL),BX(BH、BL),CX(CH、CL),DX (DH、DL)。其中H代表暫存器之高(High)位元組,L代表暫存器之低(Low)位元 組,如圖2-2所示。
第二章 中央處理器內部硬體結構介紹 2-1-2 指標暫存器:SP、BP、IP SP暫存器又稱為堆疊指標(Stack Pointer),堆疊(Stack)是一種資料的管理方法,而堆疊區也是記憶體的一部份。程式使用PUSH指令將資料存入堆疊區中,使用POP指令自堆疊區中取出資料,為一種先入後出(First In Last Out;FILO)的資料結構,另外一種資料管理的方法是佇列(Queue),為一種先入先出(First In First Out;FIFO)的資料結構。 BP暫存器又稱為基底指標(Base Pointer),BP暫存器與SP暫存器一樣,都可以作為堆疊的指標,所不同的是SP暫存器永遠指向堆疊區的頂端,只能存取堆疊區頂端的資料,而BP暫存器可以存取在堆疊區中的所有資料,我們可以利用堆疊區來傳送引數,再使用BP暫存器來存取。 IP暫存器又稱為指令指標(Instruction Pointer)暫存器,IP的內容控制程式執行的流程 ,CPU會依據IP的內容至記憶體相對位址上,提取指令碼執行。當CPU執行完一行指令時,IP即指向下一行即將被執行的指令,程式不可以直接使用MOV指令改變IP的內容,但程式流程控制指令,如JMP、CALL等,會改變IP的內容。
圖2-4 旗標暫存器FLAG 第二章 中央處理器內部硬體結構介紹 2-1-3 索引暫存器:SI、DI 索引(Index)暫存器常用於字串指令運算,其中SI是作為來源(Source)字串指標,而DI是作為目的(Destination)字串指標,索引暫存器也可用於索引定址法時之索引以存取記憶體內容。 2-1-4 區段暫存器:CS、DS、SS、ES 8088/8086有四個區段暫存器,分別為程式區段(Code Segment;CS)暫存器、資料區段(Data Segment;DS)暫存器、堆疊區段(Stack Segment;SS)暫存器,以及額外區段(Extra Segment;ES)暫存器。 2-1-5 旗標暫存器:FLAG 8088/8086的旗標為一16位元暫存器,如圖2-4所示。
圖2-5(a) 80386/486一般暫存器 圖2-5(b) 80386/486旗標暫存器 第二章 中央處理器內部硬體結構介紹 2-1-6 80386/80486暫存器
圖2-5(c) 80386/486指標、索引暫存器 圖2-5(d) 80386/486區段暫存器 第二章 中央處理器內部硬體結構介紹
圖2-6 記憶體結構 第二章 中央處理器內部硬體結構介紹 2-2 記憶體(Memory) 對電腦而言,記憶體(Memory)是由大量而連續排列的位元組(byte)所組成,而且 每一個位元組都有一個編號,稱之為位址(address),我們可以依據這些位址來存 取記憶體的內容。在實際定址模式下,80X86 CPU可以管理1M(1Mega=220)位元 組的記憶體空間,如果以十六進制表示其位址,即為00000H~FFFFFH, 如圖2-6所示。