I'm forced to think in ML64 assembly with no 64-bit computer...

Started by MazeGen, December 12, 2005, 08:09:19 PM

Previous topic - Next topic

MazeGen

... so many questions have arised.

Firstly: is there any predefined symbol which could tell me if ML64 is used? I mean something like

IFNDEF __ML_64
mov ecx, offset loop_lbl
ELSE
mov rcx, offset loop_lbl
ENDIF

manhattan

You can use

__ML_64 = OPATTR rax

IF __ML_64
mov rcx, offset loop_lbl
ELSE
mov ecx, offset loop_lbl
ENDIF

zooba

Presumably you need to set a different instruction set at the top (ie. .386/486/etc.)

This can be retrieved with the @Cpu symbol. (I only have the MSDN documentation to go on so I can't help you out any more than that - try ECHOing it and see what happens)

MazeGen

Hi Dr. Manhattan,

I was thinking about similar solution. From your answer I assume there isn't such predefined symbol.

Hi zooba,

did you try it with ML64? I doubt it depends on the processor directive. You can have the lastest Pentium4 without 64-bit extensions. I'd expect that using ML64 I have to compile 64-bit code...

Human

you can look inside exe for .386 .486 .586 .mmx strings if any new it will be there

AeroASM

those directives are not put into the exe.

which exe anyway?

MazeGen


MazeGen

Ok, next question:

What about RIP-relative addressing? May the coder use this addressing explicitly, or ML64 choose itself between direct addressing and RIP-relative addressing?


MazeGen

Again thanks, Dr. Manhattan :U

I know this pages, but I didn't noticed they got updated  :red