[考古] 系統程式/黃溪春/972期中考
[開課學院]: 資電學院(ex:金融學院,商學院,理工學院,資電學院,建設學院,文學院...)
[開課系所]: 資訊系(ex:中文系,外文系,電機系,財稅系..)
[課程名稱]: 系統程式
[老師名稱]: 黃溪春 老師
[開課學期]: 972
[類型]: 97-2期中考ex:(第n次)小考/98-2期中考/98-2期末考
◎請針對SIC/XE電腦系統回答問題◎
一、依下列各記憶體位址(address)與內容(value),暫存器內容以及機器指令LDA等資訊,
完成空格(1)~(8)的值。需列出計算過程。(16%)
address value
---------------
001800 003090 (PC)=003000
002090 001000 (B)=001200
002600 003600 (X)=000090
003090 000500
003600 003090
003690 002600
004600 000090
Machine instruction
---------------------------------------------------------------
Hex Binary Target Value loaded
------ ------------------------------
op nixbpe disp address into register A
---------------------------------------------------------------
03A600 000000 111010 0110 0000 0000 (1) (2)
024600 000000 100100 0110 0000 0000 (3) (4)
014600 000000 010100 0110 0000 0000 (5) (6)
003600 000000 000011 0110 0000 0000 (7) (8)
(1) (PC)+disp+(X)→3000+600+90→3690
(2) simple addressing:(TA)=(3690)→002600
(3) (B)+disp→1200+600→1800
(4) indirect addressing:((TA))=((1800))→(3090)→000500
(5) (B)+disp→1200+600→1800
(6) immediate addressing:001800
(7) address→b/p/e/disp→3600
(8) simple addressing:(TA)=(3600)→003090
二、組譯(assemble)下列程式碼,完成空格(1)~(12)的內容,需有計算式。(36%)
Loc Source statement Object code
-------------------------------------------
0000 PROGA START 0 ┌────────┬───────┐
(8) FIRST LDX #16 (1) │ Mnemonic │ Opcode │
(9) LDA #DAT2 (2) │ name │ (Hexadecimal)│
0006 LOOP ADD TAB,X (3) ├────────┼───────┤
(10) STA =C'COM' (4) │ ADD │ 18 │
... ├────────┼───────┤
0060 JEQ LOOP (5) │ J │ 3C │
(11) CPT EQU * ├────────┼───────┤
... │ JEQ │ 30 │
00C0 J @DAT2 (6) ├────────┼───────┤
... │ LDA │ 00 │
0100 TAB RESW 10 ├────────┼───────┤
(12) DAT1 WORD 32 (7) │ LDX │ 04 │
... ├────────┼───────┤
0200 DAT2 RESW 1 │ STA │ 0C │
END FIRST └────────┴───────┘
(1) (16)10=(010)16
op nixbpe disp(12)
0000 01 010000 0000 0001 0000
→050010
(2) disp=(TA)-(PC)
=200-006
=1FA
op nixbpe disp(12)
0000 00 010010 0001 1111 1010
→0121FA
(3) disp=(TA)-(PC)
=100-009
=0F7
op nixbpe disp(12)
0001 10 111010 0F7
→1BA0F7
(4) disp=203-00C
=1F7
op nixbpe disp
0000 11 110010 1F7
→0F21F7
(5) disp=006-063
=-5D=FA3
op nixbpe disp
0011 00 110010 FA3
→332FA3
(6) disp=200-0C3
=13D
op nixbpe disp
0011 11 100010 13D
→3E213D
(7) (32)10=(20)16
→000020
(8) 0000
(9) 0003
(10) 0009
(11) 0063
(12) 3*10=(30)10=(1E)16
0100+1E→011E
三、若問題二採用「Load-and-go Assembler處理,
(1)當組譯完指令JEQ LOOP時,Symbol table的內容為何?(6%)
(2)此類型Assembler的使用時機為何?(6%)
(1)
Symbol Value
┌───┬─┬─┐ ┌──┬─┐
│ TAB │* │→│ │0007│0 │
├───┼─┴─┤ └──┴─┘
│FIRST │0000 │
├───┼─┬─┤ ┌──┬─┐
│DAT2 │* │→│ │0004│0 │
├───┼─┴─┤ └──┴─┘
│LOOP │0006 │
├───┼───┤
│PROGA │0000 │
└───┴───┘
(2)參考教科書 2.4.1
四、說明「Two-pass Assembler」的各個Pass分別做了那些事?(10%)
參考教科書 2.1.1
五、說明「Literal」與「Immediate operand」之差異?(12%)
參考教科書 2.3.1
六、「Relocatable Program」有何優點?Assembler如何達成此特性?(14%)
參考教科書2.2.2
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.46.145.30