Skin:
[NORMAL]
[BLUE] [DOS] [LIGHT]  / コピーするための表示 / 実行
このファイル: /home/web6047/www/cgi-bin/prj/20190429-CASLII/20190429-WCASL-II 1.08/_work/20190502-P267-1.cas
1 ;練習問題: KEYの値がDATA以降にあるかどうか、ある場合にはそのアドレスを求めるプログラムを作成しなさい
2
3 SAMPE START
4 LD GR0,KEY
5 LAD GR1,DATA
6 LAD GR2,DEND
7 CALL SEARCH
8 RET
9 KEY DC 38
10 DATA DC 15
11 DC 22
12 DC 24
13 DC 32
14 DC 38
15 DEND DC 42
16 END
17 SEARCH START
18 PUSH 0,GR3
19 LOOP LD GR3,GR2 ;中央付近を求めたい
20 SUBA GR3,GR1
21 JMI FINISH ;GR1>GR2で範囲矛盾にてKEY存在しない
22 SRL GR3,1 ;÷2
23 ADDA GR3,GR1 ;中央付近のアドレス
24 CPA GR0,0,GR3
25 JZE FINISH ;中央付近のデータがKEYである
26 JPL KOU ;KEYのほうが大きいなら後半を
27 LAD GR2,-1,GR3 ;前半を範囲とする
28 JUMP LOOP
29 KOU LAD GR1,1,GR3 ;後半を範囲とする
30 JUMP LOOP
31 FINISH LAD GR0,0,GR3
32 POP GR3
33 RET
34 END