LoginSignup
0
0

More than 1 year has passed since last update.

インタープリタを作る その30

Last updated at Posted at 2021-06-25

概要

インタープリタを作ってみた。
avrインタープリター書いてみた。
アセンブラで数値表示bin2ascii書いてみた。

考え方

8bitなので、0から255を表示する。
100で、割れるなら、割って、カウント
もう一回、やる。
カウントに0x30足して、出力。
10で、割れるなら、割って、カウント
9回、やる。
カウントに0x30足して、出力。
残った数に0x30足して、出力。
レジスタ17、18、19は、破壊する。
入力は、レジスタ16。

サンプルコード

avr.ldi(16, 255)
avr.ldi(17, 0x00)
avr.ldi(19, 0x30)
avr.cpi(16, 100)
avr.brcc(2)
avr.inc(17)
avr.subi(16, 100)
avr.cpi(16, 100)
avr.brcc(2)
avr.inc(17)
avr.subi(16, 100)
avr.cpi(17, 0x00)
avr.breq(2)
avr.add(17, 19)
avr.out(0, 17)
avr.ldi(17, 0x00)
avr.ldi(18, 0x00)
avr.cpi(16, 10)
avr.brcc(2)
avr.inc(17)
avr.subi(16, 10)
avr.inc(18)
avr.cpi(18, 0x09)
avr.brne(-7)
avr.add(17, 19)
avr.out(0, 17)
avr.add(16, 19)
avr.out(0, 16)



成果物

以上。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0