Disassemblers

ASM

The ASM→ disassembler converts Saturn assembly into a source string.

The syntax used is MASD syntax, in mode 0-15. Each line contains an address and an instruction. If the system flag –71 is set (with -71 SF), addresses are not shown, except for the destinations of jumps. In this case, the resulting source may be then reassembled if needed.

ASM→ can either disassemble a CODE object or the memory area between 2 given addresses (as binary integers). Example:

 

-71 CF2 (default)

 

 

-71 SF2

 

 

AE734 GOSBVL 0679B

GOSBVL 0679B

 

 

 

AE73B LC 01000

 

LC 01000

 

 

 

AE742 C-A A

 

*AE742

 

 

 

AE744 GONC AE742

C-A A

 

 

 

 

AE747 GOVLNG 138B9

GONC AE742

 

 

 

 

 

 

GOVLNG 138B9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Level 2

 

Level 1

 

 

Level 1

Binary integer (start address of the

 

Binary integer end

 

String (disassemble between

memory area to disassemble)

 

address

 

 

 

the 2 address)

 

 

 

Code object

 

 

String

ARM

The ARM→ disassembler converts ARM assembly into a source string.

Each line contains an address and an instruction. If the system flag –71 is set (with -71 SF), addresses are not shown, except for the destinations of jumps. In this case, the resulting source may be then reassembled if needed.

ARM→ can either disassemble a CODE object (which does not make much sense at this point in time) or the memory area between 2 given Saturn addresses (as binary integer).

Example:

 

 

 

-71 CF2 (default)

 

 

 

-71 SF2

 

874FF LDMGEIA R0 ! { R5 R6 R7 LP PC }

LDMGEIA R0 ! { R5 R6 R7 LP PC }

 

87507

STMDB

R5

{ R5 R12 PC }

STMDB

R5

{ R5 R12 PC }

 

8750F

BL

87527

 

 

 

BL

876E3

 

87517

BLGE

87527

 

 

 

BLGE

876E3

 

8751F

BGE

87527

 

 

 

BGE

876E3

 

87527

ADD

R0

R0 R0

 

 

*876E3

 

 

 

 

 

8752F

MOV

R0

R1

 

 

ADD

R0

R0 R0

 

87537

TST

R4

R5

 

 

MOV

R0

R1

 

 

 

 

 

 

 

 

TST

R4

R5

 

 

 

 

 

 

 

 

@

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Level 2

 

 

 

 

Level 1

 

 

Level 1

 

Binary integer (start address of the

 

Binary integer end

 

 

String (disassemble between

 

memory area to disassemble)

 

address

 

 

 

the 2 address)

 

 

 

 

 

 

 

Code object

 

 

String

 

The Development Library 6-41