1
8051と外部デバイスの間のシリアル通信用の部分コードが記載されていますが、サブルーチンX00D6についてはわかりません。コードはR7をFFに設定してから0と比較するため、プログラムはどのようにループから抜け出すのですか? P0を#10に設定してから0に設定するとどうなりますか? P0はR7にどのように関連していますか? R7はちょうど残りのコードでレジスタとして使われているようです。8051マイクロコントローラシリアルポートのループ(P0を使用)
mov r7,#0ffh ; 00cf 7f ff
mov sbuf,a ; 00d1 f5 99
acall X00d6 ; 00d3 11 d6
ret ; 00d5 22
X00d6:
mov p0,#10h ; 00d6 75 80 10
mov p0,#0 ; 00d9 75 80 00
cjne r7,#0,X00d6 ; 00dc bf 00 f7
ret ; 00df 22