汇编(二) 内存地址空间、寄存器、物理地址以及物理地址的计算
内存地址空间:
一个CPU的地址线宽度为10,那么可以寻址1024个内存单位,这1024
个可寻到的内存单元构成这个CPU的内存地址空间
最终运行程序的是CPU,用汇编编程的时候。必须要从CPU角度考虑问题
对于CPU来讲,系统中的所有存储器中的存储单元都是处于一个统一的逻辑存储器中,他的容量
受CPU寻址能力的限制,这个逻辑存储器就是我们所说的地址空间
主板:
每一台pc机中都有一个主板,主板上有核心器件和一些主要器件
这些器件通过三类总线相连接
接口卡:
计算机系统中 所有可用程序控制其工作的设备,必须受到CPU的控制
存储器芯片:
随机存储器(RAM)和只读存储器(ROM)
从功能分类和链接上分类:
随机存储器RAM
装有BIOS的ROM
接口卡上的RAM
16个基本寄存器:
EAX ABX ECX EDX 为通用寄存器
EBP:栈区基地址寄存器;
ESP:栈顶寄存器;
ESI :源寄存器;
EDI:目的寄存器;
CS:代码段寄存器;
DS:数据段寄存器;
ES:扩展数据段寄存器;
SS:栈段寄存器;
FS:扩展数据段计算器;
GS:扩展数据段计算器;
EFLAGS:标志寄存器;
通用存储器:
一个16位的寄存器可以存储一个16位的数据,最大值为2的16次方-1
寄存器AX分为 AL、AH
0位~7位构成了AL低位寄存器, 8位~15位构成了AH高位寄存器
AH和AL寄存器可以独立使用
字在寄存器中的存储:
一个字可以存在一个16位寄存器中,这个字的高位和低位字节自然就存在这个寄存器的高8位和低8位
一个字为2b、2个字节、16位
数制:
由于一个内存单元可以存放8位数据,CPU中的寄存器又可以存放n个8位数据
也就是说 计算机中的数据大多数是由1~n个8位数据构成的
用十六进制来表示数据可以直观的看出这个数据是由哪些8位数据构成的,
二进制每4位对应一个十六进制, 每3位对应一个8进制
汇编指令(不区分大小写):
mov ax, 18 将8送入AX AX = 18
mov ah, 78 将78送入AH AH = 78
add ax, 8 将寄存器AX中的数值加上8 AX = AX+8
mov ax, bx 将寄存器BX中的数据送入寄存器AX AX = BX
add ax, bx 将AX,BX中的内容相加 结果给AX AX = AX+BX
检测点(以下数字均为十六进制):
mov ax, 62627 AX = 2627 # 溢出取后4位
mov ah, 31 AX = 5727
mov al, 23 AX = 574a # al低寄存器 高位忽略 计算低位 溢出同样后两位
add ax, ax AX = ae94
mov bx, 826c BX = 826c
mov cx, ax CX = ae94
mov ax, bx AX = 826c
add ax, bx AX = 3100
mov al, bh AX = 3182
mov ah, bl AX = 6c82
add ah, ah AX = ce82 # ah高寄存器 低位忽略 计算高位 溢出同样取后两位
物理地址:
CPU访问内存单元时要给出内存单元的地址,所有的内存单元构成的存储空间
是一个一维的线性空间。我们将这个一维的地址称为物理地址
16位结构的CPU:
16位结构描述了一个CPU具有哪几方面特征:
1.运算器一次最多可以处理16位的数据
2.寄存器的最大宽度为16位
3.寄存器和运算器之间的通路是16位的
8086CPU读写内存时,发生了这么一些事:
1.CPU中的相关部件提供两个16位的地址,一个称为段地址,一个为偏移地址
2.段地址和偏移地址通过内部总线送入一个称为地址加法器的部件
3.地址加法器将两个16位地址合并成一个20位的地址
地址加法器的工作原理:
地址加法器合成物理地址的方法:
物理地址=段地址*16+偏移地址
注:此处为20位物理地址
段地址*16 二进制向左移4位、16进制左移1位
1.一个数据的二进制形式左移1位,相当于*2,16进制*16、10进制*10、x进制*x
2.一个数据的二进制形式左移n为,相当于该数据*2的n次方
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
结构化数据存储,如何设计才能满足需求?
阿里妹导读:任何应用系统都离不开对数据的处理,数据也是驱动业务创新以及向智能化发展最核心的东西。数据处理的技术已经是核心竞争力。在一个完备的技术架构中,通常也会由应用系统以及数据系统构成。应用系统负责处理业务逻辑,而数据系统负责处理数据。本篇文章主要面向数据系统的研发工程师和架构师,希望对你有所启发。 前言 传统的数据系统就是所谓的『大数据』技术,这是一个被创造出来的名词,代表着新的技术门槛。近几年得益于产业的发展、业务的创新、数据的爆发式增长以及开源技术的广泛应用,经历多年的磨炼以及在广大开发者的共建下,大数据的核心组件和技术架构日趋成熟。特别是随着云的发展,让『大数据』技术的使用门槛进一步降低,越来越多的业务创新会由数据来驱动完成。 『大数据』技术会逐步向轻量化和智能化方向发展,最终也会成为一个研发工程师的必备技能之一,而这个过程必
- 下一篇
云计算的定义是什么?
在层次上面,云计算可分为:IaaS、PaaS、SaaS。IaaS是指将物理态的计算、存储、网络等资源进行抽象,形成软件态的计算、存储、网络等资源,实现统一管理,提供弹性供给和按需分配的模式,互联数据虚拟机就是代表。PaaS是指中间件、数据库等平台软件;SaaS是指上层的应用软件,例如协作SaaS软件、财务SaaS软件。云计算按种类划分为:公有云、行业云、私有云、混合云,其中,电信企业提供所有云服务,私有云就是将云平台部署在自己的数据中心里,只给自己使用,混合云可以是公有云和私有云混合、也可以是行业云和私有云混合,主要是安全考虑,所有互联数据将客户不重要、非核心、非涉密的业务放到公有云/行业云上,将重要核心涉密业务放到私有云上。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8