Intel x86 32-битное прерывание

Я решил начать изучать 32-битный синтаксис Intel x86 Intel Nasm, у меня есть много программирования с 16-битным, и я немного изучил 32-битный, и у меня есть несколько вопросов о прерываниях:

Есть ли разница между прерываниями? (Могу ли я использовать те же самые прерывания из 16-битной сборки) Если список прерываний одинаков, нужно ли указывать, является ли это 32-битным прерыванием? (для int. 0x16 используйте eax вместо ax, чтобы вставить считываемый байт).

Кроме того, я пытался гуглить ответы, но я не могу их найти.

РЕДАКТИРОВАТЬ:: Я не думал о включении моей ОС, но сейчас я нахожусь на Linux Mint 12.

1 ответ

Решение
  1. Если вы запустите свою программу в реальном режиме (например, под MS-DOS), вы сможете использовать те же службы DOS/BIOS, которые вы использовали в своих 16-битных программах.
  2. Боюсь, что вы не сможете указать, что собираетесь использовать 32-битные регистры, поскольку нет никакой 32-битной поддержки BIOS int 10h, int 13h и т. Д. Только содержимое 16-битных регистров будет учтено.
  3. Нет, для верхних половин 32-битных регистров нет названия, вам нужно использовать битовые маски и / или инструкции по сдвигу битов для доступа к ним.
Другие вопросы по тегам