1. ダイレクトカスタムテーブル
1.1 シフト命令
1.2 ビデオメモリデータの操作
1.3 メモリセルを説明するラベル
1.4 データダイレクトアドレッシングテーブル
1.5 コードの直接アドレス指定テーブル
2. 内中断
2.1 割り込みとその処理
2.2 書き込み割り込みハンドラ
2.3 シングルステップ割り込み
2.4 int命令による割り込み
2.5 BIOS、DOS 割り込み処理
2.5.1 BIOS - 基本入出力システム
BIOS はシステムボードの ROM に格納されているプログラムのセットで
、容量: 8KB
、アドレス: FE000H から始まります。
BIOS の主な内容
(1) ハードウェア システム検出および初期化プログラム
(2) 外部割り込みおよび内部割り込み割り込みルーチン
(3) ハードウェア デバイス上の I/O 操作の割り込みルーチン
(4) その他およびハードウェア システム依存の割り込みルーチン
BIOS 関数呼び出しを使用すると、プログラマはハードウェア操作の詳細を理解する必要がなく
、命令を直接使用してパラメータを設定したり、BIOS ルーチンを中断して呼び出したりして
関連作業を完了できます。
BIOS 関数呼び出しの使用: (1) 便利なプログラミング、
(2) 簡潔で読みやすく移植しやすいプログラムを作成できます。
2.5.2 BIOS 割り込み呼び出しの例
タスク: 画面の 5 行 12 列に 3 つの緑色の「a」を赤色の背景で強調表示および緑色で点滅させて表示します。
BIOS 10h 割り込みを使用し
、(ah)=2 の場合、10h 割り込みルーチンの 2 番のサブルーチンを呼び出し、カーソル位置を設定します。
(ah)=9 の場合、10h 割り込みルーチンの 9 番のサブルーチンを呼び出し、カーソル位置を設定します。カーソル位置 位置表示文字
assume cs:code
code segment
mov ah,2 ;置光标功能
mov bh,0 ;第0页
mov dh,5 ;dh中放行号
mov dl,12 ;dl中放列号
int 10h
mov ah,9 ;显示字符功能
mov al,'a' ;字符
mov bl,11001010b;颜色属性
mov bh,0 ;第0页
mov cx,3 ;字符重复个数
int 10h
mov ax,4c00h
int 21h
code ends
end
2.5.3 BIOS 割り込みとは何ですか?またその使用方法は何ですか?
2.5.4 DOS 割り込み
2.5.5 int 21HDOS 割り込みルーチンの適用
4ch 関数: プログラムは を返します
; 関数番号は ah にあり、戻り結果は al に格納されます
: 使用法:
mov ah,4ch
mov al,0
int 21h
:09h 関数: カーソル位置の文字列を表示
; ds:dx は表示する文字列へのポインタ('$'で終わる)
: 使用法:
mov ah ,9
int 21h
: 例: 文字を5行表示するプログラムと画面文字列
「welcome to masm!」の 12 桁
assume cs:code
data segment
db 'Welcome to masm!','$'
data ends
code segment
start: mov ah,2 ; 置光标
mov bh,0 ; 第0页
mov dh,5 ; dh中放行号
mov dl,12 ; dl中放列号
int 10h
mov ax,data
mov ds,ax
mov dx,0 ;ds:dx指向字符串的首地址data:0
mov ah,9
int 21h
mov ax,4c00h
int 21h
code ends
end start
2.5.6 BIOS および DOS 割り込みルーチンのインストール プロセス
(1) CPU に電源を投入すると、(CS)=0FFFFH、(IP)=0 に初期化され、自動的に FFFF:0 単位からプログラムの実行を開始します。FFFF:0 にジャンプ命令があり、CPU はこの命令を実行した後、
BIOS のハードウェア システム検出および初期化プログラムを実行します。
(2) 初期化プログラムは、BIOS がサポートする割り込みベクタを設定します。つまり、BIOS が提供する割り込みルーチンのエントリアドレスを割り込みベクタ テーブルに登録します。
(3) ハードウェア システムの検出と初期化が完了したら、呼び出してint 19h
オペレーティング システムを起動します。それ以降、コンピューターはオペレーティング システムによって制御されます。
(4) DOS が起動すると、他のタスクを完了するだけでなく、DOS が提供する割り込みルーチンをメモリにロードし、対応する割り込みベクタを確立します。