組合語言與系統分析 SIC程式教學.

Slides:



Advertisements
Similar presentations
翻譯技巧解說 例文 授課教師:何資宜. 一、加譯 「おしん」の視 聴率は、最高の時が 62.9 %に達した。ク ロジロが出てくる 「南極物語」は、配 給収入が 52 億円を超 えて、記録を更新し た。 《阿信》的收視率最 高時曾達 62.9% 。此 外,以兩隻小狗太郎 次郎為主角的《南極 物語》,票房收入也.
Advertisements

第一單元 建立java 程式.
第2章 組譯器.
最新計算機概論 第3章 計算機組織.
如何查財產(2/6) EX:利息明細提醒您於金融機構有存款;營利(股利)明細提醒您有買股票。
序列埠通訊.
教育部補助 「大專校院社團帶動中小學社團發展」
兒 童 營 養 高雄長庚醫院營養治療科 營養師 洪凱殷.
企業講座 組長: 張仁杰 組員: 指導老師:洪伯毅 楊巧歆 楊明芬 陳璿安
第 二 课 程序组成、基本数据类型、表达式 我们以上一章练习题为例说明Pascal程序的结构形式:
Project 2 JMVC code tracing
Hardware Chen Ching-Jung
主題五 CPU Learning Lab.
國立大甲高工 電機科 單晶片微電腦控制實習 輸出埠基礎實習 廣告燈 2018年11月7日 8051 單晶片實習----E0903廣告燈.
國立大甲高工 電機科 單晶片微電腦控制實習 輸出埠基礎實習 霹靂燈 2018年11月7日 8051 單晶片實習---E0902霹靂燈.
電腦操作 會考電腦 浸信會永隆中學.
微处理器设计1 刘鹏 College of ISEE Zhejiang University
第十一章 結構.
Visual C++ introduction
第4章 处理器(CPU) 4.1 引言 4.2 逻辑设计的一般方法 4.3 建立数据通路 4.4 一个简单的实现机制 4.5 多周期实现机制.
JDK 安裝教學 (for Win7) Soochow University
指令集架構 計算機也跟人類一樣,需要提供一套完整的語言讓人們跟它充分溝通,以完成正確的計算工作。
2-3 基本數位邏輯處理※.
國立大甲高工 電機科 單晶片微電腦控制實習 輸出埠基礎實習 閃爍燈 2018年11月23日 8051 單晶片實習---E0901閃爍燈.
101北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
使用VHDL設計—4位元加法器 通訊一甲 B 楊穎穆.
2-1 接腳說明 2018/11/30 第2章 系統分析.
SQL Stored Procedure SQL 預存程序.
安裝JDK 安裝Eclipse Eclipse 中文化
第1章 單晶片微電腦概論.
习题课 第1-2次作业 孙凡.
用開關選擇動作狀態 單晶片微電腦控制實習 輸入埠基礎實習 國立大甲高工 電機科 2019年1月16日
第 2 章、電腦的硬體結構 作者:陳鍾誠.
Chap3 Linked List 鏈結串列.
程式設計實習課(四) ----C 函數運用----
微處理機 Microprocessor (100上) ARM 內核嵌入式SOC原理
第一單元 建立java 程式.
PLC-GPPW軟體使用教學 授課教師:張祖烈
Instructions: Language of the Machine
大綱 *專題演講介紹 *大陸醫療的改革與發展 *海報發表文章分享 2012海峽兩岸醫院院長論壇行後報告 ‧台北
輸入&輸出 函數 P20~P21.
第十章 指標.
第1章 背景.
CH1 我的第一個App與變數宣告.
CH05. 選擇敘述.
GUI Title and GUI Status
緩衝區溢位攻擊 學生:A 羅以豪 教授:梁明章
挑戰C++程式語言 ──第8章 進一步談字元與字串
如何使用Gene Ontology 網址:
開放電腦計劃 報告人:陳鍾誠 2011 年 8 月 20 日 台灣開源人年會 COSCUP 2011 – 中研院
挑戰C++程式語言 ──第7章 輸入與輸出.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
陣列與結構.
10115: Automatic Editing ★★☆☆☆
北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
資料表示方法 資料儲存單位.
期末報告第一題 通訊四甲 B 湯智瑋.
查表法&電腦IO Port二進制轉七段顯示器
Cloud Training Material- 事件 Sherman Wang
微算機(二) -- ADC0804 measurement
Programming & Language Telling the computer what to do
LED Pili LED 中州技術學院 電子系 副教授 余文俊.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Array(陣列) Anny
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
快取映射 之直接對映 計算整理.
Unix指令4-文字編輯與程式撰寫.
Lab#9 Serial Port 實驗.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

組合語言與系統分析 SIC程式教學

SIC/XE Instruction Set – Appendix A

SIC/XE Instruction Set – Appendix A

SIC程式教學

記憶體 記憶體是由長度為8 bits的byte所組成 連續3 bytes組合為一個word Ex. 010010112= 4B16 記憶體用十六進位顯示 連續3 bytes組合為一個word Ex. A0124C

變數宣告 變數宣告有兩種類型 宣告變數並設定初始值 格式: 變數名稱 型態 初始值 WORD Ex. NUMBER WORD 45 撰寫程式時,初始值為十進位 當執行時,會將其轉為十六進位表示儲存在記憶體中 4510= 2D16,記憶體內容為2D

變數宣告 BYTE Ex. STR1 BYTE C’TEST’ C代表char(字元) 會以ASCII code方式轉換成十六進位碼儲存在記憶體當中 TEST在記憶體中顯示為54455354 Ex. STR2 BYTE X’D3’ X代表十六進位 記憶體中顯示為D3

變數宣告 宣告變數保留空間 格式: 變數名稱 型態 保留空間數 RESW RESB Ex. TEMP1 RESW 2 Ex. TEMP2 RESB 1

暫存器 一個暫存器的長度為1 word (3 bytes) SIC可用的暫存器有五個 A : Accumulator;算術運算使用 X : Index register;可用於定址 L : Linkage register;當跳到副程式,將返回位址 存在此暫存器中,以供返回原程式 PC : Program counter;下一個執行的指令 位址 SW : Status word;包含各種資訊和條件碼(CC)

Load指令 將所指定的記憶體內容Load到暫存器中 LDA m A  (m..m+2) 是將記憶體位置m開始的一個word內容,放到暫存器A中 Ex. LDA STR1 STR1 BYTE X’C1B235’ 暫存器A內容為C1B235

Load指令 LDCH m A [rightmost byte]  (m) 其他指令:LDL、LDX CH代表char,所以是只抓一個byte,放到暫存器A最後一個byte(最右邊的byte) Ex. LDCH STR1 STR1 BYTE X’C1B235’ 暫存器A內容為FFFFC1 暫存器A預設值為FFFFFF,前兩個bytes沒有load內容,仍維持預設值 其他指令:LDL、LDX

Store指令 將暫存器內容Store到所指定的記憶體中 STA m m..m+2  (A) 將暫存器A的內容,放到記憶體位置m開始的一個word中 Ex. LDA STR1 STA STR2 STR1 BYTE X’C1B235’ STR2 RESW 1 STR2這個word內容為C1B235

Store指令 STCH m m  (A) [rightmost byte] 其他指令: STL、STSW、STX 將暫存器A的最後一個byte (最右邊的byte)內容,放到記憶體m開始的一個byte中 Ex. LDA STR1 STCH STR2 STR1 BYTE X’C1B235’ STR2 RESW 1  STR2這個word內容為35FFFF 暫存器A最右邊的byte為35,將其放到STR2開始第一個位置,變成35FFFF 記憶體預設值為FFFFFF,後兩個bytes沒有load內容,仍維持預設值 其他指令: STL、STSW、STX

基本算數、邏輯運算指令 暫存器A和所指定的記憶體內容做運算,結果存在暫存器A中 ADD m A  (A) + (m..m+2) 將”暫存器A的內容”與”記憶體位置m開始的一個word內容”相加,並將結果存在暫存器A中 Ex. LDA ONE ADD TWO ONE WORD 1 TWO WORD 2 暫存器A內容為000003 其他指令: SUB 、 MUL 、 DIV 、 AND 、 OR

程式練習1 計算1+2+3 將結果存放在變數SUM中

比較指令 比較暫存器A和所指定的記憶體內容,並設定條件碼CC結果為(<,=,或>) COMP m (A) : (m..m+2) 將暫存器A和記憶體位置m開始的一個word內容進行比較,並設定CC Ex. LDA ONE COMP ONE ONE WORD 1 CC設定為EQ 可與下頁的條件式跳躍指令共用

條件式跳躍指令 測試條件碼CC的值,並做適當的跳躍 JEQ m PC  m if CC set to = 其他指令: JGT 、 JLT 測試CC的值,當值為EQ時,跳到記憶體位置m PC存放下一個執行的指令位置,所以當PC設定為m,下一個執行的指令位址即為m Ex. THIS LDA ONE COMP ONE JEQ THIS ONE WORD 1 CC為EQ,跳到THIS執行 其他指令: JGT 、 JLT

程式練習2 利用程式練習1 比較SUM和4,若SUM>4,跳到THIS THIS執行: SUM-4 計算1+2+3

跳躍指令 跳躍到指定的位置 J m PC  m 跳到記憶體位置m

TIX指令 TIX m X  (X)+1; (X):(m..m+2) 先加1到暫存器X的內容值 再比較暫存器X中的新值,和運算元的值 Ex. THIS LDA ONE TIX SEVEN JLT THIS

程式練習3 利用TIX指令 計算1+2+3

輸入和輸出 輸出和輸入都是一次以一個byte傳出或傳入暫存器A的最右邊byte(以ASCII code方式) TD m Test device specified by (m) 測試要進行輸出或輸入的device是否準備好可以傳送或接收,結果儲存在CC “<“表示準備好傳送或接收,”=”表示不能傳送或接收

輸入和輸出 RD m A [rightmost byte]  data from device specified by (m) 從指定的device讀取一個字元,根據ASCII code轉換成其十六進位表示,儲存到暫存器A的最右邊byte WD m Device specified by (m)  (A) [rightmost byte] 將暫存器A最右邊的byte(十六進位表示),根據ASCII code轉換成相對應的字元,寫到所指定的device中

輸入和輸出 Ex. RLOOP TD INDEV JEQ RLOOP RD INDEV INDEV BYTE X’F3’ 先測試deviceF3是否準備好傳送,若準 備好就從device F3讀取一個字元,放到 暫存器A的最右邊一個byte 若device F3內容為1,執行後,暫存器 A的內容為FFFF31

輸入和輸出 --Input file & Output file DEVF3:Input device 要輸入程式的input data DEV04、DEV05、DEV06:output device 程式要輸出的output data

程式練習4 從device F3輸入一個字元(ex. A) 再輸出到device 04

與副程式連結指令 JSUB m L  (PC); PC  m RSUB PC  (L) 跳到副程式,並把返回位址放在暫存器L中 Ex. JSUB THIS LDA TWO … THIS LDA ONE

與副程式連結指令 Ex. JSUB THIS 跳到THIS副程式 LDA TWO . THIS LDA ONE RSUB 返回原程式

程式練習5 1.在主程式中 2.副程式 3.回到主程式 將暫存器A歸零 從device F3輸入一個字元(ex. A)