// ソフトウェアによるシリアル送信(INDFの内容を PORTE の bit0 を使って送信する)
// start bit と準備
rrf PORTE, w // PORTE の内容を一ビット右にシフトして w へ
movwf SS_WORK // その内容をテンポラリへ
bcf PORTE, 0 // スタートビット送信
// bit 7
rlf INDF, f // INDF の内容を左シフトしてはみ出たビットをCに. 結果は INDF に書き戻す
rlf SS_WORK, w // SS_WORK の内容を左シフトし、最下位ビットに C を入れ、結果は書き戻さずに w に入れる
movwf PORTE // w の内容を PORTE に出力
// bit 6
rlf INDF, f
rlf SS_WORK, w
movwf PORTE
// bit 5
rlf INDF, f
rlf SS_WORK, w
movwf PORTE
// bit 4
rlf INDF, f
rlf SS_WORK, w
movwf PORTE
// bit 3
rlf INDF, f
rlf SS_WORK, w
movwf PORTE
// bit 2
rlf INDF, f
rlf SS_WORK, w
movwf PORTE
// bit 1
rlf INDF, f
rlf SS_WORK, w
movwf PORTE
// bit 0
rlf INDF, f
rlf SS_WORK, w
movwf PORTE
// stop bit
nop
nop
bsf PORTE, 0