0

我使用 hdd 设备监视器工作室在虚拟串行端口(COM7 和 COM8)上创建了桥接器,并希望使用 16 位程序集 [使用 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  

我的错在哪里?

4

1 回答 1

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: 等)。Int 14h 期望并返回 al 或 ax 寄存器中的其他数据。

它不支持COM7/COM6

于 2013-02-16T07:09:10.353 回答