• 沒有找到結果。

基本程式設計觀念

N/A
N/A
Protected

Academic year: 2022

Share "基本程式設計觀念"

Copied!
10
0
0

加載中.... (立即查看全文)

全文

(1)

林銘波編著 --- 全華科技圖書公司 2.1

基本程式設計觀念

自然語言(中文、英文、...)

高階語言(C、C++、Java)

組合語言(8051或是80x86)

機器語言(8051或是80x86) 機器 人

微算機基本原理與應用 第2章 微算機基本工作原理

計算機的階層式結構

硬體

組合語言

高階語言

應用程式(或語言)

(2)

林銘波編著 --- 全華科技圖書公司 2.3

儲存程式計算機

位址

資料輸出 資料輸入

1 0

2

n-2 n-1 n 67

27 15

09 56 27 位址

寫入 讀取 記憶器

資料 指令 CPU

中央處理器

位址匯流排

資料匯流排 讀取/寫入控制

圖2.1-3 計算機的邏輯結構 圖2.1-4 記憶器的邏輯結構

微算機基本原理與應用 第2章 微算機基本工作原理

CPU的動作

CPU 的動作 CPU 模 模組 模 模 組 組 組

PC ← 0 ; 重複執行下列動作

自記憶器位址為 PC 的位置中摘取指令;

執行該指令;

PC ← PC + 1

END CPU 模 模 模 模組 組 組 組

(3)

林銘波編著 --- 全華科技圖書公司 2.5

CPU基本結構與動作

CPU 的動作 CPU 模 模 模 模組 組 組 組

PC ← 0 ; 重複執行下列動作

自記憶器位址為 PC 的位置中摘取指令;

執行指令解碼;

若該指令執行時需要資料,則自記憶器中讀取運算元;

執行指令的動作;

若該指令需要儲存結果,則存回結果於記憶器中;

PC ← PC + 1 END CPU 模 模 模 模組 組 組 組

微算機基本原理與應用 第2章 微算機基本工作原理

一個簡化的MCS-51 CPU RTL模型

資料暫存器 (R0 ~ R7)

累積器 (ACC) 算數邏輯單元

(ALU)

指令暫存器 (IR)

指令解碼器 (ID) 時序控制邏輯單元

(TCL)

程式計數器 (PC)

(MBR) 8051 CPU

內部16位元位址匯流排

內部8位元 資料匯流排

接往CPU 其它電路

記憶器 程式 資料

R / W

資料匯流排 位址匯流排

資料指示暫 +1 存器(DPTR)

(MAR) 內部資料記

憶器與SFR

(4)

林銘波編著 --- 全華科技圖書公司 2.7

指令讀取的第一個步驟

資料暫存器 (R0 ~ R7)

累積器 (ACC) 算數邏輯單元

(ALU)

指令暫存器 (IR)

指令解碼器 (ID) 時序控制邏輯單元

(TCL)

程式計數器 (PC) 8051 CPU

內部16位元位址匯流排

內部8位元 資料匯流排

接往CPU 其它電路

記憶器 程式 資料

R / W

資料匯流排 位址匯流排

控制匯流排 T1

資料指示暫 +1 存器(DPTR)

(MAR) (MBR) 內部資料記

憶器與SFR

微算機基本原理與應用 第2章 微算機基本工作原理

指令讀取的第二個步驟

資料暫存器 (R0 ~ R7)

累積器 (ACC) 算數邏輯單元

(ALU)

指令暫存器 (IR) 程式計數器

(PC) 8051 CPU

內部16位元位址匯流排

內部8位元 資料匯流排

接往CPU

記憶器 程式 資料

R / W

資料匯流排 位址匯流排

T2

資料指示暫 +1 存器(DPTR)

(MAR) (MBR) 內部資料記

憶器與SFR

(5)

林銘波編著 --- 全華科技圖書公司 2.9

指令讀取的第三個步驟

資料暫存器 (R0 ~ R7)

累積器 (ACC) 算數邏輯單元

(ALU)

指令暫存器 (IR)

指令解碼器 (ID) 時序控制邏輯單元

(TCL)

程式計數器 (PC) 8051 CPU

內部16位元位址匯流排

內部8位元 資料匯流排

接往CPU 其它電路

記憶器 程式 資料

R / W

資料匯流排 位址匯流排

控制匯流排 T3

+1

T3 資料指示暫

存器(DPTR)

(MAR) (MBR) 內部資料記

憶器與SFR

微算機基本原理與應用 第2章 微算機基本工作原理

指令讀取的第四個步驟

資料暫存器 (R0 ~ R7)

累積器 (ACC) 算數邏輯單元

(ALU)

指令暫存器 (IR)

指令解碼器 (ID) 時序控制邏輯單元

(TCL)

程式計數器 (PC) 8051 CPU

內部16位元位址匯流排

內部8位元 資料匯流排

接往CPU 其它電路

記憶器 程式 資料

R / W

資料匯流排 位址匯流排

T4 資料指示暫 +1

存器(DPTR)

T4

(MAR) (MBR) 內部資料記

憶器與SFR

(6)

林銘波編著 --- 全華科技圖書公司 2.11

指令的讀取與執行動作時序圖

MAR PC

PC PC + 1 T1

T2

MBR Mem[MAR] T3

IR MBR T4

MAR DPTR

MBR Mem[MAR]

ACC MBR MOVX A,@DPTR

T5

T6

T7 MOVX @DPTR,A ADD A,R0

ACC ACC + R0 其它指令

Mem[MAR] MBR MAR DPTR

MBR ACC

微算機基本原理與應用 第2章 微算機基本工作原理

指令MOVX A,@DPTR執行的第一個步驟

資料暫存器 (R0 ~ R7)

累積器 (ACC) 算數邏輯單元

(ALU)

指令暫存器 (IR)

指令解碼器 時序控制邏輯單元

資料指示暫 存器(DPTR)

程式計數器 (PC) 8051 CPU

內部16位元位址匯流排

內部8位元 資料匯流排

接往CPU

記憶器 程式 資料

R / W

資料匯流排 位址匯流排

T5

+1

(MAR) (MBR) 內部資料記

憶器與SFR

(7)

林銘波編著 --- 全華科技圖書公司 2.13

指令MOVX A,@DPTR執行的最後一個步驟

資料暫存器 (R0 ~ R7)

累積器 (ACC) 算數邏輯單元

(ALU)

指令暫存器 (IR)

指令解碼器 (ID) 時序控制邏輯單元

(TCL) 資料指示暫 存器(DPTR)

程式計數器 (PC) 8051 CPU

內部16位元位址匯流排

內部8位元 資料匯流排

接往CPU 其它電路

記憶器 程式 資料

R / W

資料匯流排 位址匯流排

控制匯流排 T7

+1

(MAR) (MBR) 內部資料記

憶器與SFR

微算機基本原理與應用 第2章 微算機基本工作原理

資料轉移指令

指令 RTL 描述 說明

MOV A,Rn ACC ← Rn 轉移暫存器 Rn 的內容到累積器 ACC

MOV A,#data ACC ← data 轉移 8 位元的立即資料到累積器 ACC

MOV Rn,A Rn ← A 轉移累積器 ACC 的內容到暫存器 Rn

MOV Rn,#data Rn ← data 轉移 8 位元的立即資料到暫存器 Rn MOV DPTR,#data16 DPTR ← data16 轉移 16 位元的立即資料到 DPTR 中 MOVX A,@DPTR ACC ← Mem[DPTR] 讀取記憶器中由 DPTR 指定的位置內容

後,儲存於累積器 ACC 中

(8)

林銘波編著 --- 全華科技圖書公司 2.15

算術運算指令

指令 RTL 描述 說明

ADD A,Rn ACC ← ACC + Rn 累積器 ACC 與 Rn 相加後,存回 ACC ADD A,#data ACC ← ACC + data 累積器 ACC 與 data 相加後,存回 ACC ADDC A,Rn ACC ← ACC + Rn+C 累積器 ACC 與 Rn 及進位相加後,存回 ACC ADDC A,#data ACC ← ACC + data+C 累積器 ACC 與 data 及進位相加後,存回 ACC SUBB A,Rn ACC ← ACC - Rn - C 累積器 ACC 減去 Rn 與 C 後,存回 ACC SUBB A,#data ACC ← ACC - data - C 累積器 ACC 減去 data 與 C 後,存回 ACC

微算機基本原理與應用 第2章 微算機基本工作原理

邏輯運算指令

指令 RTL 描述 說明

ANL A,Rn ACC ← ACC ∧ Rn 累積器 ACC 與 Rn AND 後,存回 ACC ANL A,#data ACC ← ACC ∧ data 累積器 ACC 與 data AND 後,存回 ACC ORL A,Rn ACC ← ACC ∨ Rn 累積器 ACC 與 Rn OR 後,存回 ACC ORL A,#data ACC ← ACC ∨ data 累積器 ACC 與 data OR 後,存回 ACC XRL A,Rn ACC ← ACC ⊕ Rn 累積器 ACC 與 Rn XOR 後,存回 ACC XRL A,#data ACC ← ACC ⊕ data 累積器 ACC 與 data XOR 後,存回 ACC CPL A ACC ← ACC 累積器 ACC 內容取 1 補數

(9)

林銘波編著 --- 全華科技圖書公司 2.17

分歧與跳躍指令

指令 RTL 描述 說明

JC disp C : PC ← PC + disp(2 補數) 當進位旗號為 1 時,分歧到標的位址 JNC disp C: PC ← PC + disp(2 補數) 當進位旗號為 0 時,分歧到標的位址 JZ disp ACC=0 : PC ← PC + disp(2 補數) 當 ACC 為 0 時,分歧到標的位址 JNZ disp ACC≠0 : PC ← PC + disp(2 補數) 當 ACC 為 1 時,分歧到標的位址 AJMP addr11 PC ← addr11 載入 11 位元的絕對位址於 PC 中

微算機基本原理與應用 第2章 微算機基本工作原理

基本組合語言程式例

程式 2.2-1 典型的組合語言程式列表 1 ;ex4.2-2.a51

---- 2 DSEG AT 30H 0030 3 OPR1: DS 1 0031 4 OPR2: DS 1

5 ;Exchange two words in memory 6 ;using DIRECT addressing mode ---- 7 CSEG AT 0000H

0000 A830 8 SWAPBYTE: MOV R0,LOW OPR1 ;get opr1 0002 A931 9 MOV R1,LOW OPR2 ;get opr2 0004 8831 10 MOV LOW OPR2,R0 ;save opr1 0006 8930 11 MOV LOW OPR1,R1 ;save opr2 0008 22 12 RET

13 END

(10)

林銘波編著 --- 全華科技圖書公司 2.19

基本組譯程式假指令

假指令 意義 例子

BSEG AT exp 定義絕對的位元節區 BSEG AT 20H CSEG AT exp 定義絕對的程式節區 CSEG AT 0000H DSEG AT exp 定義絕對的資料節區 DSEG AT 30H [標記:] DB <exp>[,<exp>,…] 定義位元組資料 MESSAGE: DB 0EFH [標記:] DW <exp>[,<exp>,…] 定義語句(2 位元組)資料 DW 07,0E23FH [標記:] DBIT <exp> 定義位元資料 KBFLAG: DBIT 1 [標記:] DS <exp> 保留位元組儲存空間 DS 50

ORG <exp> 定義機器碼起始位址 ORG 0100H

<name> EQU <exp> 指定 name 的值為 exp THREE EQU 3

END 表程式到此結束 END

微算機基本原理與應用 第2章 微算機基本工作原理

組合語言程式的建立

作業系統 (核心程式)

組譯程式 連結程式 載入程式 執行程式

編輯程式

命令

原始程式 目的程式 目的程式

(可執行)

I/O驅動程式

程式列表 程式列表

參考文獻

相關文件

內線參數區 參數儲存於 CALL 指令後,副

-詮釋學 -演譯法 -歸納法 -辨證法…. 形式邏輯

微算機基本原理與應用 第11章

課程名稱 向量線性組合與克拉瑪公式的幾何意涵

由於 LabVIEW 的角度是弳度量,所以設計程式時必須要用弳度量的單位計算。例如:當 For Loop 迴 圈執行至第 51 次時,即 i=50,依照程式計算 2 π × 50 ÷ 100 恰等於 π, sin π = 0

分項計畫「海上絲路之探索」之設計與推行,基本上針對本校通

• 學生需理解《愛蓮 說》中「菊」的象 徵意義,也需通過 掌握《陋室銘》的 中心思想,理解劉 禹錫的人生態度。. •

 最大概似法 (maximum