Machine Dependent Assembler
Features
Instruction Format and Addressing Mode
» 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)
1
Translation
Register translation
» register name (A, X, L, B, S, T, F, PC, SW) and their values (
0,1, 2, 3, 4, 5, 6, 8, 9)
» preloaded in SYMTAB
Address translation
» Most register-memory instructions use program counter relat
ive or base relative addressing
» Format 3: 12-bit address field
– base-relative: 0~4095
– pc-relative: -2048~2047
» Format 4: 20-bit address field
– pc-relative first
2
Relative Addressing Modes
PC-relative
» e.g. 10 0000 FIRST STL RETADR 17202D
– displacement= RETADR - PC = 30-3 = 2D
» e.g. 40 0017 J CLOOP 3F2FEC
– displacement= CLOOP - PC = 6 - 1A = -14 = FEC
Base-relative
» base register is under the control of the programmer
» e.g. 12 LDB #LENGTH
» e.g. 13 BASE LENGTH
» e.g. 160 104E STCH BUFFER, X 57C003
– displacement= BUFFER - B = 0036 - 0033 = 3
» NOBASE is used to inform the assembler that the contents of the base
register no longer be relied upon for addressing
3
Address Translation
Immediate addressing
» e.g. 55 0020 LDA #3 010003
» e.g. 133 103C +LDT #4096
75101000
» e.g. 12 0003 LDB #LENGTH 69202D
– the immediate operand is the symbol LENGTH
– the address of this symbol LENGTH is loaded into register B
– LENGTH=0033=PC+displacement=0006+02D
– if immediate mode is specified, the target address becomes the
operand
4
Address Translation (Cont.)
Indirect addressing
» target addressing is computed as usual (PC-relative or BASE-
relative)
» only the n bit is set to 1
e.g. 70 002A J @RETADR
3E2003
5
Program Relocation
Example Fig. 2.1
» Absolute program, starting address 1000
e.g. 55 101B LDA THREE 00102D
» Relocate the program to 2000
e.g. 55 101B LDA THREE 00202D
» Each Absolute address should be modified
Example Fig. 2.5:
» Except for absolute address, the rest of the instructions need
not be modified
– not a memory address (immediate addressing)
– PC-relative, Base-relative
» The only parts of the program that require modification at load
time are those that specify direct addresses
6
Example
7
Relocatable Program
Modification record
» Col 1 M
» Col 2-7 Starting location of the address field to be
modified, relative to the beginning of the pro
gram
» Col 8-9 length of the address field to be modified, in half-
bytes
8
Object Code