6-34 The Development Library
48[O! !!!!!{!48!qktGpZ!pk!py$p!o)okj@!
!
EO!7777<777!4[OdY! ! ! {!4[P[03!
EO!a7!KV[OdS! !!!{!ukkq!R8!pto)Z!
f!
!!O[8dY!EO!3R88!O[0OdY!S[OdY!{!S[T[03dQ!
!!EO!RH!!!!!{!ukkq!3V3!pto)Z!
!!B[8dD!B'3dD! !!!{!Z)p!%tp!8!tG!BZ!
!!f!
!!!!KD:r[O! !!!!{!Z$w)!ukkq!&knGp)j!tG!KD:r!
!!!!EO!R8388!BKMDB:! ! ! {!)w$un$p)!py)!BKM!&k()!
!!!!bD:[8d8! !!!!{!t*!qktGp!tZ!tG!py)!Z)pF!(k!GkpytGm!
!!!!f!
!!!!!!O[4B:8dD!O0BdD!4B:8[OdD! {!)uZ)F!pnjG!py)!qt?)u!k**!
!!!!h!
!
!!!!B'BdD!Dr=O!f!48'3!B'3dD!h!{!G)?p!qt?)u!
!
!!!!O[8dY!EO!a8!S'OdY! ! ! {!tG&j)o)Gp!T!
!!!!O[KD:r!O03dS!52=O! ! ! {!&knGp!(ksG!$G(!ukkq!
!!h!!
!!48'H! !!!!{!G)?p!mj$qyt&!utG)!
!!O[8dY!EO!cc!!4'OdY! ! ! {!tG&j)o)Gp!P!
!!O[KVdY!O03dS!KV[OdY!52=O! ! {!&knGp!(ksG!$G(!ukkq!
h!
EO!77!L5:[O!f!O[6=H!bO[8dS!52!h! {!s$tp!*kj!Gk!|)@!(ksG!
f!O[6=H!bOg8dS!52!h!! ! ! {!Y$tp!*kj!3!|)@!(ksG!
6=:L=!!!!!!{!j)Zpkj)!py)!|)@%k$j(!tGp)jjnqp!
EO!38!D<:E=<4! !!!{!j)Zpkj)!py)!y)$()j!Zt})!
DOK<<=!O48<T!48[883H8!4B:8[OdB! {!j)Zpkj)!py)!Z&j))G!qktGp)j!
ELB4K2E! !!!!{!j)pnjG!pk!K2E!
<=4OL4<! !!!!-!)G(!k*!BDM!qjkmj$o!/!
•!!!!!!-!)G(!k*!K2E!qjkmj$o!/!
!
xI!
Section 5 – 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
integer)
Example:
0e3!O7H (default)
0e3!D7H
B<eVa!>LDSNE!8ceXS!
B<eVS!EO!83888!
B<eaH!O0B!B!
B<eaa!>L=O!B<eaH!
B<eae!>LNE=>!3VRSX!
>LDSNE!8ceXS!
EO!83888!
.B<eaH!
O0B!B!
>L=O!B<eaH!
>LNE=>!3VRSX!