我使用hdd设备监视工作室在虚拟串行端口(COM7和COM8)上创建了桥接器,并希望使用16位汇编[using masm]发送和接收数据。 为了开始,我写了这个代码,将一个字符发送到COM7并听取这个端口,但没有东西传输。我测试了这个端口的监视器,并使用另一个软件发送数据。 这是代码:
.MODEL small
.STACK 100h
.data
.code
_start:
mov ax,@data
mov ds,ax
mov ah, 0 ;Initialize opcode
mov al, 11100011b ;Parameter data.
mov dx, 6 ;COM7: port.
int 14h
again:
mov dx, 6 ;Select COM7:
mov al, 'm' ;Character to transmit
mov ah, 1 ;Transmit opcode
int 14h
jmp again
mov ah,1
int 21h
END _start
我哪里错了?
答案 0 :(得分:0)
http://cs.smith.edu/~thiebaut/ArtOfAssembly/CH13/CH13-3.html#HEADING3-1
IBM BIOS最多支持四个不同的串行通信端口 (硬件最多支持八个)。一般来说,大多数PC都有一个或 安装了两个串口(COM1:和COM2 :)。 Int 14h支持四个 子功能 - 初始化,传输角色,接收角色, 和状态。对于所有四种服务,串行端口号(一个值为 范围0..3)在dx寄存器中(0 = COM1:,1 = COM2:等)。诠释 14h期望并返回al或ax寄存器中的其他数据。
它不支持COM7/COM6
。