指定された 1 語中に,指定されたビットパターンと一致するビット列が重複せずに
幾つあるかを検索する副プログラム BPSRCH と,それを呼び出す主プログラム MAIN である。
図 1 に BPSRCH の入出力の関係を示す。
図 1 では“011”の 3 ビットからなるビットパターンを検索している。
01 MAIN START
02 LEA GR1,PARAM
03 CALL BPSRCH
04 EXIT
05 PARAM DC #CDEF
06 DC #0003
07 DC 2
08 BPSRCH PUSH 0,GR2
09 PUSH 0,GR3
10 LEA GR3,16
11 SUB GR3,2,GR1
12 LD GR2,1,GR1
13 SLL GR2,0,GR3
14 ST GR2,SRCHP ; 検索するパターンを格納する
15 LEA GR2,-1
16 SLL GR2,0,GR3
17 ST GR2,MASKP ; マスクパターンを格納する
18 LEA GR3,0
19 LEA GR0,0
20 LD GR2,0,GR1 ; パターンを検索する
21 LOOP ADD GR3,2,GR1
22 CPA GR3,MAXP
23 JPZ RESULT
24 PUSH 0,GR2
25 AND GR2,MASKP
26 CPL GR2,SRCHP ; パターンを比較する
27 JNZ NEXT
28 ADD GR0,ONE
29 POP GR2
30 PUSH 0,GR3
31 LD GR3,2,GR1
32 SLL GR2,0,GR3
33 POP GR3
34 JMP LOOP
35 NEXT SUB GR3,2,GR1
36 LEA GR3,1,GR3
37 POP GR2
38 SLL GR2,1
39 JMP LOOP
40 RESULT POP GR3
41 POP GR2
42 RET
43 ONE DC 1
44 MASKP DS 1
45 SRCHP DS 1
46 MAXP DC 17
47 END