История изменений
Исправление ASM, (текущая версия) :
Посмотри на соглашения о вызовах в 32-х и 64-х битных режимах.
ABI хоть из зависит от архитектуры, но придумывается другими людьми. Судя по википедии видов соглашений о вызовах под x32 10 штук, под x64 всего 3 штуки.
На много проще идти в порядке: регистры, стек, FPU, SSE в 32-битном режиме, чем каша 64-х битного режима, различающихся ещё и на разных платформах.
Документ Intel® 64 and IA-32 Architectures Software Developer’s Manual ответит Вам по двум картинкам:
- Figure 3-1. IA-32 Basic Execution Environment for Non-64-bit Modes
- Figure 3-2. 64-Bit Mode Execution Environment
Что по сути 64 несколько проще и удобнее. Хотя бы отсутствием заметки в 64 битном режиме:
The address space can be flat or segmented. Using the physical address extension mechanism, a physical address space of 2^36 - 1 can be addressed.
Собственно окна для адресации я и имел введу «дурдомом». В целом 64 ещё даёт лишнее пространство в регистрах для своих коварных грязных делишек, ну и всякие плюшки типа инструкции syscall и тп.
По картинкам о которых я упомянул выше Вы можете заметить, что ваши FPU, SSE в 64 битном режиме никуда не делись.
Исходная версия ASM, :
Посмотри на соглашения о вызовах в 32-х и 64-х битных режимах.
ABI хоть из зависит от архитектуры, но придумывается другими людьми. Судя по википедии видов соглашений о вызовах под x32 10 штук, под x64 всего 3 штуки.
На много проще идти в порядке: регистры, стек, FPU, SSE в 32-битном режиме, чем каша 64-х битного режима, различающихся ещё и на разных платформах.
Документ Intel® 64 and IA-32 Architectures Software Developer’s Manual ответит Вам по двум картинкам:
- Figure 3-1. IA-32 Basic Execution Environment for Non-64-bit Modes
- Figure 3-2. 64-Bit Mode Execution Environment
Что по сути 64 несколько проще и удобнее. Хотя бы отсутствием заметки в 64 битном режиме:
The address space can be flat or segmented. Using the physical address extension mechanism, a physical address space of 2^36 - 1 can be addressed.
Собственно окна для адресации я и имел введу «дурдомом». В целом 64 ещё даёт лишнее пространство в регистрах для своих коварных грязных делишек, ну и всякие плюшки типа инструкции syscall и тп.
По картинкам о которых я упомянул выше Вы можете заметить, что ваши FPU, SSE в 64 битном режиме никуда не делись.