8086存储器有多大
Ⅰ 8086内存地址空间
这个是8086CPU的内存,8086的CPU是16位的,就是说只有16根数据总线,要通过北桥中转,把两个16位地址变成一个20位的物理地址进行寻址,只能寻址1MB内存而现在的CPU是32位,有32根地址总线.32根数据总线,采用的是段页式存储的方式寻址,高10位是目录表的偏移地址,低12位为物理页偏移地址,中间10位为页表偏移地址因此,在现代操作系统中,常常出现相同的逻辑地址,但是却是指向不同的物理地址,只要改变CPU中的CR3寄存器中的值就可以了,使CPU可以更加灵活地寻址4GB内存,已经不是原来8086CPU的1MB寻址能力了8086CPU是1978年的产品,那时不会有很大的程序,也没有很大的内存,1M的寻址能力已经可以满足使用需要了,正如几年前,4GB内存是无法想象的,太大了,所以没有必要使用64位CPU,32位CPU已经完全可以满足寻址需要,而如今,4GB,8GB内存的计算机已经越来越普及,32位CPU已经无法满足现在的使用要求,所以64位CPU应运而生至于现在最新的64位CPU已经不是这个架构了,架构有非常大的改变,采用的是安腾体系,就不做赘述了这个其实还牵扯到实模式到保护模式的转化等问题,总之,你按照书上写的那个8086汇编编程,写出的是实模式下的程序,确实不能大于1MB内存使用,不过普通的程序也不会大于这么大的内存使用的,而现在的各种编程语言都是转化为IA32汇编的,与你学的8086汇编有些不同,事实上,由于安全等方面的考虑,现在的windows已经不能运行实模式下的程序了希望龙泉居士我的回答对您有所帮助!祝您开心愉快! 对了,按照惯例,说一声,龙泉居士纯手打,多次修改,欢迎追问,望采纳
Ⅱ 8086/8088系统中,存储器为什么要分段,一个段的最大和最小各为多少字节
8086/8088的地址总线宽度为20位,其最大寻址空间是1 MB.
在16位字长的机器里怎么提供20位地址的问题,而解决的办法是采用存储器地址分段的方法.
程序员在编制程序时要把存储器划分成段,在每个段内地址空间是线性增长的.每个段的大小可达64 KB,这样段内地址可以用16位表示.
Ⅲ 8086/8088系统中,存储器为什么要分段,一个段的最大和最小各为多少字节
8086/8088系统中,存储器分段的主要目的是便于存储器的管理,使得可以用16位寄存器来寻址20位的内存空间。一个段最大为64KB,最小为16B。
存储器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再读取内存的操作。
由于存储器的个数和容量都有限,不可能把所有中间结果都存储在存储器中,所以,要对存储器进行适当的调度。根据指令的要求,管理安排适当的寄存器,避免操作数过多的传送操作。
8086/8088CPU可直接寻址1MB的存储器空间,直接寻址需要20位地址码,而所有内部寄存器都是16位的,只能直接寻址6KB,因此采用分段技术来解决。将1MB的存储空间分成若干逻辑段,每段最长64KB,最短16B。这些逻辑段在整个存储空间中可浮动。
(3)8086存储器有多大扩展阅读:
8086/8088CPU内部设置了4个16位段寄存器,它们分别是代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS、附加段寄存器ES、由它们给出相应逻辑段的首地址,称为“段基址”。段基址与段内偏移地址组合形成20位物理地址,段内偏移地址可以存放在寄存器中,也可以存放在存储器中。
程序较小时,代码段、数据段、堆栈段可放在一个段内,即包含在64KB之内,而当程序或数据量较大时,超过了64KB,那么可以定义多个代码段或数据段、堆栈段、附加段。
Ⅳ 8086给各寄存器,内存分配的地址范围是什么
CPU的物理地址不变,而逻辑地址分配是随机的,每次载入系统时都不一样,可以在DOS里查看。对于有16根数据线,20根地址线的8086CPU,将逻辑地址用段基地址和偏移地址表示。段寄存器中的段基地址可以定义任何64KB存储器的起始地址,偏移量用来在64KB存储器中任选一单元,每一个段的长度为64KB,地址范围为(起始地址~起始地址+FFFFH),起始地址为段基地址×10H。
Ⅳ 8086/8088存储器1MB地址空间最多可以分为64K个段,每个段均为16个字节;最少可分为16个段,每个段均为64KB
(1)
每个段的段首址是一个16位的二进制数,从0000 0000 0000 0000到1111 1111 1111 1111,
因此最多可以有2^16个段,而2^10=1K,所以最多可以分为64K个段,又因为储器1MB地址空间,所以每个段为1MB/64K=16B,即每个段均为16个字节
(2)
每个段的段内偏移地址是16位的二进制数,从0000 0000 0000 0000到1111 1111 1111 1111,因此每个段最大的空间是2^16B,即64KB,而分得的段的个数为1MB/64KB=16,所以最少可分为16个段,每个段均为64KB
Ⅵ 在8086系统中有几个可寻址空间各有多大用什么控制信号来区分
寄存器是16位的,例如AX,BX,SI,DI都是16位的,它们能表示的地址码所以只有16位的。2的16次方等于64K,这是我们作为程序编写者能通过寄存器直接访问的内存空间。而8086/8088CPU提供的地址总线有20位,2的20次方等于1M,这是CPU它自己能访问的最大内存空间。
这就有个矛盾了:CPU能访问1M内存,而寄存器却只能表示64K内存大小。所以就引入段地址和偏移地址的概念。把这1M 的内存空间分成64K大小的一段段,指定哪一段,然后再在这个段的开始加上“偏移地址”,这不就可以访问1M内存的任意空间了?
段地址怎么得到的问题:
比如在汇编数据段某处声明了某个字符变量 STR
MOV DX,SEG STR
通过SEG 语句则可把STR所在段地址取出来,送给DX.
一上内容希望对你有帮助!
Ⅶ 8086微机系统有1mb的存储空间需要几个地址密码
8086有20位地址线,16条数据总线,其直接寻址的存储空间为2^20=1024KB,即1MB,8086的寻址范围是2^16=65536B=64KB;8086的cpu是16位的,所以说其寻址范围就是2^16=65536。
一个地址空间存放的数据大小位一个字节,所以说,其寻址空间位65536*1=64*1024=64KB。但是8086的地址总线是20位的,用两个16位表示,也就是a*16+b的形式表示。其I/O寻址范围是2^20,寻址空间是1048576*1=1024*1024=1M。8086存储器的组成:8086系统中,存储器采用分体结构,1MB的存储空间被分成两个512KB的存储体,一个存储体中包含偶数地址,一个存储体中包含奇数地址,两个存储体采用字节交叉编址方式。电脑中的存储器是用来存储计算机信息的。存储器是电脑系统不可缺少的组成部分之一。电脑中的存储器大致可划分为两大类:一类是主存,即内存;一类是辅存,即外存。二者的重要区别之一,就在于他们与CPU之间的物理连接方法不同。与CPU地址线直接相连的存储器就是内存,而通过接口与CPU间接相连的存储器就是外存。连接方式的不同,直接导致了二者与CPU之间通信方法的不同。
Ⅷ 计算机8086cpu内存寻址范围是多大
。。8086 是16位x86处理器,有20条地址线,可直接寻址1MB的存储空间。
Ⅸ 8086CPU能访问的最大内存空间是多少为什么
最大可访问1MB的存储空间。
Intel 8086是一个由Intel于1978年所设计的16位微处理器芯片,是x86架构的鼻祖。不久,Intel 8088就推出了,拥有一个外部的8位数据总线,允许便宜的芯片用途。它是以8080和8085的设计为基础,拥有类似的寄存器组,但是数据总线扩充为16位。
总线界面单元(Bus Interface Unit)透过6字节预存(prefecth) 的队列(queue)位指令给执行单元(Execution Unit),所以取指令和执行是同步的,8086 CPU有20条地址线,可直接寻址1MB的存储空间,每一个存储单元可以存放一个字节(8位)二进制信息。
(9)8086存储器有多大扩展阅读:
当引脚接高电平时,CPU工作于最小模式。此时,引脚信号24~31的含义及其功能如下。
⑴IO/M/(memoryI/Oselect):存储器、I/O端口选择控制信号。
信号指明当前CPU是选择访问存储器还是访问I/O端口。为高电平时,访问存储器,表示当前要进行CPU与存储器之间的数据传送。为低电平时,访问I/O端口,表示当前要进行CPU与I/O端口之间的数据传送。
⑵WR/(write):写信号,输出,低电平有效。
信号有效时,表明CPU正在执行写总线周期,同时由信号决定是对存储器还是对I/O端口执行写操作。
⑶INTA/(interruptacknowledge):可屏蔽中断响应信号,输出,低电平有效。