文档详情

《IBM汇编语言教程lec》-课件.ppt

发布:2018-11-08约4.42千字共14页下载文档
文本预览下载声明
* 第13回 文字列操作の プログラミング演習(1) 今日の到達目標 1.入出力動作と文字の表現(復習) 2.逆順への変換(インデックス修飾,文字列の移動, IN/OUT命令) 3.空白の挿入(インデックス修飾,文字列の移動, IN/OUT命令) 4.単語の切り出し(インデックス修飾,文字の判定,文字列の移動,IN/OUT命令) できるだけヒントを見ずにやってみよう * 入出力命令の使い方の例 キーボードから文字列を入力する    IN IBUF,ILEN 読み込んだ文字列はIBUFに,    ??? その文字数はILENに格納される    ??? IBUF DS 256     最大文字数分だけ領域を確保しておく ILEN DS 1 読み込んだ文字数を格納する領域 画面に文字列を出力する    OUT OBUF,OLEN OBUFに格納されている文字列を,    ??? OLENで指定された文字数だけ出力する    ??? OBUF DC ’ASSEMBLER’ 出力する文字列 OLEN DC 9 出力する文字数 入出力動作 ※DC命令を用いて文字定数を宣言したときも,右図のように格納される (前回資料参照) DC ’This is a pen. ’ キーボード ※下位バイトに文字コードが入る。上位バイトはゼロ * 文字の表現:JIS X0201 ? 8ビットコード,(教科書p.216 では下図の赤枠内だけ描かれている) ? 00~7F は,ASCIIコードと同じ.但し 5C と 7Eの記号の形が異なる (円記号/バックスラッシュ,チルダ/直線) (出典) http://www.asahi-net.or.jp/~yw3t-trns/code/jisx0201.html ’0’=#30 ’’=#20 ’A’=#41 半角カナ ’n’=#6E ASCII ’N’=#4E * * 課題13-1 逆順への変換 (1) このプログラムを workd1.cas という名前で作成せよ。 (2) このプログラムをシミュレーション実行し,入力した文字列が逆順で出力されることを確認せよ。  入力装置から20文字以下の文字列を入力し,この文字列を逆順に変換した文字列を出力装置に出力するプログラムを作成せよ。  例えば,という文字列を入力すると,という文字列が出力される。 できるだけヒントを見ずにやってみよう ファイル名 workd1.cas 0 1 2 3 4 5 6 7 7 6 5 4 3 2 1 0       指標GR1(初期値:0)           ↓ 入力文字列               (IBUF)                           0  1  2  3  4  5  6  7 出力文字列        (OBUF)                                         ↑                     指標GR2(初期値:入力文字数-1) ヒント: 入力領域用の指標(初期値:0)で1文字読み出し、その1文字を出力領域用の指標(初期値:入力文字数-1)で書き込んでいく。 この操作を指標をずらしながら、入力文字数だけ繰り返す 各領域用の指標の 初期値と増減に注意 * 逆順への変換 フローチャート 文字列の入力 WORKD1 入力領域用の指標 : 0 出力領域用の指標: 入力文字数-1 NO YES 文字列の出力 NO 各20語の入力領域と出力領域を宣言しておく IBUF DS 20 OBUF DS 20 RETURN 入力領域から1文字読み出す その1文字を出力領域へ書き込む 出力領域の指標=-1? 入力領域用の指標を+1 出力領域用の指標を-1 * 課題13-2 空白の挿入 (1) このプログラムを workd2.cas という名前で作成せよ。 (2) このプログラムをシミュレーション実行し,入力された16桁の2進数の4個に1個空白が挿入された文字列が出力されることを確認せよ。  入力装置から16桁の2進数(文字 ’0’か ’1’が16個並んだ文字列)を入力し,この文字列の4個に1個空白(スペース)を挿入し、出力装置に出力するプログラムを作成せよ。  例えば,’0000111100001111’という16文字の文字列を入力すると, ’0000 1111 0000 1
显示全部
相似文档