IBM汇编语言教程 lec11.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IBM汇编语言教程 lec11

* 第11回 テーブル操作の プログラミング演習(2) 今日の到達目標 1.テーブル中の数値の大小比較と交換 2.交換ソート (指標レジスタの利用,大小比較,データの交換,条件判定) 3.テーブル中の数値の最大値探索 4.選択ソート (複数のループ変数,条件判定) できるだけヒントを見ずにやってみよう * テーブル中の数値の 大小比較と交換  ラベルTABLEで確保された8語の領域中のI番目(0≦I≦7)の数値とJ番目(0≦J≦7)の数値を算術比較し,もしI番目の方が大きければ何もせず,もしI番目の方が小さければ数値を入れ替えるプログラムを作成せよ。 なお,指標 IとJ にはそれぞれ GR1,GR2 を使用するものとし,これらに適当な値を設定して正しく動作するか確かめよ。  10 5 24 3 73 9 18 1  例えば,ラベルTABLEで確保された10語の領域に 10, 5, 24, 3, 73, 9, 18, 1 が格納されているとし,GR1(I)=1,GR2(J)=6の場合, 1番目の値(5)は6番目の値(18)よりも小さいので数値を交換する TABLE 6 10 18 24 3 73 9 5 1 0   1   2   3   4    5   6   7  番目 TABLE 1 GR2 (J) GR1 (I) * テーブル中の数値の 大小比較と交換 TBLCMP START LAD GR1,1 ; GR1: 指標Iの値 LAD GR2,6 ; GR2: 指標Jの値 ; LD GR3,TABLE,GR1 ; GR3 - TABLEのI番目のデータ LD GR4,TABLE,GR2 ; GR4 - TABLEのJ番目のデータ CPA GR3,GR4 JPL SKIP ; GR3 GR4 ならばSKIPへ JZE SKIP ; GR3 = GR4 ならばSKIPへ ; ST GR3,TABLE,GR2 ; GR3 - TABLEのJ番目に格納 ST GR4,TABLE,GR1 ; GR4 - TABLEのI番目に格納 ; SKIP RET ; TABLE DC 10,5,24,3,73,9,18,1 ; 8個のデータ END * 課題11-1 交換ソート (1) まずは前ページに示したTBLCMPを作成,デバッグ実行し,GR1, GR2 に設定した値応じて、適切にデータ交換が行われることを確認せよ。 (2) 上記のTBLCMPを修正して、本課題のプログラムを workb1.cas という名前で作成する。 (3) このプログラムをデバッグ実行し,実行後にラベルTABLEで確保された領域の内容が 大きい順番(降順)になっていることを確認せよ。  ラベルTABLEで確保された8語の領域に格納されている符号つき数値を“交換法”によって,大きい順番(降順)に並べ替えるプログラムを作成せよ。 交換法:  テーブルの先頭から最後まで,順番に隣り合った2つの要素の大小比較を行い,降順になっていない場合,それらの要素を入れ替える。 テーブルの先頭から最後まで比較していく中で,一回でも交換があった場合は,またテーブルの先頭から繰り返して行い,一度も交換が無くなれば終了する。 10 5 24 3 73 9 18 1 左から順番に7回の比較を行い,降順でなければ交換する。 この操作を一度も交換が無くなるまで,最初から繰り返す。 ①  ②  ③  ④  ⑤  ⑥  ⑦  交換があったかどうかはFLAGに記憶する ファイル名 workb1.cas * 交換ソートのアルゴリズム I=7? J ← I+1 GR3 ← TABLE(I) GR4 ← TABLE(J) WORKB1 RETURN YES NO GR3≧GR4? FLAG=0? GR3 → TABLE(J) GR4 → TABLE(I) FLAG  ← 1 FLAG ← 0 I ← 0 I ← I+1 NO NO YES YES FLAGはメモリデータとしても良いし,使っていない レジスタを使用しても良い。 例えば,FLAG ? GR0, I ? GR1,J ? GR2 とする 隣り合うデータが降順になっていなかったので,データの交換を行う。このとき,FLAGを1にセットする LOOP1 LOOP2 SKIP LAST この部分は前述のTBLCMPと同様の処理をしている * 課題11-1の補足 このソートはバブルソートの一種(バブルソートには様々なバリエーションがある). 少し発展的な参考 第10回のテーブル処理と同様のコーディングのほかに,下記のようなコーディング方法

文档评论(0)

zw4044 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档