How to interpret assembly 68K instruction: MOVE.W #5100!$13ec,-(A7) What is a meaning of symbol '!' between decimal 5100 and hexadecimal 13ec. I have noticed that 5100 is equal to $13ec.
Asked
Active
Viewed 63 times
1 Answers
2
This is your disassembler being "helpful", and showing you two possible interpretations of a value. Sometimes the decimal view is what you want (e.g. it's a loop counter, or a fixed size, or a decimal constant), and sometimes the hex view is what you want (e.g. it's an address, a block size, flags, or a hex constant). By providing both, the disassembler is just trying to be helpful.
If you were going to assemble this instruction, you'd only use one interpretation, e.g.
MOVE.W #5100,-(A7)
or
MOVE.W $13ec,-(A7)

nneonneo
- 171,345
- 36
- 312
- 383
-
.. and it must be a specific function of this particular disassembler. Most disassemblers I know (and the ones I wrote myself) use a default scheme, make intelligent choices, or provide the alternate notation as a comment. That way, the produced assembly can be reassembled. – Jongware Sep 08 '14 at 21:12
-
@Jongware: yep. My old 68K disassembler (which I used with ResEdit on my old Mac) didn't do this. – nneonneo Sep 09 '14 at 00:24