Как запустить 16-битный код на 32-битном Linux? - PullRequest
2 голосов
/ 20 октября 2011

Я написал небольшую 16-разрядную программу сборки, которая записывает некоторые значения в некоторые области памяти. Есть ли способ проверить ее в 32-разрядном защищенном режиме в Linux?

Ответы [ 2 ]

6 голосов
/ 20 октября 2011
2 голосов
/ 25 февраля 2015

Да, 16-битный код поддерживается в пользовательских процессах в Linux.Системный вызов для этого называется vm86() (есть страница руководства, но в ней немногое).Естественно, он работает только на платформах x86 (и только 32-разрядных).

Если вам нужен пример, проект ELKS имеет полный инструмент для запуска двоичных файлов ELKS 8086 в Linux, который использует его:1004 *

https://github.com/lkundrak/dev86/tree/master/elksemu

Найдите функцию run_elks().Это довольно просто.

...