マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

ブートセクタでアセンブる!

なんとなく突然ブートセクタ内でどこまで、できるかやりたくなってアセンブラの練習も兼ねてやってみることにした。まず最初に作ったのは、こんな模様。

以下ソース、qemuで動けばいいと思って作ったので、実機で動かすにはおまじないが必要なはず…。使ったのはnasm

    ORG 0x7C00

    ;画面初期化
    MOV AH, 0x00
    MOV AL, 0x03
    INT 0x10

    ;ビデオモード設定 
    ;VGAグラフィックス、640x480x4bitカラー
    MOV AL, 0x12
    INT 0x10

    MOV AH, 0x0C
    MOV DX, 0
    MOV AL, 0

change_color:
    MOV CX, 0

naname:
    ADD DX, 1
    ADD CX, 1
    INT 0x10

    CMP CX, 320
    JNE naname

    ADD AL, 1
    CMP AL, 16
    JNE change_color

fin:
    JMP fin

    TIMES 510-($-$$) DB 0
    DB     0x55, 0xAA