文章来源:未知 作者:礁石游戏网 发布时间:2025-04-13 21:44
在程序中,有可以执行的指令代码,还有指令要操作的各种数据等等
遵循模块化程序设计思想,我们希望将相关的的代码安排在一起,数据安排在一起,于是我们使用段 segment
来安排一类数据
或是代码
程序员在写程序的时候,可以很自然地将程序的各个部分放在相应的段中
对于应用程序来说,主要涉及三类段
code segement
,段寄存器就是 cs
data segment
,对应的段寄存器就是 ds
stack segment
,对应的段寄存器就是 ss
还有一个附加的段寄存器 es
,也是存放数据的数据段寄存器,用来处理数据串操作指令中操作数的存储
IA-32
还增加了 FS
和GS
都属于数据段性质的段寄存器
存储器地址在编程的时候,是以 逻辑地址访问的,而逻辑地址包括 段基地址
和 偏移地址
我们有代码段的寄存器 CS
,它指明了代码段的开始,在这个代码段中的偏移地址由 EIP
寄存器来指示
同样的,我们的栈地址(或者叫做栈顶地址),是通过 SS
和 ESP
来联合指定的
数据段也要有地址,基地址一般是由 DS
指明(还有可能是 ES
什么的),但是偏移地址并没有那个特定的寄存器指出,因为这是由多种方法计算出来的,这个地址我们称为 EA
,也叫做有效地址
程序由指令组成,指令存放在主存储器中,处理器需要一个专门的寄存器表示将要执行的指令在主存中的位置,这个位置由 存储器地址来表示,在 IA-32
处理器中,存储器的地址保存在指令指针寄存器
EIP 中
EIP具有主动增量的功能,处理器执行完一条指令,EIP
就会加上该指令的字节数,执行下一条指令,实现程序的顺序执行
当需要实现分支、循环的操作时,修改 EIP
将使程序跳转到指定的指令执行
EIP
不能像通用寄存器那样直接修改赋值,而是在执行控制转移,出现中断或异常时被处理器赋值而改变
既然说到了指令是放在主存中的,那么就来说说存储器的组织吧
Memory Address
Byte Addressable
我们以字节为单位定义字 WORD
和 双字DOUBLE WORD
我们不妨从 0 开始对存储器进行物理地址排编,直到其能够支持的最大的存储单元
拿IA - 32
来说,它支持 4GB
的存储器,物理地址就是从 0 ~ 0xFFFF FFFF
虽然我们对它编写了地址,但是我们在编程的时候并不是直接使用设个地址去访问的,因为直接访问会对存储器的管理带来麻烦(比如说内存使用重叠),为了更好地管理物理存储器,我们的处理器都集成了有存储管理单元(Memory Management Unit, MMU),就是这个 MMU
提供了我们的存储模型,通过这个存储模型,我们的程序才能访问物理存储器
在这种模型下,对程序来说存储器就是一个连续的存储空间,称为 线性地址空间
程序所需的代码数据堆栈都保存在这个空间中,每个存储单元保存一个字节且具有一个地址,我们称之为 线性地址(Linear Address)
在这种管理模型下,对程序来说存储器由一组独立的地址空间
组成,这个地址空间称之为段
代码数据堆栈位于分开的段中,程序利用逻辑地址殉职段中的每个字节单元,每个段都能达到 4GB
在处理器内部,所有的段都被映射出线性空间地址,程序访问一个存储单元时,处理器会将逻辑地址转化成线性地址
使用这种存储模式主要是增加程序的可靠性,例如,将堆栈安排在分开的段中,可以防止堆栈区域增加时侵占代码或数据空间
与下文提到的实地址方式有联系,是一种特殊的段存储模型
其线性空间
最大为 1MB
容量,由最大为 64KB
的多个段组成
这种存储模型是 8086处理器
的存储模型,IA - 32
兼容
在写代码时我们需要知道处理器执行代码的工作方式,因为工作方式决定了可以使用的指令和存储模型
IA - 32
处理器支持以下三种基本的工作方式
存储器的空间可以分段管理,采用逻辑地址指示
就像在上面我们讲到的段寄存器中的表示方法一样
逻辑地址 = 段基地址 : 偏移地址
在处理器内部以及编程时采用 逻辑地址
最简单的例子就是楼房编号
将 逻辑地址
转变成 线性地址
再转换成物理地址
的事情是 MMU
完成的,在变成物理地址之后,处理器使用物理地址访问存主存储器
既然程序访问的是逻辑地址,我们的这个地址空间也就不是实实在在的物理的地址空间了,这个空间我们会称之为 虚地址
这里就是 win32
对于 4GB
存储空间的一个大致的划分
我们只需要知道 0x 0040 0000
(40 后面跟 4 个 0)是应用程序的起始地址,在后续的编程中我们将会看到这个地址
强调,这个地址,或者说地址分配,都是虚拟地址,不是物理地址
是在主存储器中存储单元的标识,从 0 开始编排直到最大,处理器直接使用物理地址来访问存储单元
在 平展存储
存储模型下,对程序来说存储器是线性空间,每个存储单元保存的某一个字节具有一个地址,被称为 线性地址
当使用平展存储模型时,六个寄存器都指向线性空间的地址 0,段基地址等于 0 ,偏移地址等于线性地址
线性地址也是是逻辑地址到物理地址变换之间的中间层,当使用段式存储模型时,段寄存器选择不同的段选择器,就会指向线性空间不同的段(不同段的线性地址),基地址加上偏移地址形成线性地址
当使用实地址存储时,主存空间只有 1MB (2^10 字节)
,其物理地址为 0x0000 0 ~ 0xFFFF F
实地址存储模型也是一种段式存储,但是又两个限制:
64kB (2^16 : 0x0000 ~ 0xFFFF)
这样,实地址
方式的段寄存器表示段开始时直接保存段基地址
的高 16 位,只需要将逻辑地址中的段地址想左移 4 位,加上偏移地址就得到了20位的物理地址
不论是用何种存储模型,程序员都采用逻辑地址进行程序设计
逻辑地址包含两部分,一个是段基地址
确定段在主存中的起始地址,另一个是偏移地址
,就是距离段基地址的偏移量
既然程序访问的是逻辑地址,那么我们的这个地址空间就不是实实在在的物理的地址空间了,我们将其称为 虚地址
32位 Windows
系统工作于保护模式,采用分段和分页机制,最终为程序构造了一个虚拟地址空间,换句话说,我们写在程序中的地址都是受这个虚拟地址空间限制的,比如说 ORG 0x0040 0000
补充:
8086 CPU有20条地址线,可直接寻址1MB的存储空间,每一个存储单元可以存放一个字节(8位)二进制信息
8086是16位寄存器,所以一共有2^16个段。每个段有2^4个字节,所以2^16个段的总尺寸是2^20=1m字节
玩家可以前往安多哈尔,从克罗米那里购买[时光祝福置换器]来把世界BUFF保存起来(道具说明里没有提酋长的祝福BUFF,实测也是可以保存的)。
由于储存世界BUFF储存器无法在战斗中使用,而且储存/使用都有1个小时的CD,那么怎么高效地利用世界BUFF储存器就是一个被玩家们研究的新课题,现在玩家们大概有了两个思路。
第一个思路是等CD轮流吃BUFF。比如先吃一个,比如主城双BUFF,然后存起来等待1小时的CD,再去吃另外一种比如厄运BUFF。期间操作的方法就是把先存好的主城BUFF放出来,吃了厄运BUFF以后再一起存起来。重复这个过程直到所有世界BUFF吃完即可。这种方法可以让世界BUFF尽可能完整地被储存。
这个思路在实战当中,也有不好的地方,那就是BUFF都是整存整取,取出来所有BUFF一起跑表。这种思路下玩家带着存满的BUFF打NAXX,最优路线就是先打DK区12、蜘蛛区123、瘟疫区12这几个不用世界BUFF硬打能比较好打过的区域,然后在放BUFF打瘟疫3、构造区1234、DK区3和冰龙老克。
第二个思路在第一个思路上做了一点调整,结合了一下实战。具体的操作比第一个思路减少了一个步骤,那就是不保存主城双BUFF,直接开始去搜集厄运、风花这些比较耗费时间的BUFF。
这个思路在实战当中的优势是,玩家可以先领主城双BUFF进本,其他BUFF还是放到罐子里不用,等打的差不多的时候再回家领一次主城双BUFF,然后再放出其他BUFF,一波捅穿。比起第一个思路来说不方便的地方在于需要领两次主城BUFF,遇到NAXX堵车会比较难受。
世界BUFF储存机制出现,让玩家们能够更方便管理自己身上的世界BUFF了,总的来说还是一个能够让玩家游戏更加方便的机制。对于怎么规划世界BUFF储存器,小伙伴们有什么看法呢?
>10需要再铁级别的锻造台上才可以做出储存箱
在这个数字化迅速发展的时代,我们时常听到一个新的词汇:元宇宙。这个概念如同一颗新星,闪耀在科技的天空中,让无数科技爱好者和投资者为之痴迷。但在这个崭新虚拟世界的背后,有一个至关重要却常常被忽略的元素——存储器。
当我们开始探索元宇宙的时候,是否有想过它背后所需的技术架构?例如,如何存储我们在虚拟世界中创建的各种资产,如何确保这些数据的安全与隐私。正是这个问题,让我对元宇宙存储器充满了兴趣。
在探讨存储器之前,我们先来梳理一下元宇宙的基本概念。可以说,元宇宙是一个由虚拟现实(VR)、增强现实(AR)、区块链等技术构建的虚拟空间,在这里,用户可以进行社交、娱乐、交易,甚至工作。它不仅仅是一个游戏,而是一个可以无缝连接我们现实生活的数字世界。
那么,存储器在这个虚拟世界中究竟扮演着怎样的角色呢?
面对如此广阔的应用场景,存储器技术也面临不少挑战。我自己在研究时也有以下一些感触:
尽管存在这些挑战,我依然对元宇宙存储器的未来充满信心。以下是一些我认为值得关注的趋势:
总的来说,元宇宙的发展将推动存储技术的不断进步。在这个虚拟与现实交织的世界中,如何有效管理和存储数据既是挑战也是机遇。相信在不久的将来,在元宇宙的构建中,存储器将会发挥更为核心的作用,为我们开创更广阔的虚拟空间。
在这篇博客中,我将探讨如何改进我的世界,让它更加令人满意和充实。
首先,要改进我的世界,我们需要深入了解当前的状态。这包括对自己的生活、工作、人际关系和个人发展等方面的全面审视。只有明白自己目前的状态,才能有针对性地进行改进。
要改进我的世界,需要设立明确的目标和计划。这些目标应该是具体、可衡量和具有挑战性的,让自己不断前行和进步。
良好的习惯是改进我的世界的关键。无论是学习、工作还是生活,都需要建立良好的习惯,如时间管理、自律和持之以恒。只有养成良好的习惯,才能持续改进和提升自己。
要改进我的世界,需要敢于寻求他人的反馈和建议。这些反馈可以帮助我们发现自身的盲点和不足之处,从而及时调整和改进。与他人交流并虚心接受建议,是不断进步的关键。
改进我的世界需要不断学习和成长。学无止境,只有不断学习新知识、获取新技能,才能不被时代抛弃。持续学习并将所学运用到实践中,才能真正改变自己和周围的世界。
要改进我的世界,必须保持积极乐观的态度。面对困难和挑战时,要乐观面对,相信自己能够克服一切困难。只有积极乐观,才能在逆境中找到突破的机会。
改进我的世界还需要与优秀的人为伍。身边的朋友、同事和伙伴都会影响我们,与优秀的人相处可以激发自身的潜能和动力。结交优秀的朋友,可以共同学习、成长和进步。
要改进我的世界,身心健康也至关重要。保持良好的身体状况和心理状态,是提升自己综合素质的基础。定期运动、保持健康的生活习惯和注重心理健康,才能拥有充实和幸福的生活。
最后,改进我的世界是一个持续不断的过程。我们需要不断反思和调整自己的目标、计划和行动,适时修正错误和改进不足。只有持续反思和调整,才能保持在改进的道路上不断前行。
早期计算机使用的存储器主要是磁芯存储器,它是由多个磁芯组成的一个单元,每个磁芯可以存储一位数据。由于磁芯存储器具有成本低、寿命长等优点,因此在早期的计算机中得到了广泛应用。但是,磁芯存储器的容量和速度都受到了限制,无法满足现代计算机的需求。
随着半导体技术的发展,半导体存储器逐渐取代了磁芯存储器。半导体存储器是由集成电路制成的,具有极高的集成度和速度,因此在现代计算机中得到了广泛的应用。其中,RAM(随机存取存储器)是最常用的半导体存储器之一,它可以随时读写,但断电后数据会丢失。
随着计算机性能的提升,对存储器的容量和速度提出了更高的要求。固态硬盘(SSD)应运而生,它是由闪存芯片组成的存储设备,具有极高的读写速度和可靠性,是当前计算机中常用的存储方式之一。除此之外,还有磁盘存储器、光盘存储器等其他存储方式,也在不同的应用场景下得到了广泛应用。
存储器的技术进步不仅提升了计算机的性能,也为计算机产业带来了巨大的变革。随着云计算、大数据、人工智能等新兴技术的发展,对存储器的需求也变得越来越多样化。未来,存储器技术将继续朝着更高容量、更低功耗、更可靠性的方向发展,为计算机产业带来更多的机遇和挑战。
总之,存储器的发展历程是一段不断变革、不断创新的历史。它见证了计算机技术的不断进步,也推动了计算机产业的快速发展。在未来,我们期待存储器技术能够为计算机产业带来更多的惊喜和变革。
在当今的数字世界中,有一款备受欢迎的游戏,那就是我的世界。作为一个开放世界沙盒游戏,我的世界提供了无限可能性,让玩家可以在其中尽情发挥想象力,建造属于自己的世界。
对于许多玩家来说,我的世界不仅是一款游戏,更是一个让他们逃避现实生活压力、放松心情的乐园。在这个虚拟的世界里,他们可以建造各种奇幻建筑、探索未知的洞穴、与朋友合作玩耍,甚至是体验战斗的刺激。
我的世界之所以能够吸引如此多的玩家,一个重要的原因就是其独特的像素风格和自由度。在这个虚拟世界中,一切都是由像素方块构成的,虽然画面看起来简单,却蕴含着无限的可能性。
除此之外,我的世界还具有丰富的游戏内容和系统,玩家可以通过挖掘资源、制作物品、建造建筑等方式来不断丰富自己的游戏体验。而且,游戏中还不乏各种隐藏的彩蛋和秘密,让玩家可以不断探索、发现新的乐趣。
在我的世界里玩我的世界,最大的乐趣之一就是探索与创造。玩家可以在广阔的地图上尽情探险,发现各种奇异的地形和生物。同时,他们也可以利用自己的创造力建造各种独特的建筑和装饰,打造属于自己的家园。
在这个过程中,玩家需要不断挖掘资源、制作工具、与怪物战斗,不断提升自己的能力和技术。通过这种方式,玩家可以感受到自己从无到有建设一个世界的成就感,这种体验是其他游戏所无法比拟的。
除了独自探索与创造,我的世界还提供了多人合作的游玩方式,玩家可以与朋友一起建造城市、冒险探险,甚至是组队对抗强敌。通过与他人合作,玩家可以分享彼此的创意和资源,一同完成更加庞大的建筑工程。
在多人游戏中,玩家还能够结识新朋友、交流游戏心得,拓展自己的社交圈子。这种社交互动不仅可以增加游戏的乐趣,还可以让玩家感受到团队合作的力量和快乐。
在我的世界里玩我的世界,不仅仅是一种娱乐方式,更是一种对现实生活的思考。在这个虚拟世界中,玩家可以重新定义自己的身份和生活方式,找到自己的归属感和成就感。
通过在游戏中的创造和探索,玩家可以培养自己的创造力和想象力,同时也可以学会团队合作和解决问题的能力。这些在游戏中所培养的技能和品质,也可以应用到现实生活中,让玩家获得更多的成长和收获。
总的来说,我的世界是一款独具魅力的游戏,它不仅提供了尽情探索与创造的乐趣,还可以带给玩家深刻的思考和启发。希望在我的世界里玩我的世界的每一位玩家都能够享受到游戏带来的乐趣,并从中获得更多的收获和启示。
我的世界,是一款备受全球玩家热爱的沙盒游戏。无论是探索无尽的奇幻世界、创造属于自己的建筑杰作,还是与好友一同展开冒险,我的世界都能带给玩家们无比的乐趣与创造力。
作为一款开放式沙盒游戏,我的世界给予玩家们无限的自由度。玩家可以在游戏中创造属于自己的虚拟世界,建造各种各样的建筑物,从简单的木屋到宏伟的城堡,只要你的想象力足够丰富,几乎所有的建筑梦想都可以实现。
同时,我的世界还提供了丰富的游戏内容和玩法。玩家可以探索广阔的地下世界,挖掘宝贵的矿石资源;与怪物战斗,保护自己的领地;种植农作物,建立农场;还可以与其他玩家进行多人游戏,一同组建公会,展开合作与竞争。
除了基础的游戏内容,我的世界还有丰富的MOD(模组)资源可供玩家们下载安装。这些模组可以为游戏增加新的物品、新的生物、新的地图等,大大增加了游戏的可玩性和趣味性。
想要了解更多关于我的世界的内容和玩法吗?不妨通过观看一些精彩的我的世界视频,深入了解这款游戏的魅力所在。
在我的世界的视频大全中,你可以找到各种各样的视频内容,从游戏教程、建筑展示到挑战和冒险,应有尽有。这些视频不仅能带给你更直观的游戏体验,还能让你学到更多关于游戏的技巧和窍门。
当你在游戏中遇到一些困难时,或者想要寻找一些新的灵感时,我的世界视频大全将是你的良师益友。无论你是初学者还是老玩家,都能从中获得更多乐趣和动力。
除了游戏本身的魅力,我的世界还因其庞大而活跃的社区而著名。在我的世界的社区中,你可以与其他玩家分享游戏心得、交流建筑技巧、参加各种比赛活动等。
我的世界的社区不仅仅是一个简单的网络聚集地,它更是一个充满温暖和友善的大家庭。在这里,你可以结识来自世界各地的朋友,一同探索游戏世界的无穷魅力。
不仅如此,我的世界的社区还有众多的创作者和画家,他们通过建筑、美术等形式创作出许许多多令人惊叹的作品。在社区的赛事中,你可以欣赏到来自各个玩家的建筑作品、艺术作品等,受到他们的启发,也能够激发出自己更多的创意与灵感。
无论你是初次接触我的世界,还是已经是一位资深玩家,这款游戏都能带给你无尽的乐趣和创造力。通过观看视频大全,你能够更轻松地了解游戏的玩法和技巧;加入我的世界的社区,你将能够结识更多志同道合的朋友,并收获更多的灵感和创作动力。
快来加入到我的世界的奇妙旅程中吧!创造属于自己的虚拟世界,经历与好友们一起冒险的乐趣,让我们一同探索无尽的游戏魅力!
8086的存储器和51存储器的区别:
1、51是8位单片机,内部有程序逻辑存储器,8086是16位处理器,内部没有程序存储器,内部寄存器和CPU都是16位的
2、8086没有内部时钟振荡电路复用後
3、8086有20根地址线,16位数据线
51有16根地址线,8位数据线
因此程序寻址容量不同,虽然8086时钟频率比较低,但执行指令时间比传统51单片机要短。
上一篇:我的世界饱和度是什么意思?
下一篇:我的世界大蘑菇