我尝试为 ext2 格式化驱动器编写引导加载程序。我将超级块加载到 0x7e00。然后我通过读取第 24 个字节来确定块大小。我用这个值向左移动了 1024。但是 cl 寄存器包含错误的值。
内存转储(在 0x7e00 + 24 为 4 个字节):
24>: 0x02 0x00 0x00 0x00
Shifted value: 0x400 (eax)
cl: 0x00
我的代码:
mov eax, 1024
mov cl, byte [0x7e00 + 24]
shl eax, cl
mov [BLOCK_SIZE], eax
我做错了什么?