ネットワークコネクタ近くに実装されているLED13という赤いLEDを1秒おきに点滅させます。
LED13はPORTBの第7桁です。1を書き込むと点灯、0で消灯になります。
複数本のデジタル出力が1つのアドレスに同居していますのでちょっと面倒な、回りくどい手順ー読んで、書き換えて、書くーが必要です。まあそれでも3ステップなので、ここはその面倒さをあえて感じていただければと思います。
世の中のCPUではこのような操作を1ステップでできる命令が備わっているのが一般的です。(内部ではこれと同じことをやっています。)
.list ;--- ; A Sample Code of Digital I/O Manipulation ;--- dem_cseg main: 0000 38 46 IN 46 ; read DDRB 0002 87 27 MASK 2, 7 ; set 2(output) to digit 7 for LED13 0004 39 46 OUT 46 ; write DDRB loop: 0006 38 48 IN 48 ; read PORTB 0008 87 17 MASK 1, 7 ; set 1(light-on) to digit 7 0010 39 48 OUT 48 ; write PORTB 0012 30 10 LDI.b 10 ; 10*0.1s=1s 0014 64 20 SYS sys_pause ; pause 0016 38 48 IN 48 ; read PORTB 0018 87 07 MASK 0, 7 ; set 0(light-off) to digit 7 0020 39 48 OUT 48 ; write PORTB 0022 30 10 LDI.b 10 ; 10*0.1s=1s 0024 64 20 SYS sys_pause ; pause 0026 61 22 JB loop