在函数中outb(0x3D5, (uint8_t) (pos & 0xFF));,我无法理解按位运算的目的。pos是一个uint16_t变量。
&仅 8 位 1 的按位运算的目的是什么。该&操作只是将该值与 8 位 1 进行比较,据我所知,这只会产生相同的值。这个操作如何改变pos的值?
作为背景,如果它很重要,则该函数outb旨在将右侧参数的值移动到由端口(左侧参数)索引的寄存器中。在本例中,pos是 VGA 适配器内存中的位置。该函数outb使用内联汇编和汇编指令out。