最大値とその個数を求めるようにしたい
問題点
最大値は出るがその個数が出ない
出来ている部分
loopをふたつ作りloop2に最大値の個数カウンターのコードがわからない。
MAIN START ;
LD GR1,KOSUU ; GR1=4
LAD GR2,DATA ; GR2=address of DATA
LAD GR3,MAX ; GR3=address of MAX
LAD GR6,MAX ; GR6=address of MAX_num
CALL SAIDAI ;
RET ;
KOSUU DC 5 ; 定数 4. 0 番目から数えた個数
DATA DC 11,16,9,19,8 ; 定数の配列
MAX DS 1 ; 変数 max
END ; main 関数終了
SAIDAI START
PUSH 0,GR1 ;KOSUU
PUSH 0,GR2 ;&data[0]
PUSH 0,GR3 ;&max
PUSH 0,GR4 ;counter
PUSH 0,GR5 ;配列データの格納のため利用
PUSH 0,GR6 ;max_num
PUSH 0,GR7 ;max_numの格納に使用
LAD GR4,0 ; GR4=0 LD GR5,0,GR2 ; GR5=data[0] ST GR5,0,GR3 ; max=GR5
LOOP1 LAD GR2,1,GR2 ; data=data+1
LAD GR4,1,GR4 ; counter=counter+1
LD GR5,0,GR2 ; GR5=*data
CPA GR5,0,GR3 ; 比較:GR5 - MAX を計算
JMI SKIP ; Jump on minus
ST GR5,0,GR3 ; MAX=GR5
LOOP2 ST
ST GR7,0,GR6 ; MAX=GR6
SKIP CPA GR1,GR4 ; 比較:KOSUU-counter を計算
JPL LOOP ; Jump on plus
POP GR7 ;
POP GR6 ;
POP GR5 ;
POP GR4 ;
POP GR3 ;
POP GR2 ;
POP GR1 ;
RET ;
END
あなたの回答
tips
プレビュー