十八、数据容器、数据访问宽度、端口(计算机对数据处理方式:读取、写入、运算;数据可存放三个地方:CPU内部、内存、端口)
1. 数据容器
计算机的基本功能是对数据进行处理,处理的方式有:读取、写入、运算。
所处理的数据可以存在于三个地方:CPU内部、内存、端口。
汇编代码中表达数据的位置方式:
a 立即数 直接包含在机器指令中的数据。 (内存)
mov ax,1122H
mov bx,3344H
b 寄存器 指令要处理的数据在寄存器中。 (CPU内部,否则不固定)
mov cx,ax
mov dx,bx
c 段地址和偏移地址 指令要处理的数据在内存中,通过内存寻址访问到。 (内存)
直接寻址:[偏移地址]
寄存器间接寻址:[基址寄存器/变址寄存器]
寄存器相对寻址:[基址寄存器/变址寄存器+偏移量值]
基址变址寻址:[基址寄存器+变址寄存器]
相对基址变址寻址:[基址寄存器+变址寄存器+偏移量值]
1. CPU内部
实例:
mov ax,bx
2. 内存:5种寻址方式
直接寻址:[偏移地址]
寄存器间接寻址:[基址寄存器/变址寄存器]
寄存器相对寻址:[基址寄存器/变址寄存器+偏移量值]
基址变址寻址:[基址寄存器+变址寄存器]
相对基址变址寻址:[基址寄存器+变址寄存器+偏移量值]
3. 端口(写驱动)
各种计算机外设硬件可以借助端口来完成与计算机CPU之间的通信控制。
计算机对这些端口统一编号,每个端口都会对应一个地址,地址编号范围为0000H ~ 0FFFFH。
IN AL/AX 端口地址 读出数据
OUT 端口地址 AL/AX 写入数据
a 端口地址必须是立即数或DX寄存器。(立即数,比如:10H、11H、22H)
b 访问8位端口时,用AL寄存器;访问16位端口时,用AX寄存器。
例如:显卡、声卡、网卡
某一种硬件可能会同时占用多个端口
2. 数据访问宽度
汇编指令可以处理两种尺寸的数据,byte(字节)和word(字)。
a 通过寄存器名指明要处理的数据尺寸
assume cs:code,ds:data
data segment
data endsstack segment
stack endscode segment
start:mov ax,20Hmov cx,ds:[10H] ;出现寄存器,16位mov [10H],bx ;出现寄存器,16位mov al,20H ;出现寄存器,8位mov al,bl ;出现寄存器,8位mov al,[10H] ;出现寄存器,8位mov [10H],al ;出现寄存器,8位mov ax,4c00Hint 21H
code ends
end start
b 在没有寄存器名存在的情况下,用操作符word ptr 或byte ptr 指明内存单元的长度。
assume cs:code,ds:data
data segment
data endsstack segment
stack endscode segment
start:mov word ptr [10H],0001H ;word ptr为16位inc word ptr [bx]inc word ptr [10H]add word ptr [bx],0002Hmov byte ptr [10H],01H ;byte ptr为8位inc byte ptr [bx]inc byte ptr [10H]add byte ptr [bx],02Hmov ax,4c00Hint 21H
code ends
end start
c 有的汇编指令默认有访问的数据宽度(永远16位)
push [1000H] ;永远16位
pop [2000H] ;永远16位
十八、数据容器、数据访问宽度、端口(计算机对数据处理方式:读取、写入、运算;数据可存放三个地方:CPU内部、内存、端口)相关推荐
- 数据写入mysql的方式,FMDB写入大量数据的处理方法
ios中FMDB在写入本地大量数据的时候为了减少耗时操作的解决方案 今天在做app中插入4000多条数据来保存在本地,刚开始的解决方案是开启异步线程,当然但是但你打印此模块的耗时的时候你会发现耗时竟然 ...
- MATLAB读取写入文本数据最佳方法 | Best Method for Loading Saving Text Data Using MATLAB
MATLAB读取文件有很多方法.然而笔者在过去进行数据处理中,由于函数太多,相互混杂,与C#,Python等语言相比,反而认为读取文本数据比较麻烦.C#和Python等高级语言中,对于大部分的文本数据 ...
- R语言批量读取写入Excel数据 r导出输出写入excel多个sheet 导出excel 导入 excel 读入excel 表格
前一段,写过一篇:R语言中写入Excel的不同sheet表格,最近学习了tidyverse的方法,感觉需要总结一下,更新一下知识结构. 本文准备用实际数据,做一下操作: 「批量读取:」 批量读取多个E ...
- vue对数据进行修改操作时,第二次及其以后读取到的数据不发生变化
问题阐述: 今天在写vue对后台数据的修改功能时,刚写完没觉得什么不对,发现第一次点击修改按钮能正常读取该条信息的后端数据并填进输入框,但是第二次及其以后点击修改按钮时,输入框中仍然是第一次读取到的数 ...
- R语言批量读取写入Excel数据
本文准备用实际数据,做一下操作: 「批量读取:」 批量读取多个Excel数据 批量读取一个Excel数据的不同表格 「批量写入」 批量写入Excel数据 1,批量写入到不同的Excel中 2,批量写入 ...
- 【githubshare】开源的可视化数据管道构建工具,以更简便的方式,快速构建数据
推荐 GitHub 上一款开源的可视化数据管道构建工具:Orchest.以更简便的方式,快速构建数据管道,无需框架和 YAML 配置,可直接通过 Python.R.Julia 来编写代码,处理数据.一 ...
- JavaEE 企业级分布式高级架构师(十八)容器虚拟化技术(3)
Kubernetes学习笔记 K8S集群服务搭建 环境准备 机器环境 依赖环境 docker部署 kubeadm(一键安装k8s) 集群安装 依赖镜像 k8s部署 flannel插件 节点Join 节 ...
- 十八、深入Java 访问修饰符和非访问修饰符
@Author:Runsen @Date:2019/10/29 Java的修饰符主要分为2类,分别访问修饰符和 非访问修饰符 文章目录 访问修饰符 访问控制四个修饰符 非访问修饰符 成员变量 Stai ...
- 二十八、接了一单Python北京空气质量数据处理
@Author :Runsen 这是接的一单Python数据分析的,文件我删了,不好意思 文章目录 北京空气质量数据处理 分析解决方法 代码 计算北京每年的PM2.5情况 计算北京每年1-12月的PM ...
最新文章
- idea_pyspark 环境配置
- Deep Learning(深度学习)学习笔记整理系列之(五)
- java mysql框架_盘点 Java 数据库访问框架——究竟哪个更适合你
- 避免图像去雾算法中让天空部分出现过增强的一种简易方法
- MyEclipse Tomcat 超链接传参中文乱码
- 静态库调用_静态链接和动态链接对比简析
- spring session实现集群中session共享
- 模板设计模式_C常用设计模式——模板方法模式
- lnmp 虚拟主机的配置
- 【渝粤教育】国家开放大学2018年秋季 0690-22T化工原理及实验 参考试题
- 为什么300的并发能把支持最大连接数4000数据库压死
- 驻云学院:实战阿里云之数据库系列
- python 分类树_python中列表的分类树实现
- 研究生英语单词学习——Learning English
- kali 插上耳机没声音
- 【Scrum模式语言5】Scrum of Scrums
- [4G5G专题-129]:RF-架构演进的驱动力与RF常见术语
- 匿名管道(Pipe)和命名管道(FIFO)
- Boolean初始值是什么?
- mysql temporary table
热门文章
- Moody Photoshop Panel for mac(ps专业色彩调色扩展面板)
- 大名鼎鼎的电影胶片滤镜--DxO FilmPack 5 mac
- mathmagic pro mac使用教程|快速地创建任何方程
- HbuilderX、Hbuilder编辑器如何使用手机调试app
- int true python_python基本数据类型,int, str, bool及相关操作
- 求一列数据中的波峰_用python进行数据分析的套路
- 合泰单片机市场占有率_holtek单片机图文全面详解
- 信息安全工程师-AES密码技术及XOR图像遮盖技术(JavaC++)
- SQL笔记-Oracle中varchar和varchar2的区别
- Spring Boot文档阅读笔记-DataSource configuration