注册 登录
编程论坛 汇编论坛

IN 和OUT命令怎么使用???

白展堂 发布于 2007-01-02 21:30, 1948 次点击
问题:从端口输入100个字节并存入首地址为BUF的内存单元.设128H为数据输入寄存器端口,127H为状态寄存器端口,其D0位为1表示端口的数据已经准备就绪.

DATA SEGMENT
DB 100 DUP(?)
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA

START:
MOV AX,DATA
MOV DS,AX
A: MOV DX,127H
IN AL,DX
TEST AL,1
JZ A

下面的怎么从输入端口写入数据并送到BUF呢??

麻烦大家帮我想想,给我讲解一下!


谢谢了!

[此贴子已经被作者于2007-1-2 21:30:36编辑过]

5 回复
#2
白展堂2007-01-03 19:51
我又自己加了一些,但是我不明白 在数据输入端口128H的数据从哪里来????????????
data segment
buf db 100 dup(?)
data ends
code segment
assume cs:code,ds:data
begin:
mov ax,data
mov ds,ax
mov cx,100
a: mov dx,127h
in al,dx
test al,1
jz a
mov dx,128h
in al,dx

mov [si],al
inc si
loop a
mov ah,4ch
int 21h
code ends
end begin
#3
w23452007-01-03 20:04
mov dx,128h
in al,dx
是从端口128H读数据,当然从端口128H来啦。
具体的要看你的端口128H是什么硬件了。
#4
白展堂2007-01-03 20:08
这只是的题目,也就是说这个端口的数据就必须由硬件实现了!不能由自己来定义或者输入吗?

或者数据是取自内存的一部分???
#5
w23452007-01-03 20:16
端口和硬件(外设)相联系,除保留的外,也可自定义(也就是和你自己的硬件相联系),
数据来自外设,不是内存。
#6
白展堂2007-01-03 20:20

恩!明白了!!谢谢!!!

1