汇编语言笔记14-端口
☞CPU直接读写数据的地方
- CPU内部的寄存器
- 内存单元
各种存储器都和CPU的地址线、数据线、控制线相连,CPU把它们当做内存,看作一个逻辑存储器(内存地址空间)。
- 端口
除了存储器外,和CPU的总线相连的还有下面3中芯片。
(1). 各种接口卡(如网卡、显卡)上的接口芯片,它们控制接口卡进行工作;
(2). 主板上的接口芯片,CPU通过它们对部分外设进行访问;
(3). 其他芯片,用来存储相关的系统信息,或者进行相关的输入输出处理。
这些芯片中,都有一组可以由CPU读写的寄存器,物理上处于不同的芯片中;但是从CPU的角度看,CPU对它们进行读写操作都是通过控制线向它们所在的芯片发出端口读写命令[CPU将这些寄存器当做端口,对它们进行统一编址,从而建立了一个统一的端口地址空间,每个端口在地址空间中都有一个地址]。
PS:寄存器的功能十分重要,CPU对存储器中的数据进行处理时,往往先把数据取到内部寄存器中,而后再作处理。外部寄存器是计算机中其它一些部件上用于暂存数据的寄存器,它与CPU之间通过"端口"交换数据,外部寄存器具有寄存器和内存储器双重特点。有些时候我们常把外部寄存器就称为"端口",这种说法不太严格,但经常这样说。
☞端口的读写
- 端口的读写和内存的读写很像。如下图:
- PC系统中,CPU最多可以定位64KB个不同的端口。端口地址的范围为0~65536。
(1). in和out指令中,只能使用ax或者al来存放从端口中读入的数据或者要发送给端口中的数据;
(2). 对于256~65536的端口号需要放在dx中。
端口号 |
读 |
写 |
0~255 |
in al, 20h ; 从20h端口读入一个字节 |
out 20h, al ; 往20h端口写入一个字节 |
256~65536 |
mov dx, 3f8h in al, dx ; 从3f8h端口读入一个字节 |
mov dx, 3f8h |
☞shl和shr指令
指令 |
实现功能 |
示例1(移动1位) |
示例2(移动n位) |
逻辑左移: shl |
(1). 将一个寄存器或者内存单元中的数据向左移位; (2). 将最后移出的一位写入CF中; (3). 最低位用0补充. |
mov al, 01001000b shl al, 1 |
mov al, 01001000b mov cl, 3 shl al, cl ;(必须放在cl中) |
逻辑右移: shr |
(1). 将一个寄存器或者内存单元中的数据向右移位; (2). 将最后移出的一位写入CF中; (3). 最高位用0补充. |
mov al, 01001001b shr al, 1 |
mov al, 01001000b mov cl, 3 shr al, cl ;(必须放在cl中) |
☞CMOS RAM芯片的操作
PC机上,微机主板上有一块可读写的RAM芯片,来保存当前系统的硬件配置和用户对某些参数的设定。该芯片靠电池供电,关机后内部的实时钟仍可以正常工作。
现在的厂商把BIOS程序做到了CMOS芯片中,当开机时就可按特定键进入CMOS设置程序对系统进行设置。所以又被人们叫做BIOS设置。
CMOS RAM芯片上还包含一个实时钟,该芯片内部有两个端口,端口地址为70h和71h。CPU通过这两个端口读
汇编语言笔记14-端口相关推荐
- 汇编语言笔记(待更新大作业)
文章目录 前言 计算机系统基础 概述 微处理器/中央处理器(CPU) 概述 性能指标与总线 前端总线(Front Side Bus) 带宽 数据总线DB/地址总线AB/控制总线CB CPU软件特性与指 ...
- Linux学习笔记14
Linux学习笔记14 Linux学习笔记14 DNS服务搭建 基本介绍 使用bind搭建dns服务 增加一个域名zone 配置DNS转发 配置主从 测试主从同步 后续课程 DNS服务搭建 基本介绍 ...
- 汇编语言笔记——接口技术与编程
文章目录 传送门 储存系统与技术 材料 高速储存器缓冲储存器(Cache) 材料,局部性,访问方式 Cache全相联映射 Cache交换与一致性 单核CPU一致性处理 多核CPU的MESI协议 主储存 ...
- 笔记14 笨办法中折磨人的习题ex23.py,人类语言与计算机语言
笔记14 笨办法中折磨人的习题ex23.py,人类语言与计算机语言 开始学习习题23了,但为了那个languages.text的下载,费了老大劲好像还是没有下载全.后来载下来了,那个代码文件录下来,却 ...
- 华为HCIA-datacom 学习笔记14——WLAN概述
华为HCIA-datacom 学习笔记14--WLAN概述 1.WLAN(无线局域网) 通过无线技术构造的无线局域网络.WLAN广义上是指以无线电波.激光.红外线等无线信号代替有线局域网中的部分或全部 ...
- node.js学习笔记14—微型社交网站
node.js学习笔记14-微型社交网站 1.功能分析 微博是以用户为中心,因此需要有注册和登录功能. 微博最核心的功能是信息的发表,这个功能包括许多方面,包括:数据库访问,前端显示等. 一个完整的微 ...
- 汇编语言笔记(四):内中断
汇编语言笔记:内中断 章节目录 概念 中断过程 示例: 0 号中断处理 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 概念 中 ...
- 【转】 C#学习笔记14——Trace、Debug和TraceSource的使用以及日志设计
[转] C#学习笔记14--Trace.Debug和TraceSource的使用以及日志设计 Trace.Debug和TraceSource的使用以及日志设计 .NET Framework 命名空 ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction
台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction 本博客整理自: http ...
- web安全工具库(笔记)----端口扫描(K8PortScan)
最简单的方法介绍各种工具. 教程所包含工具: 链接:https://pan.baidu.com/s/1fPh0rv88y64b33R47ecfxA 提取码:sr2r 系统:windows 10 K8 ...
最新文章
- 东方数智发布新品AIDOL™,打造人工智能偶像全息平台
- 基于区块链的健康链系统设计与实现(1)引言
- Fastify 2.0.1 和 1.14.3 发布,极速 Node.js Web 框架
- Prometheus Querying Function rate() vs irate()
- chi660e电化学工作站软件_RuddlesdenPopper 型锰酸盐LaSr2Mn2O7的氧还原性能和作为电化学电容器电极材料的性能研究...
- 【解放日报】除了CEO首席执行官,你了解CIO吗?
- mysql操作json优点和缺点_mysql之使用json
- python scapy模块安装_python scapy模块安装与依赖模块
- Ecstore跳过后台激活验证和shopexId授权
- tab切换webuploader失效的解决方法
- dpi、ppi、apm是什么
- UBUNTU下安装热键驱动及触摸板禁用驱动
- Gradle使用Junit5进行test
- 园林系统优秀党员推荐材料_事迹材料-园林绿化公司党员先进个人事迹材料
- 字符串算法之KMP(字符串匹配)
- (二)航空发动机强度与振动复习纲要
- python 基于metpy计算位涡平流项(水平)
- SparkR grammer
- 计算机二级vf笔试题库,2016年计算机二级VF笔试试卷
- 插入排序及其稳定性介绍
热门文章
- hdu3585 二分最大团(dp优化)
- 汇编 控制流伪指令 .break .continue .else .elseif .endif .endw .if .repeat .until .untilcxz .while
- 【Groovy】闭包 Closure ( 闭包作为函数参数 | 代码示例 )
- 【C 语言】变量本质 ( 变量修改 | 直接修改变量 | 通过内存地址间接修改变量 | 通过指针间接修改变量 )
- 【Android 逆向】函数拦截 ( GOT 表拦截 与 插桩拦截 | 插桩拦截简介 | 插桩拦截涉及的 ARM 和 x86 中的跳转指令 )
- 【Android 异步操作】手写 Handler ( 总结 | Message | MessageQueue | Looper | Handler ) ★
- 【Java 网络编程】NIO Buffer 简介 ( 概念 | 数据传输 | 标记 | 位置 | 限制 | 容量 | 标记 | 重置 | 清除 | 翻转 | 重绕 | 链式操作 )
- 【C++ 语言】Visual Studio 配置 POSIX 线程 ( Windows 不支持 POSIX | 配置文件下载 | 库文件说明 | 配置过程 )
- AI零基础入门之人工智能开启新时代—下篇
- windows 程序员电脑设置