p.347
一般にLSBファースト。
; スタックポインタの初期化マクロ .MACRO INITSTACK LDI R20, HIGH(RAMEND) OUT SPH, R20 LDI R20, LOW(RAMEND) OUT SPL, R20 .ENDMACRO INITSTACK ; トランスミッターを有効化して(PD1端子をTXD機能にして)、 LDI R16, 1 << TXEN0 STS UCSR0B, R16 ; 8N1 (8ビットデータ、パリティなし、1ストップビット)にして、 LDI R16, 1 << UCSZ01 | 1 << UCSZ00 ; CSZはCharacter Size。 STS UCSR0C, R16 ; ボーレートを9600にして、 LDI R16, 51 ; == 8MHz/(16*9600)-1 STS UBRR0L, R16 ; BRはBaud Rate。 AGAIN: ; 送受バッファーが空になるまで(UDRE0がセットされるまで)とどまって、 LDS R20, UCSR0A SBRS R20, UDRE0 ; SBRSはSkip if Bit in Register is Set。UDREはUSART Data Register Empty。 RJMP AGAIN ; 何か1文字を送信する。 LDI R16, 'A' ; 0x41, 0b01000001 STS UDR0, R16 ; を繰り返す。 RJMP AGAIN