第2屮屮組譯器組譯器(assembler)eportfolio.lib.ksu.edu.tw/user/4/9/4970e059/repository/系統程式... ·...
TRANSCRIPT
-
2(Assembler)
-
START
END
BYTE
WORD
RESB
RESW
2.1
(F1)(05)
,X
.
-
SIC
RDREC-
WRREC-
-
1. 10
STL14
2. 10
RETADR1033
3.
4.
80EOF454F46
5.
2.1.1 SIC
2.1
-
(forward reference)
(RETADR)
2.1.1 SIC
2.1
??
-
2.1.1 SIC
2.1
STARTEND
BYTEWORD
RESBRESW
-
2.1.1 SIC
2.1
1 H
27
813 (3bytes)16
1419 (3bytes)
-
1 T
27
89 ()
1069 16
2.1.1 SIC
2.1
1 E
27
-
2.2
2.1.1 SIC
2.1
10
-
1.
2.
3.
BYTERESW
2.1.1 SIC
2.1
-
1.
2. BYTEWORD16
3.
4.
2.1.1 SIC
2.1
-
(Operation Code Table; OPTAB)
(Symbol Table; SYMTAB)
(Location Counter ; LOCCTR)
START
2.1.2
2.1
-
OPTAB
Hash Tablekey
-
SYMTAB
, , ()
BYTE, WORD, RESB, RESW
Hash TableHash Function
SYMTAB
-
(literals)
-
SIC/XE
@OPCODE @SYMBLE
OPCODE #SYMBLE
:
BASEBASE SYMBLE#
+(format 4)+OPCODE SYMBLE
34
2.2
-
PC-relativeBase-relative
PC-relative
PC-relativeBase-relative
PC-relativeBase-relative+format 4
PC-relativeBase-relative+
2.2.1
2.2
-
RDREC-
WRREC-
-
1036e 1 full address
15 0006 CLOOP +JSUB RDREC 4B101036
010010 1 1 0 0 0 1 0000 0001 0000 0011 0110
4 B 1 0 1 0 3 6
op(6) n i x b p e disp(20)
-
10 0000 FIRST STL RETADR 17202D
disp= RETADR -PC = 30-3 = 2D
-
40 0017 J CLOOP 3F2FEC
disp= CLOOP -PC = 6 -1A = -14 = FEC
-14=1111 1110 1011+1=FEC
-
12 0003 LDB #LENGTH 69202D
13 BASE LENGTH
160 104E STCH BUFFER,X 57C003
175 1056 EXIT STX LENGTH 134000
BASEBASE
NOBASEBASE
disp= BUFFER-PC=0036-1051= -101B -101BBASE-related disp= BUFFER-B=0036-0033=3
disp= LENGTH-PC=0033-1059= -1026 disp= LENGTH-B=0033-0033=0
-
55 0020 LDA #3 010003
133 103C +LDT #4096 75101000
4096=(01000)16
-
12 0003 LDB #LENGTH 69202D
LENGTHLENGTHB
LENGTH=0033=PC+displ=0006+02D
-
70 002A J @RETADR 3E2003
-
5 0000 COPY START 0
10 0000 FIRST STL RETADR 17202D
displacement= RETADR -PC = 30-3 = 2D
12 0003 LDB #LENGTH 69202D
(immediate operand)LENGTH
LENGTH B
LENGTH=0033=PC+displacement=0006+02D
if immediate mode is specified, the target address becomes the
operand
(B)=0033
-
13 BASE LENGTH
15 0006 CLOOP +JSUB RDREC 4B101036
Op code + n i x b p e + 20bit displacement
48 (1 1) (0 0 0 1) + 01036() 20 000A LDA LENGTH 032026
0033=000D+disp
Op code + n i x b p e + 12bit displacement
00 (1 1) (0 0 1 0) + 026
25 000D COMP #0 290000
op code + n i x b p e + 12bit displacement
28 (0 1) (0 0 0 0) + 000
30 0010 JEQ ENDFIL 332007
001A=0013+disp
Op code + n i x b p e + 12bit displacement
30 (1 1) (0 0 1 0) + 007
-
35 0013 +JSUB WRREC 4B10105D Op code + n i x b p e + 20bit displacement
48 (1 1) (0 0 0 1) + 0105D()
40 0017 J CLOOP 3F2FEC displacement= CLOOP -PC = 6 -1A = -14 = FEC
0006=001A+disp
Op code + n i x b p e + 12bit displacement
3C (1 1) (0 0 1 0) + FEC
45 001A ENDFIL LDA EOF 032010 002D=001D+disp
Op code + n i x b p e + 12bit displacement
00 (1 1) (0 0 1 0) + 010
50 001D STA BUFFER 0F2016 0036=0020+disp
Op code + n i x b p e + 12bit displacement
0C (1 1) (0 0 1 0) + 016
-
RDREC
-
WRREC
-
2.2.2 (Relocation)
2.2
-
2.300102D 102DA
102D()THREE
2000h
2.2.2
2.2
55 101B LDA THREE 00102D
2-2SIC
55 201B LDA THREE 00102D
-
1M
27 16
89 16
JSUB
M00000705
(byte)
(nibble
-
2.6
-
Relocation
SIC
SIC/XE
immediate addressing,
PC-relative, BASE-relative,