100学年度下学期 金门大学 资工系二年级 系统程式 期末考 出题者 .doc

100学年度下学期 金门大学 资工系二年级 系统程式 期末考 出题者 .doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
100学年度下学期 金门大学 资工系二年级 系统程式 期末考 出题者

100學年度下學期 金門大學 資工系二年級 系統程式 期末考 出題者 : 陳鍾誠 學號 : 姓名 : 分數 : 1. 說明題 (共20%) 請說明何謂堆疊機?何謂暫存器機?並比較兩者之不同點 (5%) 暫存器機將暫存器代號編入指令當中,以指定進行運算的暫存器。堆疊機則是利用將參數推入堆疊之後,再從堆疊中取出適當數量的元數進行運算,因此運算指令通常沒有參數。兩者的不同點在於暫存器機有明確數量的暫存器,而堆疊機則改用一個堆疊取代這些暫存器。 堆疊機程式 暫存器機 PUSH 3 PUSH 5 PUSH 6 ADD SUB LD R1, 3 LD R2, 5 LD R3, 6 ADD R4, R3, R2 SUB R5, R4, R1 請說明何謂專用輸出入指令?何謂記憶體映射輸出入 (Memory Mapped IO)?並比較兩者之不同點 (5%) 專用輸出入指令乃是專門設計用來進行輸出入的組合與言指令,像是 IN, OUT, TEST 等等。記憶體映射輸出入則是透過記憶體存取指令 (LD, ST, …) 進行輸出入的一種方法,輸出入裝置會解讀位址匯流排的內容,以做出對應的輸出入動作。 兩者的不同在於記憶體映射輸出入可以節省指令數量,而且可以直接用 C 語言撰寫輸出入程式。 請說明何謂輪詢?何謂中斷?兩者在輸出入系統中的運作原理有何不同? (10%) 輪詢是透過不斷輪流詢問周邊裝置的方式,達成監控輸出入裝置的目地。而中斷則需要硬體與 CPU 相互配合,在有輸出入事件發生時,透過中斷控制器通知 CPU,觸發中斷向量指令以處理輸出入。 輪詢方法較為簡單,但會耗費很多時間在詢問裝置的動作上。 2. 說明題 (共20%) 請說明何謂排程問題 ?(Scheduling Problem) (5%) 在多工作業系統中,當一個行程被中斷或因輸出入而暫停後,接下來應該安排哪個行程執行的問題,稱為排程問題。 常見的排程方法有:先到先做,循環分時排程等等。 請說明何謂基底界限暫存器? (Base-Limit Register) (5%) 基底界限暫存器是一種記憶體管理單元 (MMU),透過基底暫存器達到重定位功能,讓程式不需要在載入時進行重定位,而界限暫存器則可以用來限制記憶體存取的範圍,避免程式存取超過範圍的記憶空間,造成系統記憶體被破壞,以防止駭客程式的非法存取行為。 請說明編譯器可分為哪些階段?並解釋這些階段的功能各為何? (10%) 編譯器大致可分為「掃描、剖析、語意分析、中間碼產生、最佳化、目的碼產生」等六大階段。 掃描是將程式分解為一個一個的詞彙 (Token),而剖析則是將這些詞彙轉換為語法樹的結構,語意分析是為語法樹標記型態並檢查型態的相容性,中間碼產生則是將語法樹轉換為中間碼,最佳化會縮短程式碼並提升程式效能,而目的碼產生則會產生目標的組合語言或機器碼。 學號 : 姓名 : BNF 語法 (共20%) 請根據下列 BNF語法畫出 3+((8*4)-2) 的剖析樹 (10%) E = N | E [+-*/] E | (E [+-*/] E) N = [0-9]+ 請問上題 3 (a) 的語法有沒有歧義性,若有,請舉一範例並畫出兩棵具有歧義性的語法樹以說明歧義性之所在 (10%) 語法 3 (a) 有岐義性,例如 3-1-2 可能有下列兩種剖析方式,分別代表 (3-1)-2 = 0 與 3-(1-2) = 4。 4. 程式解讀 (共20%) 請說明下列堆疊機指令的執行過程與結果 (10%) PUSH 8 PUSH 2 PUSH 3 ADD SUB 請說明下列 C 語言程式的意義 (10%) (註:可參考第五題的圖形與表格解讀) #define BYTE unsigned char // 定義 BYTE #define UINT16 unsigned short //定義16bit無號整數 #define SEG7_REG (*(volatile BYTE*) 0xFFFFFF00) // 定義七段顯示器的記憶體映設存取方法 // 說明:(volatile BYTE*) 0xFFFFFF00 代表將0xFFFFFF00 位址視為一 BYTE 指標,而外部的 * 則代表存取此指標所指的 BYTE 內容。 #define KEY (*(volatile UINT16*) 0xFFFFFF01) // 定義鍵盤按鍵的記憶體映設存取方法 // 說明:(volatile BYTE*) 0

文档评论(0)

magui + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档