画面模式的设定 和 读取键盘状态
haribote.nas
VRAM 是64KB的一段空间 0xa0000- 0xaffff
; haribote-os
; TAB=4
; BOOT_INFO
CYLS EQU 0x0ff0 ; 设定启动区
LEDS EQU 0x0ff1
VMODE EQU 0x0ff2 ; 关于颜色数目的信息 颜色的位数
SCRNX EQU 0x0ff4 ; 分辨率的X
SCRNY EQU 0x0ff6 ; 分辨率的Y
VRAM EQU 0x0ff8 ; 图像缓冲区的开始地址
ORG 0xc200 ; 程序装载地址
MOV AL,0x13 ; VGA显卡 320*200*8位色
MOV AH,0x00
INT 0x10
MOV BYTE [VMODE],8 ; 记录画面模式
MOV WORD [SCRNX],320
MOV WORD [SCRNY],200
MOV DWORD [VRAM],0x000a0000
; 用BIOS取得键盘上 各种LED指示灯的状态
MOV AH,0x02
INT 0x16 ; keyboard BIOS
MOV [LEDS],AL
fin:
HLT
JMP fin
C语言的函数 如何调用汇编函数
①新建一个汇编文件 naskfunc.nas
;NASKFUNC 汇编函数库 供C语言调用
[FORMAT "WCOFF"] ;制作目标文件的模式
[BITS 32]
;制作目标文件的 信息
[FILE "naskfunc.nas"] ;源文件名信息
GLOBAL _io_hlt ;程序中包含的函数名
;以下是 实际的函数
[SECTION .text] ;目标文件中写了这些后 才能写程序
_io_hlt: ; void io_hlt(void);
HLT
RET ;函数调用返回
②新建一个C文件 主函数名只能是HariMain
void io_hlt(void);
void HariMain(void)
{
fin:
io_hlt();
goto fin;
}