问答题 两台微机之间按RS-232C标准协议使用COM1进行串行通信,构成一个字符或数据的各位按时间先后,从低位到高位一位一位地传送。
【正确答案】程序如下:
STACK     SEGMENT PARASTACK'STACK'
         DB 256 DUP(0)
STACK     ENDS
CODE      SEGMENT PARA PUBLIC'CODE'
START     PROC FAR
         ASSUME CS:CODE
         PUSH DS
         MOV AX,0
         PUSH AX
         MOV DX,3FBH
         MOV AL,80H
         OUT DX,AL
         MOV DX,3F8H
         MOV AL,12
         OUT DX,AL
         INC DX
         MOV AL,0
         OUT DX,AL
         MOV DX,3FBH
         MOV AL,0AH
         OUT DX,AL
         MOV DX,3FCH
         MOV AL,03H
         OUT DX,AL
         MOV DX,3F9H
         MOV AL,0
         OUT DX,AL
FOREVER: MOV DX,3FDH
         IN AL,DX
         TEST AL,1EH
         JNZ ERROR
         TEST AL,01H
         JNZ RECEIVE
         TEST AL,20H
         JZ FOREVER
         MOV AH,1
         INT 16H
         JZ FOREVER
         MOV AH,0
         INT 16H
         MOV DX,3F8H
         OUT DX,AL
         MOV AH,2
         MOV DL,AL
         INT 21H
         CMP AL,27
         JNZ NEXT
         MOV AH,4CH
         INT 21H
NEXT:    JMP FOREVER
RECEIVE: MOV DX,3F8H
         IN AL,DX
         AND AL,7FH
         CM PAL,27
         JNZ DISP
         MOV AH,4CH
         INT 21H
DISP:PUSH AX
         MOV BX,0
         MOV AH,14
         INT 10H
         POP AX
         CMP AL,0DH
         JNZ FOREVER
         MOV AL,0AH
         MOV BX,0
         MOV AH,14
         INT 10H
         JMP FOREVER
ERROR:   MOV DX,3F8H
         IN AL,DX
         MOV AL,'?'
         MOV BX,0
         MOV AH,14
         INT 10H
         JMP FOREVER
START     ENDP
CODE      ENDS
         END START
【答案解析】