このページをはてなブックマークに追加このページを含むはてなブックマーク このページをlivedoor クリップに追加このページを含むlivedoor クリップ

目次

入出力命令

 マクロ命令は目的の機能を果たす命令群を生成する命令である。CASL兇任脇出力を行うIN命令とOUT命令、レジスタの退避と復元を行うRPUSH命令とRPOP命令の4つしかない*1

IN(INput:イン)

IN ラベル1,ラベル2

文字列を入力する

あるいは

ラベル1番地からM(ラベル2)分の文字を入力

OUT(OUTput:アウト)

OUT ラベル1,ラベル2

文字列を出力する

あるいは

ラベル1番地からM(ラベル2)分の文字を出力

EOF

 ファイルから読み込むレコードがなくなった場合(EOF=End Of File)は、入力文字数が-1になる。そこで、ループの中にJMI命令を指定しておけば、レコードがなくなったときに抜け出すことができる。フロチャートにすると次のような感じになる。

例:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
REIB2006  START     
          LAD       GR0,0
          LAD       GR1,1
LOOP      IN        INDATA,INLENG
          LD        GR3,INLENG
          JMI       EXIT
          OUT       INDATA,INLENG
          ADDA      GR0,GR1
          JUMP      LOOP
EXIT      LD        GR2,ZERO
          ADDL      GR0,GR2
          ST        GR0,KENSUU
          OUT       OUTDATA,OUTLENG
          RET       
INDATA    DS        256
INLENG    DS        1
OUTDATA   DC        '***REC='
KENSUU    DS        1
          DC        '***'
OUTLENG   DC        11
ZERO      DC        '0'
          END       

参考文献

  • 『情報処理試験 CASLII 〜CASLIIの講義と実習〜 [第2版]』


*1 他のアセンブラはユーザーがマクロを定義できたりする