みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

アセンブラについての質問です

学校からの課題でキーボードから1文字入力し、アルファベットの大文字なら小文字に、小文字なら大文字に変換して表示するプログラムでリターンキーが押されるまで繰り返すというもので

mov ah 1
int 21h
sub al '0'
xor al 0dh
mov dl al
add dl '0'
mov ah 2
int 21h
までやってたんですが繰り返しの所がよく分かりません
調べたんですが難しくて分かりませんでした
どなたか、教えて頂けないでしょうか?出来れば、方法だけでなくソースも書いて頂けると有り難いのですが・・・
よろしくお願いします。

投稿日時 - 2014-01-09 23:09:13

QNo.8422655

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

数字や記号はそのまま表示という条件なら

ラベルA
 キーボードから1文字入力
 文字コードがリターンキー(0dh)ならラベルCへ(繰り返し終了)
  文字コードが'A'から'Z'の間なら20h足す     (1)
  文字コードが'a'から'z'の間なら20h引く (2)
 画面へ1文字出力
 ラベルAへジャンプ(繰り返し)
ラベルC
終了

条件ジャンプが多くなりますので、参考URLを見てください。
20h足すとか引くの意味は、文字コード表を見てください。

参考URL:http://softwaretechnique.jp/OS_Development/Tips/IA32_Instructions/Jcc.html

投稿日時 - 2014-01-11 15:51:33

あなたにオススメの質問