intel x86 32位中断

时间:2012-02-02 22:44:28

标签: assembly 32-bit nasm

我决定开始学习32位x86 intel nasm语法,我用16位编程很好,并且已经对32位进行了一些研究,我对中断有一些问题:

中断之间有什么区别吗? (我可以使用16位汇编中的相同中断)如果中断列表相同,我是否必须指定它是否是32位中断? (对于int.0x16,使用eax而不是ax来放入读取字节)。

另外,我确实尝试谷歌答案,但我找不到它们。

编辑::我没有考虑包含我的操作系统,但是现在我正在使用linux mint。

1 个答案:

答案 0 :(得分:2)

  1. 如果您以实模式运行程序(例如,在MS-DOS下),您将能够使用您在16位程序中使用的相同DOS / BIOS服务。
  2. 我担心您将无法指定您将使用32位寄存器,因为没有32位支持BIOS int 10h,int 13h等。只有16位的内容寄存器将被考虑在内。
  3. 不,32位寄存器的上半部分没有名称,您需要使用位掩码和/或位移指令来访问它们。