当前位置:  开发笔记 > 编程语言 > 正文

使用nasm混合32位和16位代码

如何解决《使用nasm混合32位和16位代码》经验,为你挑选了1个好方法。

这是一个低级系统问题.

我需要混合32位和16位代码,因为我试图从保护模式返回实模式.作为一些背景信息,我的代码是在GRUB引导之后这样做的,所以我没有任何讨厌的操作系统来告诉我我能做什么和不能做什么.

无论如何,我使用[BITS 32]和[BITS 16]与我的程序集告诉nasm它应该使用哪种类型的操作,但是当我测试我的代码时使用bochs看起来像某些操作bochs没有执行代码那样我写.看起来汇编程序正在坚持使用额外的东西0x66,0x67这使得bochs感到困惑.

那么,如何在同一个文件中混合32位和16位代码的情况下成功组合代码?有什么诡计吗?



1> Terry..:

结果问题是我没有正确设置描述符表.我有一点错误,所以我没有进入16位模式,而是进入32位模式(片段恰好有一个兆字节).

谢谢你的建议!

特里

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有