0% found this document useful (0 votes)
18 views9 pages

Machine Dependent Assembler Guide

Uploaded by

z2zgouravv
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views9 pages

Machine Dependent Assembler Guide

Uploaded by

z2zgouravv
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 9

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

You might also like