串行口中断服务程序自发自收数据,初始时发送数据个数在NUM变量,发送数据块首地址在TXBUF变量,接收数据块首地址在RXBUF变量。请写出号码处语句的操作和在程序中的作用。
AL EQU 26H NUM EQU 28H
SPTEMP EQU 30H ;注:SBUF
EQU 07H
TXBUF EQU 32H ;注:JBS
若指定位=1 跳转
RXBUF EQU 34H ;注:JBC
若指定位=0 跳转
Sp_int:
PUSHF ;①
LDB SPTEMP, SPSTAT ;
JBS SPTEMP , 5, TX ;
Next:
JBS SPTEMP , 6, RX ;
Return:
CLRB SPTEMP
POPF
RET
Tx:
DECB NUM ;
JE next ;②
LDB SBUF, [TXBUF]+ ;③
SJMP next ;④
rx:
JBS SPTEMP, 7, return ;
LDB AL, SBUF ;⑤
STB AL, [RXBUF] ;
SJMP return
感谢回答 |