まずは、文字列出力
なにはともあれ、文字列出力です。
でも、これって、はりぼての最初でも、やってるんですね。
だから、ここでは、素直に、はりぼての真似をしてみようと思います。
はりぼての helloos を参考に、文字列出力部を、サブルーチン化します。
パラメータは1つ。
SIレジスタにヌルターミネート文字列への先頭アドレスを与える事とします。
表示位置や表示カラーは、今のところシステム側で固定。
それでも、まぁ、しばらくは、役に立つでしょう。
とりあえず、これで...
puts: PUSH AX ; AXレジスタ退避(BIOS呼び出しパラメータ) PUSH BX ; BXレジスタ退避(BIOS呼び出しパラメータ) PUSH SI ; SIレジスタ退避(内部で破壊されちゃうので一応保存しておく) putloop: MOV AL,[SI] ADD SI,1 ; SIに1を足す CMP AL,0 JE putsfin MOV AH,0x0e ; 一文字表示ファンクション MOV BX,15 ; カラーコード INT 0x10 ; ビデオBIOS呼び出し JMP putloop putsfin: POP SI POP BX POP AX RET