如何在32位Linux上运行16位代码?

时间:2011-10-19 22:36:21

标签: linux assembly x86 qemu 16-bit

我编写了一个小的16位汇编程序,它在一些内存位置写入了一些值。有没有办法可以在Linux上以32位保护模式测试它?

2 个答案:

答案 0 :(得分:6)

答案 1 :(得分:2)

是的,Linux中的用户进程支持16位代码。执行此操作的系统调用称为vm86()(有一个手册页,但其中没有太多内容)。当然,它仅适用于x86平台(仅限32位)。

如果你想要一个例子,ELKS项目有一个完整的工具,用于在Linux上运行ELKS 8086二进制文件,它使用它:

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

查找run_elks()功能。这很简单。