0% found this document useful (0 votes)
8 views

Machine

features

Uploaded by

Mebil Bernaldu L
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Machine

features

Uploaded by

Mebil Bernaldu L
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

Machine Dependent

Assembler Features
Assembler: Machine Dependent
Features
• SIC/XE and assembler translation
• Program Relocation
• Modification Records in an Object File
SIC/XE Assembler
• We have learned the 2-pass assembler for SIC
• What’s new for SIC/XE?
• More addressing modes
• Program relocation
Instruction Format and
Addressing Mode
• SIC/XE:
• PC-relative or base-relative addressing: op m
• Indirect addressing: op @m
• Immediate addressing: op #c
• Extended format: +op m
• Index addressing: op m,x
• Register-to-register instructions
• Larger memory  multi-programming (program
allocation)
Translation
• Register translation
• Register name (A, X, L, B, S, T, F, PC, SW) translated to
their ids (0,1, 2, 3, 4, 5, 6, 8, 9)
• May be preloaded in SYMTAB
• Address translation
• Register-memory instructions: try PC-relative first, then
base-relative addressing
• Assembler makes its own decision
• User must specify extended format (format 4)
• Format 3: 12-bit displacement
• Base-relative: 0~4095 PC-relative: -2048~2047
• Format 4: 20-bit address field
An SIC/XE Example (Figure 2.6)
Line Loc Source statement Object code
5 0000 COPY START 0
10 0000 FIRST STL RETADR 17202D
12 0003 LDB #LENGTH 69202D
13 BASE LENGTH
15 0006 CLOOP +JSUB RDREC 4B101036
20 000A LDA LENGTH 032026
25 000D COMP #0 290000
30 0010 JEQ ENDFIL 332007
35 0013 +JSUB WRREC 4B10105D
40 0017 J CLOOP 3F2FEC
45 001A ENDFIL LDA EOF 032010
50 001D STA BUFFER 0F2016
55 0020 LDA #3 010003
60 0023 STA LENGTH 0F200D
65 0026 +JSUB WRREC 4B10105D
70 002A J @RETADR 3E2003
80 002D EOF BYTE C’EOF’ 454F46
95 0030 RETADR RESW 1
100 0033 LENGTH RESW 1
105 0036 BUFFER RESB 4096
115 . READ RECORD INTO BUFFER
120 .
125 1036 RDREC CLEAR X B410
130 1038 CLEAR A B400
132 103A CLEAR S B440
133 103C +LDT #4096 75101000
135 1040 RLOOP TD INPUT E32019
140 1043 JEQ RLOOP 332FFA
145 1046 RD INPUT DB2013
150 1049 COMPR A,S A004
155 104B JEQ EXIT 332008
160 104E STCH BUFFER,X 57C003
165 1051 TIXR T B850
170 1053 JLT RLOOP 3B2FEA
175 1056 EXIT STX LENGTH 134000
180 1059 RSUB 4F0000
185 105C INPUT BYTE X’F1’ F1
195 .
200 . WRITE RECORD FROM BUFFER
205 .
210 105D WRREC CLEAR X B410
212 105F LDT LENGTH 774000
215 1062 WLOOP TD OUTPUT E32011
220 1065 JEQ WLOOP 332FFA
225 1068 LDCH BUFFER,X 53C003
230 106B WD OUTPUT DF2008
235 106E TIXR T B850
240 1070 JLT WLOOP 3B2FEF
245 1073 RSUB 4F0000
250 1076 OUTPUT BYTE X’05’ 05
255 END FIRST
PC-Relative Addressing Mode
Base-Relative Addressing Mode
Immediate Address Translation
Immediate Address Translation
Indirect Address Translation
Program Relocation
Program Relocation

Loaded at 0000 Loaded at 5000 Loaded at 7420


Example of Program Relocation (1/2)
• Example Fig. 2.2
1000  2000
• Absolute program, starting address ====
5 2000 1000 COPY START ====  2000
1000
10 2000 1000 FIRST STL RETADR 141033 142033
15 2003 1003 CLOOP JSUB RDREC 482039 483039
20 2006 1006 LDA LENGTH 001036 002036
25 2009 1009 COMP ZERO 281030 282030
30 200C 100C JEQ ENDFIL 301015 302015
35 200F 100F JSUB WREC 482061 483061
40 2012 1012 J CLOOP 3C1003 3C2003
45 2015 1015 ENDFIL LDA EOF 00102A 00202A
50 2018 1018 STA BUFFER 0C1039 0C2039
55 201B 101B LDA THREE 00102D 00202D
60 201E 101E STA LENGTH 0C1036 0C2036
65 2021 1021 JSUB WREC 482061 483061
70 2024 1024 LDL RETADR 081033 082033
75 2027 1027 RSUB 4C0000 4C0000
80 202A 102A EOF BYTE C'EOF' 454E46 454E46
85 202D 102D THREE WORD 3 000003 000003
90 2030 1030 ZERO WORD 0 000000 000000
95 2033 1033 RETADR RESW 1
100 2036 1036 LENGTH RESW 1
105 2039 1039 BUFFER RESB 4096
Example of Program Relocation (2/2)
Example Fig. 2.6:
Except for absolute address, rest of the instructions need not be modified
not a memory address (immediate addressing)
PC-relative, Base-relative
Parts requiring modification at load time are those with absolute addresses

5 1000 0000 COPY START 0


10 1000 0000 FIRST STL RETADR 17202D 17202D
12 1003 0003 LDB #LENGTH 69202D 69202D
13 BASE LENGTH
15 1006 0006 CLOOP +JSUB RDREC 4B101036 4B102036
20 100A 000A LDA LENGTH 032026 032026
25 100D 000D COMP #0 290000 290000
30 1010 0010 JEQ ENDFIL 332007 332007
35 1013 0013 +JSUB WRREC 4B10105D 4B10205D
40 1017 0017 J CLOOP 3F2FEC 3F2FEC
45 101A 001A ENDFIL LDA EOF 032010 032010
50 101D 001D STA BUFFER 0F2016 0F2016
55 1020 0020 LDA #3 010003 010003
60 1023 0023 STA LENGTH 0F200D 0F200D
65 1026 0026 +JSUB WRREC 4B10105D 4B10205D
70 102A 002A J @RETADR 3E2003 3E2003
80 102D 002D EOF BYTE C'EOF' 454F46 454F46
95 1030 0030 RETADR RESW 1
100 1036 0036 BUFFER RESB 4096
Making Program Relocation Easier
• Use relative addresses
• Did you notice that we didn’t modify the addresses for
JEQ, JLT and J instructions?
• We didn’t modify the addresses for RETADR, LENGTH,
and BUFFER in Figure 2.6 either.
• Virtual memory! (not covered in this course)
• The sample SIC/EX program is easier
• Mostly PC or base relative
• Only extended format instructions have direct addresses
and require modification
Relocatable Program
• An object program that contains information
needed for address modification for loading
• Modification record
• Col 1 M
• Col 2-7 Starting location of the address field to be
modified, relative to the beginning of the
program
• Col 8-9 length of the address field to be modified,
in half-bytes (address field to be modified
may not occupy an integral number of
bytes, e.g. 20 bits)
Object File with M-Records
• Modification records are added to the object files.
(See pp.64-65 and Figure 2.8.)
• Example:
HCOPY 001000 001077
T000000 1D 17202D…4B101036…
T00001D ……

M000007 05  Modification Record
……
E000000

You might also like