关于in指令一次读取2个字节的疑惑

最近在看《操作系统真相还原》, 书里说到:

举个例子, 比如in指令可以读取16位端口数据, 即一次读取2字节, 假设端口0x234是16位端口
in ax, 0x234 相当于
in al, 0x234
in ah, 0x235

我的疑惑是, 0x234本身就是16位端口了, 为什么in ah要从0x235读取呢? 而不是继续读0x234端口呢?

我自己理解的不清楚,还希望大神解惑!!! 感激不尽?

阅读 2.5k
1 个回答

ah、al 分别是 ax的高低8位

0x234 类似 c 里的指针,只表示起始地址,结束地址根据不同指令而定。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进