I had a questionable idea of converting one of my modules from a 16bit code (task 32bit) to a 32bit code.
Due to the nature of the specification I have to drop to real mode. The only difference in code is that I have to make a far jump to a 16bit code segment to drop to real mode before doing the far jump to a real mode code segment.
This is all successful. The data segment selector (ds) works fine.
The problem is with the stack segment and pointer. They only appear to work properly when they are both page aligned and I want them to be paragraph aligned.
When they are paragraph aligned and I execute a push ax operation the stack point decrements by 32.
How strange is that!
Anyway, has anyone experienced simular? If so, how did you overcome this problem?
If all else fails I will give up and stick to the 16bit code (32bit task)
Thanks
"People who have nothing to say, say it too loud and have little knowledge. It's the quiet ones you need to worry about!"
Due to the nature of the specification I have to drop to real mode. The only difference in code is that I have to make a far jump to a 16bit code segment to drop to real mode before doing the far jump to a real mode code segment.
This is all successful. The data segment selector (ds) works fine.
The problem is with the stack segment and pointer. They only appear to work properly when they are both page aligned and I want them to be paragraph aligned.
When they are paragraph aligned and I execute a push ax operation the stack point decrements by 32.
How strange is that!
Anyway, has anyone experienced simular? If so, how did you overcome this problem?
If all else fails I will give up and stick to the 16bit code (32bit task)
Thanks
"People who have nothing to say, say it too loud and have little knowledge. It's the quiet ones you need to worry about!"