2007年10月28日日曜日

2日目:アセンブラの学習とMakefile入門(その2)

文字列の表示処理が、WindowsのDOSプロンプト上で動くものとはちょっと違うようです。
DOSのシステムコールではなくて、BIOSのシステムコールを使うことになるからなので当然?
DOSでは、

  • MOV AH, 0x02 ;1文字出力

  • MOV DL, 0x31 ;"1"の文字コード

  • INT 0x21 ;DOSファンクションコール


でしたが、

  • MOV AH 0x0e ;1文字出力

  • MOV AL, 0x31 ;"1"の文字コード

  • MOV BH, 0 ;

  • MOV BL, 15 ;カラーコード

  • INT 0x10 ;ビデオ関係のファンクションコール


となっています。
BIOSのファンクションコールについては、http://community.osdev.info/?(AT)BIOSに詳細が書いてあります。