首页 > 代码库 > 《X86汇编语言 从事模式到保护模式》问题

《X86汇编语言 从事模式到保护模式》问题

        书中的42页,监测点4.2第一题,代码如下:

mov ax, 0xb800
mov ds, ax
mov [0x00], ‘a‘
mov [0x02], ‘s‘
mov [0x04], ‘m‘
jmp $

编译会报错


提示没有指定操作数长度,修改后为

mov ax, 0xb800
mov ds, ax
mov byte [0x00], ‘a‘
mov byte [0x02], ‘s‘
mov byte [0x04], ‘m‘
jmp $

然后用书中提供的工具fixvhdwr.exe写入到虚拟机的硬盘中,启动虚拟机会发现报错。上面的代码是用来当作引导代码用到,引导代码必须为512字节,且以55 AA结尾。

再次进行修改:

mov ax, 0xb800
mov ds, ax
mov byte [0x00], ‘a‘
mov byte [0x02], ‘s‘
mov byte [0x04], ‘m‘
jmp $
times 510 - ($ - $$ ) db 0
db 0x55, 0xaa

以上就OK了~!