[Intel汇编-MASM]端口通信

本文介绍了CPU无法统一编址的外设芯片,如网卡、键盘接口,它们通过端口与CPU通信。端口地址空间类似于内存地址,最多可包含64KB端口,地址范围0~65535。使用汇编指令'in'和'out'进行端口读写,其中'in'用于读取,'out'用于写入。CMOS RAM芯片是一种依赖电池供电的存储器,保存系统时间和配置信息,其端口地址为70H和71H,用于读取和写入数据。
摘要由CSDN通过智能技术生成

1. 那些不能被CPU统一编址的芯片:

    1) 可以被CPU统一编制的芯片都有一个共同的特点,那就是基本都是存储器(ROM、RAM、显存等)、其上的数据有且仅有CPU有权限读写、速度跟得上CPU,比如硬盘虽然也是存储器、也只能被CPU读写,但是速度太慢容量太大而无法被CPU统一编址到一个逻辑内存空间中;

    2) 很多外设(一些I/O设备)的芯片,其上的数据不仅可以被CPU修改,同时速度跟不上CPU,比如像网卡、键盘接口、鼠标接口等芯片,因此CPU不能将其统一编址;

    3) 但这些芯片都有一组可以由CPU读写的寄存器用来和CPU进行通信,并且这些寄存器和CPU通过总线相连,而这些寄存器就是所谓的端口了,而CPU可以对这些芯片的端口进行统一编址从而形成一个统一的端口地址空间;

    4) 端口地址空间概念上和内存地址空间相似,只不过内存地址空间可以看做一个较大的可供CPU读写的存储器,而端口地址空间可以看做一个较小(容量没内存那么大)可以和外设进行数据交换的缓冲区;

    5) 在PC系统中最多可以定位64KB个不同的端口,因此端口的地址范围为0~65535,因此端口号是一个16位值;


2. 使用in和out指令对端口进行读写:

    1) 和端口通信的数据只能用al和ax,8位数据用al,16位数据用ax,如果用其它寄存器会报错;

    2) in用于从端口读数据,使用格式是:in al/ax, 端口号

    3) out用于向端口写数据,使用格式时:out 端口号, al/ax<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值