![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
次のプログラムに、
指定された整数値配列の中から最大値を調べるサブルーチンMAXを作成する、
指定された整数値配列の中から最小値を調べるサブルーチンMAXを作成する、
指定された整数値配列を昇順にソートするサブルーチンSORTを作成する、
指定された整数値配列の平均値(整数値)を調べるサブルーチンAVEを作成する、
これらについて教えてください。
PGM START
LAD GR1, DATA
LD GR2, =10
CALL SUM
ST GR0, RESULT
RET
DATA DC 1,9,3,7,5,10,2,8,4,6
RESULT DS 1
END
SUM START
PUSH 0, GR1
PUSH 0, GR7
LD GR0, =0
LD GR7, =0
MAIN CPA GR7, GR2
JZE QUIT
ADDA GR0, 0, GR1
LAD GR1, 1, GR1
LAD GR7, 1, GR7
JUMP MAIN
QUIT POP GR7
POP GR1
RET
END
GR1はデータの先頭番地、SUMをコールするとGR1が1ずつ加算されてデータが参照できる。
GR2はデータの個数、ラベルMAINで個数を比較している。
などのことはわかるのですが、
プログラムを作るとなるとまったくわかりません。
どなたか教えていただけませんか??
お願いします!!
No.1ベストアンサー
- 回答日時:
回答がないので調べてみました。
アセンブルは下記を使用しました。バグがあるようなのと知らないのであまり自信がありません。http://www.chiba-fjb.ac.jp/fjb_labo/casl/index.h …
PGM START
LAD GR1, DATA
LD GR2, =10
CALL SUM
ST GR0, RESULT
CALL AVE
ST GR7,WK2
CALL MAX
ST GR0,WK3
DUMP RESULT,3 ;システムコール、結果の確認
RET
DATA DC 1,9,3,7,5,10,2,8,4,6
RESULT DS 1
WK2 DS 1
WK3 DS 1
SUM
PUSH 0, GR1
PUSH 0, GR7
LD GR0, =0
LD GR7, =0
MAIN CPA GR7, GR2
JZE QUIT
ADDA GR0, 0, GR1
LAD GR1, 1, GR1
LAD GR7, 1, GR7
JUMP MAIN
QUIT POP GR7
POP GR1
RET
;---------------------
; 割り算
; GR7=GR0/GR2
;HOLD : GR1-GR6
;---------------------
AVE
LD GR7,=0
LOOP2
SUBA GR0,GR2
JMI QUIT2
LAD GR7,1,GR7
JUMP LOOP2
QUIT2
RET
;-----------------------------
; 最大値の検索
; IN : GR1=DATA TOP
; : GR2=DATA SU
;HOLD : GR1-GR6
;---------------------
MAX
PUSH 0,GR1
LD GR0,0,GR1
LD GR7,=0
LOOP3
LAD GR7,1,GR7
CPA GR7,GR2
JZE QUIT3
LAD GR1,1,GR1
CPA GR0,0,GR1
JPL LOOP3
LD GR0,0,GR1
JUMP LOOP3
QUIT3
POP GR1
RET
END
;--------------
; 以下はソート
;--------------
PGM START
LAD GR1, DATA
LD GR3, =10 ;DATA SU
CALL SORT
DUMP DATA,10 ;システムコール、結果の確認
RET
DATA DC 1,9,3,7,5,10,2,8,4,6
;-------------------------------------
; バブルソート
; IN : GR1=DATA TOP
; : GR3=DATA SU
; WORK : GR2=比較用 DATA TOP
; : GR4=SWAP用WORK
; : GR6=基準データ数カウンタ
; : GR7=比較データ数カウンタ
;DESTORY : GR3,GR5以外すべて
;-------------------------------------
SORT
LD GR6, =0 ;I=0
FOR_I
LAD GR2,0,GR1 ;D[I]=D[J] DATA TOP アドレスを同じにする
LAD GR6,1,GR6 ;I=I+1
CPA GR6, GR3
JZE QUIT ;I==DATA SU
LD GR7,GR6 ;J=I
FOR_J
LAD GR7,1,GR7 ;J=J+1
LAD GR2, 1, GR2 ;D[J] 比較用のデータアドレスを進める
LD GR0,0,GR2 ;GR0=D[I]
CPA GR0,0,GR1
JPL NEXT ;D[J]>D[I] 順の入れ替え不要
JZE NEXT ;D[J]=D[I] ”
LD GR5,GR0 ;GR5=D[J]
LD GR0,0,GR1 ;GR0=D[I]
ST GR0,0,GR2 ;D[J]=GR0
ST GR5,0,GR1 ;D[I]=GR5 SWAP D[I],D[J]
NEXT
CPA GR7, GR3
JMI FOR_J ;J<DATA SU
LAD GR1,1,GR1 ;D[I]のアドレスをつぎの配列に進める
JUMP FOR_I
QUIT
RET
END
丁寧で迅速な説明、ありがとうございます!!
今更なんですが、問題にへんなところがありました。。
最小値のほうのサブルーチンはMAXではなくてMINですね。。
ごめんなさい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# 【CASLプログラム】 定数(80と55)を確保し、その和をGR1に、その差をGR2に求めるCASL 1 2022/12/16 01:17
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# プログラミングを教えて欲しいです。 配列aは、int a[9]={7,6,12,8,3,5,10,9 4 2022/12/19 23:27
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- 英語 There are various anatomical and mucogingival cond 3 2022/05/05 10:28
- Ruby 初心者プログラミング 3 2022/10/12 11:31
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- F1・モータースポーツ SUPER GT 2022 SERIES | トヨタ自動車 GT500 編 1 2022/05/15 04:04
- デジタルカメラ 手持ちのRICOH GR DigitalをWebカメラとして使いたい。 2 2023/07/25 07:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
例外処理のフローチャートの記...
-
Excel VBAで、ユーザーフォー...
-
fortran95実行エラー
-
ExcelVBA AddinでOnAction
-
サブルーチンに引数を2つ以上...
-
GOSUB命令とは
-
プログラムの可読性が悪いです...
-
与えられた正整数が素数なら1を...
-
use baseしたpackageのローカル...
-
初歩的な質問なのですが、サブ...
-
smallbasic について教えてくだ...
-
モジュールとサブルーチン
-
グラフのX,Y座標を取得したい
-
ユーザー定義関数に#NAME?が返...
-
Excel VBAでリンク切れをチェッ...
-
「デバイスは PRN を初期化でき...
-
文章の分割
-
VBでグローバル変数を宣言するには
-
Excel VBA 『Call』で呼び出す...
-
Perlソースコードをコンパイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
例外処理のフローチャートの記...
-
Excel VBAで、ユーザーフォー...
-
”:”がいっぱいの文について。
-
モジュールとサブルーチン
-
オフコン(富士通Kシリーズ)...
-
ExcelVBA AddinでOnAction
-
ACCESSのVBAでPrivate Sub ~en...
-
Attempt to free unreferenced ...
-
VBAで2重のDoLoop関数から抜け...
-
COBOLで、Shellを起動するには?
-
GOSUB命令とは
-
サブルーチンを認識しません。
-
同じコンボボックス、リストボ...
-
配列と互換性のない型の要素に...
-
サブルーチンを外部ファイルで...
-
Perlのスレッド?
-
サブルーチンの中にサブルーチ...
-
初心者です。Perlではどんな時...
-
プログラミング Fortran
-
サブルーチンを使った再帰的な...
おすすめ情報