Author Topic: addressing  (Read 3307 times)

0 Members and 2 Guests are viewing this topic.

Peter

  • Guest
addressing
« on: October 21, 2010, 05:57:15 AM »
Deleted
« Last Edit: April 14, 2015, 03:41:09 AM by Peter »

Charles Pegge

  • Guest
Re: addressing
« Reply #1 on: October 21, 2010, 12:04:56 PM »

Hi Peter,

Thanks for the new rand function.

Oxygen does not support this operand expression [m+esi+8].

This is because variable addresses are not translated into absolute constants.

Local variables are referenced to the EBP register for example: [ebp-32] and static/global variables use the EBX register, starting with [ebx+4096].

So I suggest doing this:

lea edx,m
movzx eax,[edx+edi+5]

If you want to print register values in the middle of an asm sequence then stack the registers first. Print uses several registers so you need to save the register content to a variable before printing.

pushad
mov a,eax
print a
popad


the ebx and ebp registers must be preserved whenever basic is used

Charles

Charles Pegge

  • Guest
Re: addressing
« Reply #2 on: October 21, 2010, 01:48:16 PM »
Peter,

It supports 64 bit assembly code and I have had 64 bit sample EXE and DLL code working but Oxygen needs a 64 bit run-time library to make it usable in this mode. I'm aiming for early 2011.

Charles

JRS

  • Guest
Re: addressing
« Reply #3 on: October 21, 2010, 05:37:37 PM »
Quote
I'm aiming for early 2011.

Great! That should be about the time I start looking seriously at a 64 bit box of my own. (rather than using a cloud instance of one when needed)