マイクロマシン実験--シリアル通信(内輪自発自収)
1248 ワード
//テーマ:マイクロマシンシステムシリアルポートの知識を運用し、マイクロマシンシステムシリアルポートのテストを行う.ハードウェアテスト環境を完了します.プログラムを作成してマイクロマシンシステムのシリアルポートに対して自発的に自収する内環テストを行う.データ送信はキーボードから入力し、受信データは画面に表示されます.
多くないBB、直接コードに行きます
入力サンプル123$出力サンプル123
多くないBB、直接コードに行きます
.586
DATA SEGMENT USE16
BUF DB 30 DUP(?)
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
CALL I8250 ; 8250
MOV BX, OFFSET BUF
SEND:MOV DX, 3FDH
IN AL, DX
TEST AL, 20H
JZ SEND
MOV DX, 3F8H
MOV AH, 1
INT 21H
CMP AL, '$'
JZ COUT
OUT DX, AL
RECE:MOV DX, 3FDH
IN AL, DX
TEST AL, 01H
JZ RECE ;
MOV DX, 3F8H
IN AL, DX
AND AL, 01111111B
CMP AL, 03H
JZ EXIT
MOV [BX], AL
INC BX
JMP SEND
COUT:MOV AH, 2
MOV DL, 0AH
INT 21H ;
MOV BYTE PTR [BX+1], '$'
MOV AH, 09H
MOV DX, OFFSET BUF
INT 21H ;
EXIT:MOV AH,4CH
INT 21H ;
I8250 PROC
MOV DX, 3FBH
MOV AL, 80H
OUT DX, AL
MOV DX, 3F9H
MOV AL, 0
OUT DX, AL
MOV DX, 3F8H
MOV AL, 30H
OUT DX, AL
MOV DX, 3FBH
MOV AL, 0AH
OUT DX, AL
MOV DX, 3F9H
MOV AL, 0
OUT DX, AL
MOV DX, 3FCH
MOV AL, 10H
OUT DX, AL
RET
I8250 ENDP
CODE ENDS
END START
入力サンプル123$出力サンプル123