我编写了一个小的16位汇编程序,它在一些内存位置写入了一些值。有没有办法可以在Linux上以32位保护模式测试它?
答案 0 :(得分:6)
答案 1 :(得分:2)
是的,Linux中的用户进程支持16位代码。执行此操作的系统调用称为vm86()
(有一个手册页,但其中没有太多内容)。当然,它仅适用于x86平台(仅限32位)。
如果你想要一个例子,ELKS项目有一个完整的工具,用于在Linux上运行ELKS 8086二进制文件,它使用它:
https://github.com/lkundrak/dev86/tree/master/elksemu
查找run_elks()
功能。这很简单。