Java教程

用汇编在屏幕打印hello word

本文主要是介绍用汇编在屏幕打印hello word,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

要在屏幕打印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位置看写入情况

 

这篇关于用汇编在屏幕打印hello word的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!