本系列将讲解《汇编语言》一书,本节讲解第14章——端口。
| 本节速览 |
|---|
| 1.前文回顾 |
| 2.端口定义 |
| 3.端口操作 |
一、前置知识
1.前文回顾
我们前面讲过,各种存储器都和CPU的地址线、数据线、控制线相连。CPU 在操控它们的时候,把它们都当作内存来对待,把它们总地看做一个由若干存储单元组成的逻辑存储器,这个逻辑存储器我们称其为内存地址空间。
参考文章:😉【汇编语言】1—基础硬件知识
2.与CPU通过总线相连的芯片
在PC机系统中,除了各种存储器芯片和CPU通过总线相连外,还有以下3种芯片:
| 与CPU通过总线相连的芯片有 | 功能 |
|---|---|
| 1.各种接口卡(比如网卡、显卡等)上的接口芯片 | 他们控制接口卡进行工作 |
| 2.主板上的接口芯片 | CPU通过他们对部分外设进行访问 |
| 3.其他芯片 | 用来存储相关的系统信息,或进行相关的输入输出处理。 |
在这些芯片上,都有一组可以由CPU读写的寄存器。这些寄存器,他们在物理上可能处于不同的芯片中,但是他们在以下两点相同:
(1) 都和 CPU的总线 相连,当然这种连接是 通过它们所在的芯片 进行的;
(2) CPU对它们进行读或写的时候都通过控制线向它们(这里指的是所在芯片提供的寄存器)所在的芯片发出端口读写命令。
- 可见,从CPU的角度,将这些寄存器都当作端口,对它们进行统一编址, 从而建立了一个统一的端口地址空间。
每一个端口在地址空间中都有一个地址。
所以本质上来看,端口就是在CPU外部的(其他芯片上的)寄存器。
CPU可以直接读写 以下3个地方 的数据:
| 1.CPU内部的寄存器 |
| 2.内存单元 |
| 3.端口 |
这一章,我们讨论端口的读写。
二、端口的操作
1.端口的读写
在访问端口的时候,CPU通过端口地址来定位端口。因为端口所在的芯片和CPU过总线相连,所以,端口地址和内存地址一样,通过地址总线来传送。 在PC系统中CPU 最多可以定位64KB个不同的端口。则端口地址的范围为0~65535。
对端口的读写不能用mov、push、pop等内存读写指令。端口的读写指令只有两条in和out,分别用于从端口读取数据和往端口写入数据。
in B A;将端口A中的数据读入B寄存器中。
out B A;向端口B中写入数据A。
这里有点抽象,但是细细想一想,记住就好,in是读出,out反而是读入,相反的!
我们看一下CPU执行内存访问指令和端口访问指令时,总线上的信息:
(1)访问内存:
mov ax,ds:[8];假设执行前

最低0.47元/天 解锁文章
1338

被折叠的 条评论
为什么被折叠?



