Top Banner
SP Mid-Term Exam
27

SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

Mar 21, 2018

Download

Documents

vokien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

SP Mid-Term Exam

Page 2: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

Question 1.

• 1.何謂系統程式? 與應用程式有何不同?舉例說明

兩項系統程式! 。

Page 3: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

系統程式簡介

• 由各種支援電腦運作的程式所組成, 使用者因此可以專注於應用程式。

‧使得使用者開發應用程式(Application)與解決問題,而不需要知道機器的低階運作方式。

‧如 Compiler、 Loader、 Linker、Debugger、Assembler、Macro Processer、Operating System 等等。

Page 4: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

系統程式與應用程式

• 應用程式(Application)– 是以電腦為工具,用來解決某些問題。

• 系統程式(System Program)

– 是用來支援使用者對電腦的使用與操作。

– 與機器的結構有關,但與機器的特性無關。

Page 5: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

程式設計的考量

• 應用程式的設計

– 考慮與探討應用程式的設計、製作,與維護

• 系統程式的設計

– 考慮與探討如何設計、製作,與維護以計算機為基礎的資訊處理系統(Computer based Information Processing System)的核心部分。

Page 6: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

應用程式的範例

• 例如

– 瀏覽器

– 排版軟體

– 多媒體

– 繪圖軟體

– ……等等。

Page 7: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

Question 2.

• Assembler需two passes以產生Object codes的主要原因為何? Pass1及Pass2工作為何? 這兩步驟會用到哪些資料結構?

• Ans: Pass1: assign addresses to all symbolPass2: generate object code in order to

solve the problem of forward reference

Page 8: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

Forward Reference

• A reference to a label that is defined later in the program– 1000 FIRSTSTL RETADR 141033– 1033 RETADR RESW 1

• 解決方法:Two Pass scanning.– Pass 1:Define symbols.– Pass 2:Assemble instructions and generate

object program.• Two Passes Assembler 演算法

Page 9: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

第一階段(定義符號)

1. 為程式中的所有指令設置其位址

2. 記載程式中所有標記符號的值(位址),以供第二階段處理之用

3. 處理組譯器指引(此項處理會影響位址配置,如決定 BYTE、RESW 所定義之資料段的長度)

Page 10: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

第二階段(組譯指令並產生目的程式)

1. 組譯指令(將指令轉譯成機器碼,並尋找位址)

2. 產生 BYTE、WORD 所定義的資料值

3. 處理在第一階段尚未完成之組譯器指引

4. 輸出目的程式和組譯器列表

Page 11: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

• 組譯器使用了兩個內部資料結構運算碼表OPTAB 和 符號表SYMTAB

• 運算碼表的作用是紀錄運算碼

• 符號表的作用是儲存給標籤的位址

• 另外還需要位置計數器 LOCCTR, 這是用來協助指派位址的變數, 其會被出使化為START 敘述的起始位址

Page 12: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

Question 3.

• 請問SIC/XE有幾種定址模式? 有何不同?請解釋之。

Page 13: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

SIC/XE 不同於 SIC

• 立即定址型式(Immediate Addressing Mode)

• 間接定址型式(Indirect Addressing Mode)

• 相對定址型式(Relative)

Page 14: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

SIC/XE機器架構

• 相對定址模式,有兩種:

– Base Relative– Program-Counter (PC) Relative

Page 15: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

Question 3.

• 關於TD測試指令

– 請問設備可以使用或不能使用,條件碼會如何設定?

– 假如有一設備INDEV 其設備代號 F1,請寫一SIC簡單INLOOP迴圈程式可將一個BYTE的資料儲存到DATA這個變數之中。(讀取資料以及儲存指令分別為RD以及STCH) 。

Page 16: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

輸出與輸入

• TD 測試未指裝置是否準備好傳送或接收, 結果設定條件碼CC, < 代表已經準備好, = 表示還沒準備好

• 程式必須等待裝置準備好, 才能執行 RD (讀取資料) 或 WD (寫入資料) 指令

Page 17: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

SIC輸出輸入程式設計範例

Page 18: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

Question 5.• Please show how to compute the target addresses and

values in register A of the following SIC/XE machine codes. (20%) (hint: the opcode of LDA is 00.)

(B) =004000 data: 001020 (PC)=001000(X) =000050

記憶體位置 儲存值

001020 003200

003200 203000

004250 00C202

00C202 003200

Page 19: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

Answer 5.

Machine instruction

Hex Binary TA Value in Reg. A

op n i x b p e disp/address

03C200 0000 00 1 1 1 1 0 0 0010 0000 0000 4250 00C202

022020 0000 00 1 0 0 0 1 0 0000 0010 0000 1020 203000

003200 0000 00 0 0 0 0 1 1 0010 0000 0000 3200 203000

+LDA data 0000 00 1 1 0 0 0 1 0000 0001 0000 0010 0000

01020 003200

LDA @data 0000 00 1 0 0 0 1 0 0000 0010 0000 1020 203000

Page 20: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

Q6. Translate the following assembly program to SIC object code

Source statementSTRCPY START 1000FIRST LDX ZEROMOVECH LDCH STR1,X

STCH STR2,XTIX ELEVENJLT MOVECH

STR1 BYTE C’TEST STRING’

STR2 RESB 11ZERO WORD 0ELEVEN WORD 11

END FIRST

Page 21: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

Question 6. AnswerLoc Source statement Object

code2000 SCOPY START 20002000 FIRST LDX ZERO 0420172003 MOVE LDCH S1,X 50A00F2006 STCH S2,X 54A0132009 TIX FOUR 2C201A200C JLT MOVE 382003200F S1 BYTE C’ABCD’ 414243442013 S2 RESB 42017 ZERO WORD 0 000000201A FOUR WORD 4 000004201D END FIRST

Page 22: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

Question 6. Answer

HSTRCPY00100000001D

T0020001904201750A00F54A0132C201A382003

4142434400000000000A

E002000

• After 1st pass: LOCCTR = 201D,LENGTH = 201D - 2000 = 001D

^

^

^

^

^ ^

^ ^ ^ ^ ^^

^^

Page 23: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

Question 7.• Translate the following assembly program to

SIC/XE object code. hint: (3000)10 = (0BB8)16

Loc               Source statement                     Object code0000 SUM START 00000 FIRST LDX (04) #0   ( 5 )0003 LDA (00) #0 0100000006 +LDB (54) #TABLE2 ( 6 )

BASE           TABLE2( 1 ) LOOP ADD (18) TABLE,X ( 7 )( 2 ) ADD (18) TABLE2,X’ ( 8 )0010 TIX (2C) COUNT ( 9 )0013 JLT (38) LOOP (10)0016 +STA (0C) TOTAL (11)( 3 ) RSUB (4C) (12)001D COUNT RESW 10020 TABLE RESW 1000( 4 ) TABLE2 RESW 10001790 TOTAL RESW 1

END FIRST

Page 24: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

Question 7. AnswerLoc/Block Source Statements Object code

0000 SUM START 0 0000 FIRST LDX # 0 (5)0003 LDA # 0 0100000006 +LDB # TABLE2 (6)

BASE TABLE2 000A LOOP ADD TABLE,X (7)000D ADD TABLE2,X (8)0010 TIX COUNT (9)0013 JLT LOOP (10)0016 +STA TOTAL (11)001A RSUB (12)001D COUNT RESW 1 0020 TABLE RESW 10000BD8 TABLE2 RESW 10001790 TOTAL RESW 11793 END FIRST

Page 25: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

Question 7. Answer

• After 1st pass: LOCCTR = 1793,LENGTH = 1793 - 0000 = 1793

SYMTABFIRST 000000LOOP 00000ACOUNT 00001DTABLE 000020TABLE2 000BD8TOTAL 001790

Page 26: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

Question 7.• Source Statements OC nixbpe Relative Address

0000 FIRST LDX #0 04 010000 0 0 00006 +LDB #TABLE2 54 010001 00BD8000A LOOP ADD TABLE,X 18 111010 020-00D=013000D ADD TABLE2,X 18 111010 BD8-010=BC80010 TIX COUNT 2C 110010 01D-013=00A0013 JLT LOOP 38 110010 00A-016=-00C

=FF4(+)0016 +STA TOTAL 0C 110001 01790 001A RSUB 4C 110000

Page 27: SP Mid-Term Exam - people.cs.nctu.edu.twpeople.cs.nctu.edu.tw/~mhhsiao/sp/SP_midterm.pdf · • 請問SIC/XE有幾種定址模式? ... (hint: the opcode of LDA is 00.) (B) =004000

Loc/Block Source Statements Object code

0000 SUM START 0 0000 FIRST LDX # 0 (5)0003 LDA # 0 0100000006 +LDB # TABLE2 (6)

BASE TABLE2 000A LOOP ADD TABLE,X (7)000D ADD TABLE2,X (8)0010 TIX COUNT (9)0013 JLT LOOP (10)0016 +STA TOTAL (11)001A RSUB (12)001D COUNT RESW 1 0020 TABLE RESW 20001790 TABLE2 RESW 20002F00 TOTAL RESW 12F03 END FIRST

000D ADD TABLE2,X 18 111010 1790-0010=1780(*)111100 1790-1790=0000