トップ->アセンブラ入門

あなたは

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

アセンブラ入門内検索

目次
アセンブラトップ
0. はじめに

1. 基礎
   1. レジスタとは
   2. セグメントとは

2. MOV命令
   1. MOV命令
   2. コンパイル
   3. 即値の転送
   4. メモリーへの転送
   5. データ定義疑似命令
   6. 練習問題

3. 算術演算
   1. 符号なし演算と符号付き演算
   2. 足し算
   3. 練習問題
   4. フラグ
   5. 引き算
   6. かけ算
   7. わり算
   8. INC,DEC

4. 分岐
   1. 無条件分離
   2. 比較命令
   3. 条件分離
   4. 練習問題
   5. ループ
   6. サブルーチン
   7. スタックとは
   8. PUSH,POP
   9. 練習問題

5. 論理演算
   1. AND命令
   2. OR命令
   3. XOR命令
   4. NOT命令
   5. NEG命令
   6. TEST命令
   7. 練習問題

6. シフト演算
   1. シフト
   2. ローテート
   3. 練習問題1
   4. 練習問題2

7. ストリング命令
   1. ストリング命令とは
   2. MOVS?
   3. REP
   4. DFの設定
   5. LODS?
   6. STOS?
   7. SCAS?
   8. CMPS?
   9 .練習問題

8. 入出力
   1. 概要
   2. IN命令
   3. OUT命令
   4. INS,OUTS命令

9. その他
   1. LEA
   2. XCHG
   3. NOP

10. 割り込み
   1. 割り込みとは
   2. ソフトウェア割り込み
   3. ハードウェア割り込み
   4. 割り込みベクター
   5. 割り込み処理の作り方
   6. 練習問題

11. レジスタの型変換(キャスト)

12. 卒業試験
   1. 卒業試験
   2. 画像データの格納形式
   3. インラインアセンブラ
   4. ネガポジ反転
   5. 明るくする、暗くする
   6. グレースケール
   7. 二値化
   8. 上下反転、左右反転
   9. 4分割
   10. モザイク
   11. シャープ
   12. ぼかし
   13. エンボス
   14. ディザ拡散
   15. 鉛筆を置いてください

13. 終わりに

文字コード

アセンブラ 〜MS-DOSの世界〜


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



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

トップ-> アセンブラ入門:6章.シフト演算-> 6-3.練習問題1

←問題へ :  トップへ :  次の問題へ→



6-3.練習問題1

問題
キーボードから1文字入力し、その文字コードと、その文字コードを左右反転させた 文字コードを表示せよ。
例:'A'を入力したら、「A:41h->82h」と表示する。


START:
	mov	ah,1
	int	21h		;入力
	push	ax		;入力文字ストック
	push	ax

	mov	ah,2
	mov	dl,':'
	int	21h		;出力
	pop	ax

	call	BYTEHEX
	call	DISP
	mov	ah,2
	mov	dl,'h'
	int	21h
	mov	ah,2
	mov	dl,'-'
	int	21h
	mov	ah,2
	mov	dl,'>'
	int	21h

	pop	ax		;入力文字ポップ
	call	REVERSE		;逆にする
	mov	al,dl
	call	BYTEHEX
	call	DISP

	mov	ax,4c00h
	int	21h		;終了

DISP:				;AH,ALを表示
	mov	dx,ax
	push	dx
	mov	dl,dh
	mov	ah,2
	int	21h		;10hの位表示
	pop	dx
	mov	ah,2
	int	21h		;1hの位表示
	ret

BYTEHEX:				;ALを表示できるように変換し、
				;AHとALに格納する
	mov	ah,al
	shr	ah,4
	and	ax,0000111100001111b
	add	ax,3030h
	cmp	ah,'9'
	jbe	BYTEHEX_1
	add	ah,7
BYTEHEX_1:
	cmp	al,'9'
	jbe	BYTEHEX_2
	add	al,7
BYTEHEX_2:
	ret

REVERSE:
	mov	cx,8
REVERSE_1:
	sal	al,1
	rcr	dl,1
	loop	REVERSE_1
	ret	


←問題へ :  トップへ :  次の問題へ→