最終更新日 2003年9月4日
* | 500 個の素数の表の印刷 PRIME.PRO | ||
* | |||
L | EQU | 500 | これから探す素数の個数 |
PRINTER | EQU | 18 | 印字機の機番 |
PRIME | EQU | -1 | 素数表の記憶領域 |
BUF0 | EQU | 800 | BUFFER[0] の記憶領域 |
BUF1 | EQU | BUF0+25 | BUFFER[1] の記憶領域 |
ORIG | 600 | ||
START | IOC | 0(PRINTER) | 改頁 |
LD1 | =1-L= | P1. 表の作成開始. J<--1. | |
LD2 | =3= | N<--3. | |
2H | INC1 | 1 | P2. N は素数, J<--J+1. |
ST2 | PRIME+L,1 | PRIME[J]<--N. | |
J1Z | 2F P3. すでに 500 個見つけたか. | ||
4H | INC2 | 2 | P4. N を進める. |
ENT3 | 2 | P5. K<--2. | |
6H | ENTA | 0 | P6. PRIME[K] | N か. |
ENTX | 0,2 | ||
DIV | PRIME,3 | ||
JXZ | 4B | R=0 か. | |
CMPA | PRIME,3 | P7. PRIME[K] の方が大きいか. | |
INC3 | 1 | P8. K を進める. | |
JG | 6B | Q>PRIME[K] なら飛び越し, | |
JMP | 2B | さもなければ N は素数. | |
2H | OUT | TITLE(PRINTER) | P9. 見出しの印刷 |
ENT4 | BUF1+10 | Set B<--1. | |
ENT5 | -50 | Set M<--0. | |
2H | INC5 | L+1 | M を進める. |
4H | LDA | PRIME,5 | P10. 一行分の印刷内容を入れる. |
CHAR | |||
STX | 0,4(1:4) | ||
DEC4 | 1 | ||
DEC5 | 50 | (正の範囲で rI5 の内容が 50 個ずつ減る) | |
J5P | 4B | ||
OUT | 0,4(PRINTER) | P11. 一行印刷. | |
LD4 | 24,4 | 緩衝領域の切替. | |
J5N | 2B | rI5=0 なら完了. | |
HLT | |||
* | INITIAL CONTENTS OF TABLES AND BUFFERS | ||
ORIG | PRIME+1 | ||
CON | 2 | 最初の 2. | |
ORIG | BUF0-5 | ||
TITLE | ALF | FIRST | 表題の文字情報. |
ALF | FIVE | ||
ALF | HUND | ||
ALF | RED P | ||
ALF | RIMES | ||
ORIG | BUF0+24 | ||
CON | BUF1+10 | 各緩衝領域が他の緩衝領域を参照. | |
ORIG | BUF1+24 | ||
CON | BUF0+10 | ||
END | START | 終わり. |