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

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

minivmの仕様

前回のエントリでminivmを公開したが仕様を書いてなかった。まず、このプログラムはバイナリファイルをドロップエリアにドロップすることで動きだす。バイナリファイルはminivmのメモリの0番地に置かれ、先頭から実行する。実行するのはx86バイナリで、32bitモードで実行する。そして0x100000番地にTextVRAMがあり、1バイトごとに1文字表示するようにしている。そのため下記プログラムではHello Worldが表示されるようになっている。まだ文字表示しかできないので、もっと拡張したい

[BITS 32]

    MOV EAX, 0x100000
    MOV BYTE [EAX +  0], 'H'
    MOV BYTE [EAX +  1], 'e'
    MOV BYTE [EAX +  2], 'l'
    MOV BYTE [EAX +  3], 'l'
    MOV BYTE [EAX +  4], 'o'
    MOV BYTE [EAX +  5], ' '
    MOV BYTE [EAX +  6], 'W'
    MOV BYTE [EAX +  7], 'o'
    MOV BYTE [EAX +  8], 'r'
    MOV BYTE [EAX +  9], 'l'
    MOV BYTE [EAX + 10], 'd'
fin:
    JMP fin