Intel x86 32-битное прерывание
Я решил начать изучать 32-битный синтаксис Intel x86 Intel Nasm, у меня есть много программирования с 16-битным, и я немного изучил 32-битный, и у меня есть несколько вопросов о прерываниях:
Есть ли разница между прерываниями? (Могу ли я использовать те же самые прерывания из 16-битной сборки) Если список прерываний одинаков, нужно ли указывать, является ли это 32-битным прерыванием? (для int. 0x16 используйте eax вместо ax, чтобы вставить считываемый байт).
Кроме того, я пытался гуглить ответы, но я не могу их найти.
РЕДАКТИРОВАТЬ:: Я не думал о включении моей ОС, но сейчас я нахожусь на Linux Mint 12.
1 ответ
Решение
- Если вы запустите свою программу в реальном режиме (например, под MS-DOS), вы сможете использовать те же службы DOS/BIOS, которые вы использовали в своих 16-битных программах.
- Боюсь, что вы не сможете указать, что собираетесь использовать 32-битные регистры, поскольку нет никакой 32-битной поддержки BIOS int 10h, int 13h и т. Д. Только содержимое 16-битных регистров будет учтено.
- Нет, для верхних половин 32-битных регистров нет названия, вам нужно использовать битовые маски и / или инструкции по сдвигу битов для доступа к ним.