1 MAIN START 2 LAD GR3,0 ; Xのインデックス 3 LOOPX CPA GR3,XCNT ; (GR3 = XCNT)の場合、ループ脱出 4 JZE FIN ; ↓ 5 LD GR1,X,GR3 ; GR1に、(X+GR3)番地の値を転送 6 LAD GR4,0 ; Yのインデックス 7 LOOPY CPA GR4,YCNT ; (GR4 = YCNT)の場合、ループ脱出 8 JZE XNEXT ; ↓ 9 LD GR2,Y,GR4 ; GR2に、(X+GR4)番地の値を転送 10 CALL OUTL ; GR1の数値を出力 11 PUSH 0,GR1 ; GR2の数値を出力 12 LD GR1,GR2 ; ↓ 13 CALL OUTL ; ↓ 14 POP GR1 ; ↓ 15 CALL MULL ; GR0 <- GR1 * GR2 16 JOV WOV ; オーバーフローの場合は、WOVへジャンプ 17 PUSH 0,GR1 ; GR0の数値を出力 18 LD GR1,GR0 ; ↓ 19 CALL OUTL ; ↓ 20 POP GR1 ; ↓ 21 YNEXT OUT SEP,SLEN ; 区切り線を出力 22 LAD GR4,1,GR4 ; GR4 <- GR4 + 1 23 JUMP LOOPY ; LOOPYへジャンプ 24 WOV OUT YOMSG,YLEN ; オーバーフローした場合のメッセージを表示 25 JUMP YNEXT ; YNEXTへジャンプ 26 XNEXT LAD GR3,1,GR3 ; GR3 <- GR3 + 1 27 JUMP LOOPX ; LOOPXへジャンプ 28 FIN RET 29 X DC 0,1,2,127,128,255,256,257,32767,#8000,#FFFF 30 Y DC 0,1,2,127,128,255,256,257,32767,#8000,#FFFF 31 XCNT DC 11 32 YCNT DC 11 33 SEP DC '--------------------' 34 SLEN DC 20 35 YOMSG DC 'Warning: overflow' 36 YLEN DC 17 37 END