Это системный вопрос низкого уровня.
Мне нужно смешать 32-битный и 16-битный код, потому что я пытаюсь вернуться в реальный режим из защищенного режима. В качестве справочной информации, мой код делает это сразу после загрузки GRUB, поэтому у меня нет какой-либо надоедливой операционной системы, чтобы сказать мне, что я могу и не могу сделать.
В любом случае, я использую [BITS 32] и [BITS 16] со своей сборкой, чтобы сообщить nasm, какие типы операций он должен использовать, но когда я тестирую свой код, используйте bochs, похоже, что для некоторых операций bochs не выполняет код, который я написал. Похоже, что ассемблер придерживается дополнительных функций 0x66
и 0x67
, что сбивает с толку bochs.
Итак, как мне получить nasm для успешной сборки кода, где я смешиваю 32-битный и 16-битный код в одном файле? Есть ли какая-то хитрость?