gpt4 book ai didi

assembly - 字大小的 OUT 到字节 IO 寄存器?使用旧 VGA 代码中的指令设置序列 Controller 寄存器

转载 作者:行者123 更新时间:2023-12-04 12:31:42 28 4
gpt4 key购买 nike

我无法理解如何使用一些旧的 VGA 代码在这个示例中设置序列 Controller 寄存器:

 mov     dx,SC_INDEX
mov ax,0604h
out dx,ax ;disable chain4 mode

示例来自 Michael Abrash 的 VGA 书:https://www.phatcode.net/res/224/files/html/ch47/47-02.html

根据描述,他想设置索引 4 处的内存模式寄存器。他想禁用位索引 3 处的 chain4(全部根据 Richard 的 EGA、VGA 和 Super VGA 卡程序员指南F. 费拉罗)。

我不明白为什么他将 2 个字节 06 和 04 放入 ax 并out。 out寄存器只有一个字节,他没有明确设置寄存器的索引来寻址。是否发生了一些我不明白的魔法?

最佳答案

I/O 端口是 8 位的,但是 2/4 个连续的端口也可以被视为一个 16/32 位端口 - out 指令将写入到两个 SC_INDEXSC_INDEX+1

你可以检查例如。英特尔 80386 引用程序员手册关于 I/O addressing 的部分对于端口宽度的事情,osdev.org 甚至似乎专门提到了这种做法 when discussing that specific port .

关于assembly - 字大小的 OUT 到字节 IO 寄存器?使用旧 VGA 代码中的指令设置序列 Controller 寄存器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68595299/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com