例如下面的命令:
MODE COM1:24,O,8,1
这个MODE命令为COM1设置的参数是:2400波特率,奇校验,8位字长及1位终止位。必须注意的是,COM端口由BIOS分配为0―3号,但是DOS使用的编号为1―4号。
INT21H功能03H是从辅助设备(COM1)读一个字符到寄存器AL。
功能04H将DL寄存器中的字符传送给串行设备,如果输出设备正忙,该功能调用等待,直到设备准备好接收字符。
表9.14
DOS串行通信口功能
AH
|
功
能 调用参数 返回参数 |
3
|
从串行通信口读一个字符 AL=输入的8位数据
|
4
|
向串行通信口写一个字符 DL=输出的8位数据
|
下面是两个使用DOS串行口I/O的例子。
例9.24
从串行通信口输入一字符并存入INPUT_CHAR单元中。
MOV AH, 3 ; 从串行通信口读字符
INT 21H ; DOS调用
MOV INPUT_CHAR, AL ; 输入字符在AL中
.
.
INPUT_CHAR DB 0
例9.25
将字符串HELLO输出到串行通信口。
MOV BX, SEG BUFFER ; DS: BX = 串地址
MOV DS, BX
MOV BX, OFFSET BUFFER
MOV CX, BUF_LEN ; CX = 串长度
NEXT: MOV DL, [BX] ; 取字符
MOV AH, 4 ; 通信口输出
INT 21H ; DOS调用
INC BX ; 指针加1
LOOP NEXT
.
.
BUFFER DB 'HELLO'
BUF_LEN EQU $-BUFFER
|
|