《X86 汇编语言:从实模式到保护模式》

ddatsh

dev #asm asm

《X86 汇编语言:从实模式到保护模式》

mov ax,0xb800
mov ds,ax
mov [0x00],a
mov [0x02],s
mov [0x04],m
jmp $
nasm -f bin a.asm -o a.bin
error: symbol `’a’' not defined
error: symbol `’s’' not defined
error: symbol `’m’' not defined

mov 指令没有指定操作数的大小,nasm 不知道怎么理解这三个 ASCII 码,可以是 8bit 的也可以是 16 或者 32bit

把显存的基地址移动到段寄存器里,然后字符 A 加上黑底白字下划线的特效移动到偏移 0x0 处,最后死循环

mov ax,0xb800
mov ds,ax
mov word ds:[0x0],0x41
mov word ds:[0x1],0x07

spin:
    jmp spin 
    
    times 510 - ( $ - $$ ) db 0
    dw 0xaa55 ;=== 确保以 0x55 0xaa 为结尾