寄存器大小

来源:百度知道 编辑:UC知道 时间:2024/06/28 22:49:00
可能每种CPU寄存器大小不同,不过真的想知道它到底有多大,就像我们能知道内存有512M,1G的一样
kutengshu具体点
没说清楚,注要就是想了解清楚汇编里的东东,可以将一个数置于通用器中,也可以将一个堆栈放到寄存器,那么寄存器的上限是多大啊?

不是吧,一个寄存器最大也就32位大小,那那种自定义类型的数据大小超过32位怎么存储,再就是堆栈呢?

数据寄存器

8086 有8个8位数据寄存器,这些8位寄存器可分别组成16位寄存器:

AH&AL=AX:累加寄存器,常用于运算;

BH&BL=BX:基址寄存器,常用于地址索引;

CH&CL=CX:计数寄存器,常用于计数;

DH&DL=DX:数据寄存器,常用于数据传递。

为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:

CS(Code Segment):代码段寄存器;

DS(Data Segment):数据段寄存器;

SS(Stack Segment):堆栈段寄存器;

ES(Extra Segment):附加段寄存器。

当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器 CS,DS,SS 来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。 所以,程序和其数据组合起来的大小,限制在DS 所指的64K内,这就是COM文件不得大于64K的原因。8086以内存做为战场,用寄存器做为军事基地,以加速工作。

晕,寄存器和cache根本就不一样。一般来说计算机存储器速度由快到慢的层次为寄存器,cache也就是缓存然后内存然后是外存储器。寄存器也是位于CPU内部,一般存储容量都特别小。大概也就几K到几十K。而cache则可以更大,达到几M可以。

这么说吧

寄存器分为 内部寄存器与外部寄存器
外部寄存器 是计算机中其它一些部件上用于暂存数据的寄存器
内部寄存器 是CPU里面的一些小的存储单元,能存储数据
内部寄存器分8位 16位 32位(现在汇编一般就这几个)
计算机用8位表示一个字节
也就是说一个寄存器中最多保存4个字节

处理数据时
不是说只能用一个寄存器来暂存数据
超过32位的会用两个寄存器 一个存高32位 一个存低32位

堆栈