トップ->アセンブラ 第2章

あなたは

人目のアセンブラの受講生です。

アセンブラ入門内検索

目次

アセンブラ入門

アセンブラ 〜MS-DOSの世界〜 トップ
0. はじめに

1. コマンドラインからの引数
   1. コマンドラインからの引数
   2. 自分の名前は?

2. メモリー管理
   1. 環境変数
   2. 練習問題
   3. メモリーの割り当て
   4. メモリーの解放
   5. UMB
   6. メモリー管理
   7. 常駐プログラム(TSR)

3. 標準入出力
   1. 1文字入力
   2. キーボードバッファー
   3. 1文字出力
   4. 文字列出力
   5. 文字列入力
   6. 練習問題
   7. RS-232C
   8. プリンタ

4. ファイル操作
   1. ファイルオープン
   2. ファイルクローズ
   3. ファイルリード
   4. ファイルライト
   5. 練習問題1
   6. ファイルポインタの移動
   7. 練習問題2
   8. ファイル作成
   9. ファイル属性
   10. ファイル削除
   11. ファイル名変更
   12. ファイル属性の設定・取得
   13. ファイル日時の設定・取得
   14. ファイル検索
   15. 練習問題3
   16. 予約されているファイルハンドル
   17. ファイルハンドルの二重化(リダイレクト)

5. ディレクトリ操作
   1. ディレクトリ操作
   2. カレントディレクトリ変更
   3. カレントディレクトリ取得
   4. ディレクトリ作成
   5. ディレクトリ削除
   6. 練習問題

6. ディスク操作
   1. ディスクのリセット
   2. カレントディスクの取得
   3. カレントディスクの変更
   4. ドライブ情報の取得
   5. 空き容量取得
   6. 練習問題
   7. 交換可能ドライブの検査
   8. リトライ回数の設定
   9. ディスクの直接操作

7. プロセス管理
   1. プログラムの実行
   2. 練習問題
   3. プログラム終了
   4. リターンコード
   5. PSPアドレスの取得・設定
   6. DTAアドレスの取得・設定
   7. プログラムの実行2
   8. 練習問題2

8. その他のシステムコール
   1. 日付の取得・設定
   2. 時間の取得・設定
   3. 割り込みベクタの設定・取得
   4. ベリファイフラグ
   5. MS-DOSのバージョン取得
   6. 国別情報の取得・設定
   7. CTRL + Cの検査
   8. CTRL + Cの処理

9. EMS
   1. EMSとは
   2. EMSを使用するには
   3. EMSが使用可能か?
   4. EMSのバージョン取得
   5. ページフレームのアドレス取得
   6. 未使用ページ数の取得
   7. アロケート、デアロケート
   8. マップ、アンマップ
   9. ページマップのセーブ、リストア
   10. ハンドル数の取得
   11. ハンドルページの取得
   12. 再アロケート
   13. ハンドル名
   14. その他

10. XMS
   1. XMSとは
   2. XMS使用法
   3. XMSバージョンの取得
   4. HMAとは
   5. HMAの割り当て・解放
   6. A20ラインの設定
   7. EMBとは
   8. EMBの空き容量取得
   9. EMBの割り当て・解放
   10. EMBのコピー
   11. EMBのロック・アンロック
   12. EMBハンドル情報取得
   13. EMBの再割り当て
   14. UMBの割り当て・解放

11. エスケープシーケンス
   1. エスケープシーケンスとは
   2. エスケープシーケンス表

12. 終わりに


・ このページの先頭に戻る
・ トップページに戻る



・ このページの先頭に戻る
・ トップページに戻る

トップ-> アセンブラ 第2章-> 第11章.エスケープシーケンス-> 11-2. エスケープシーケンス表

←前ページへ :  トップへ :  終わりに→



11-2.エスケープシーケンス表

  エスケープシーケンスは、1Bhに続く文字を標準出力に出力することで行います。 この1Bhはアスキーコードでエスケープを表しますので、エスケープシーケンスと呼びます。

  では、実際にどのようなことができるのかを紹介します。

エスケープシーケンス
コード 機 能
ESC[pl;pcH カーソルをpl行pc列に移動する
ESC[pl;pcf カーソルをpl行pc列に移動する
ESC=lc カーソルをl行c列に移動する。ただしlcは20hが加えられた値となる
ESC[pnA カーソルをpn行上の同一列に移動する
ESC[pnB カーソルをpn行下の同一列に移動する
ESC[pnC カーソルをpn文字分右に移動する
ESC[pnD カーソルをpn文字分左に移動する
ESC[0J カーソル位置から最終行の右端まで削除する
ESC[1J 先頭行の左端からカーソル位置まで削除する
ESC[2J 画面全体を消去し、カーソルを左上に移動する
ESC[* 画面全体を消去し、カーソルを左上に移動する
ESC[0K カーソル位置から同一行の右端まで削除する
ESC[1K 同一行の左端からカーソル位置まで削除する
ESC[2K カーソルのある行全て削除する
ESC[pnM カーソル行から下へpn行削除する
ESC[pnL カーソル行から上へpn行削除する
ESCD カーソルをカラム位置はそのままに1行下に移動する。
(カーソルが最下行にある場合は1行スクロールする)
ESCE カーソルを1行下の一番左に移動する。
(カーソルが最下行にある場合は1行スクロールする)
ESCM カーソルをカラム位置はそのままに1行上に移動する。
(カーソルが最上行にある場合は機種依存)
ESC[s カーソル位置と表示文字の属性をセーブする。(機種依存)
ESC[u 上でセーブした内容をロードする。
セーブされていない場合はデフォルトの属性に戻し、一番左上にカーソルを移動する。(機種依存)
ESC)0 漢字モード(日本語モード)にする。(機種依存)
ESC)3 英語モードにする。(機種依存)
ESC[>1l ファンクションキーの内容を画面に表示しない
ESC[>1h ファンクションキーの内容を画面に表示する
ESC[>3n 画面を31行モードにする(PC-9801シリーズのハイレゾモードのみ)
ESC[>3h 画面を20行モードにする(PC-9801シリーズのみ?)
ESC[>3l 画面を25行モードにする(PC-9801シリーズのみ?)
ESC[>5l カーソルを表示させる
ESC[>5h カーソルを非表示にする
ESC[ps;...;psm 文字属性を変更する
;で区切ることで、複数組み合わせることができる。
下表の表示例ではpsを1つだけ用いた表示例です。
psの値内 容表示例
0既定値abc
1ハイライト(モノクロモードのみ)
2縦線も表示
4アンダーラインつきabc
5点滅表示abc
7反転して表示abc
8(または16)不可視abc
30文字色を黒にするabc
31(または17)文字色を赤にするabc
32(または18)文字色を緑にするabc
33(または19)文字色を黄色にするabc
34(または20)文字色を青にするabc
35(または21)文字色を紫にするabc
36(または22)文字色を水色にするabc
37(または23)文字色を白にするabc
40文字を黒反転にするabc
41文字を赤反転にするabc
42文字を緑反転にするabc
43文字を黄色反転にするabc
44文字を青反転にするabc
45文字を紫反転にするabc
46文字を水色反転にするabc
47文字を白反転にするabc

CODE	SEGMENT
	ASSUME	DS:CODE,CS:CODE,ES:CODE,SS:CODE
	.186
	ORG	100h

START:
	mov	ah,9		;テスト表示
	mov	dx,offset _COLOR_UNDER
	int	21h

	mov	ax,0A05h
	call	_LOCATE

	mov	ah,9
	mov	dx,offset _TEST_DATA
	int	21h
EXIT:
	mov	ax,4c00h
	int	21h		;終了


;input ah = x
;input al = y
_LOCATE:
	push	ax		;レジスタ保管
	push	si;
	push	dx;

	push    ax
	mov     si, offset _LOCATE_DATA

	mov	ah, 0		;y座標の計算
	mov	dl,10h
	div	dl
	add	[cs:si+2], al
	add	[cs:si+3], ah

	pop	ax		;x座標の計算
	mov	al,ah
	mov	ah, 0
	div	dl
	add	[cs:si+5], al
	add	[cs:si+6], ah

	mov	ah,9		;表示
	mov	dx, si
	int	21h

	pop	dx
	pop	si
	pop	ax
	ret

_LOCATE_DATA	db	1Bh, '[', 30h, 30h, ';', 30h, 30h, 'H$'
_COLOR_UNDER	db	1Bh, "[4;36mabc", 1Bh, "[0m$";
_TEST_DATA	db	"123$"

	ENDS
	END	START
; 一部のコンパイラでは、
;CODE	ENDS
;	END	START
;と記述しなければいけないようです
abc



         123



←前ページへ :  トップへ :  終わりに→