64-bit long mode compatability with 32-bit instructions-GAS (Developers)
> Now it seems to work. Do I really need to make branching for 32-bit and
> 64-bit platform? Does it mean that if CPU is in long mode it is not
> compatible with 32b (and 16b) instructions?
Yes. I think flags is simply not subdivided. (can you push 16-bits flags in 32-bit mode?)
> Then how does 64-bit windows
> run older 32-bit apps without recompiling?
The same way that 32-bit win9x runs 16-bits dos.
> then do I need to write all in 64-bit asm (otherwise will I got
> invalid opcode exception)?
No, you can use 32-bit eax for instance. Just not all registers have such legacy subdivisions.
Afaik even the new registers have 32-bit subdivisions (r11d, r11w,r11b etc), but they don't have -H variants.
Complete thread:
- 64-bit long mode compatability with 32-bit instructions-GAS - RayeR, 22.01.2014, 23:44 (Developers)
![Open in board view [Board]](img/board_d.gif)
![Open in mix view [Mix]](img/mix_d.gif)
- 64-bit long mode compatability with 32-bit instructions-GAS - Rugxulo, 23.01.2014, 01:10
- 64-bit long mode compatability with 32-bit instructions-GAS - Oso2k, 23.01.2014, 01:34
- 64-bit long mode compatability with 32-bit instructions-GAS - RayeR, 23.01.2014, 03:03
- 64-bit long mode compatability with 32-bit instructions-GAS - alexfru, 23.01.2014, 08:34
- 64-bit long mode compatability with 32-bit instructions-GAS - georgpotthast, 23.01.2014, 20:16
- 64-bit long mode compatability with 32-bit instructions-GAS - alexfru, 23.01.2014, 08:34
- 64-bit long mode compatability with 32-bit instructions-GAS - marcov, 23.01.2014, 21:57
Mix view