要在屏幕打印hello word 就要控制显卡,在显存写入hello word
显存起始位置在b8000 ,这里地址是显存映射在内存的虚拟地址,从此处写入可以控制显示内容
B800:0000 ~B800:FFFF
在此处的地址 每个字的高位都是来决定显示的颜色
0000 0000 这8个比特每一个位都不一样
颜色代表
这里使 显示亮白就是
0000 1111
0x0f
编写示例代码
start: mov ax,0xb800 mov ds,ax mov byte [0x00],0x48;H mov byte [0x01],0x0f;亮白 mov byte [0x02],0x45;E mov byte [0x03],0x0f;亮白 mov byte [0x04],0x4c;L mov byte [0x05],0x0f;亮白 mov byte [0x06],0x4c;L mov byte [0x07],0x0f;亮白 mov byte [0x08],0x4f;O mov byte [0x09],0x0f;亮白 mov byte [0x0a],0x20;空格 mov byte [0x0b],0x0f;亮白 mov byte [0x0c],0x57;W mov byte [0x0d],0x0f;亮白 mov byte [0x0e],0x4f;O mov byte [0x0f],0x0f;亮白 mov byte [0x10],0x52;R mov byte [0x11],0x0f;亮白 mov byte [0x12],0x44;D mov byte [0x13],0x0f;亮白 jmp 0x0000:0x7c00;循环 current: times 510-(current-start) db 0 db 0x55,0xaa
写入虚拟机进行执行
查看写入的b8000位置看写入情况