📄 双机串口通信.txt
字号:
.386
DATAS SEGMENT
DATAS ENDS
STACKS SEGMENT
DW 200 DUP(0)
STACKS ENDS
CODES SEGMENT USE16
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
L1:
MOV DX,3FBH ;初始化传输线控制寄存器,使它对分频器进行写操作
MOV AL,10000011B
OUT DX,AL
MOV DX,3F8H ;设计字符传送波特率为115200比特,
MOV AL,01H
OUT DX,AL
MOV DX,3F9H
MOV AL,00H
OUT DX,AL
MOV DX,3FBH ;初始化传输线控制寄存器,使它对读写缓冲器和中断允许寄存器进行写操作
MOV AL,00000011B
OUT DX,AL
MOV DX, 3FAH ;初始中断识别寄存器
MOV AL, 00H
OUT DX, AL
;2,检查是否有间断点,有退出,否则继续
L2: MOV DX, 3FDH
IN AL, DX
TEST AL, 10H
JNZ EXIT
;3,检查收缓冲器是否满,满,转L8,否则继续
L3: TEST AL, 01H
JNZ L8
;4,检查发送缓冲器是否空 不空,转L2,否则继续
L4: TEST AL, 20H
JZ L2
;5,检查有键按下否,没有,转L2,否则继续
L5: MOV AH,1
INT 16H
JZ L2
;6,检查按键是否为CTRL+C?否,送发送缓冲器,转L2,否则继续
;MOV AH,2
;INT 16H
;TEST AL,04H
;JZ LL
;MOV AH,0
;INT 16H
L6: CMP AL, 03H
JZ L7
MOV DX,3F8H
OUT DX,AL
MOV DL,AL
MOV AH,2
INT 21H
MOV AH,0CH ;清除键盘缓冲
MOV AL,01H
INT 21H
JMP L2
;7,发送间断点,退出
L7: MOV DX, 3FBH
MOV AL, 43H
OUT DX, AL
JMP EXIT
;8,接收数据,显示,转L2
L8: MOV DX, 3F8H
IN AL, DX
MOV DL, AL
MOV AH, 2
INT 21H
JMP L2
EXIT:
MOV AH,4CH
INT 21H
CODES ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -