このファイル: /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