理解计算机寻址

现在,我们常用的计算机已经达到了64位寻址,以前的机器有32位寻址,16位寻址。单片机是计算机的CPU雏形,是8位寻址,然而,怎么理解寻址呢?

科学研究指出,一个人的智力有大小,它很大程度上取决于记忆力水平,同样,计算机的性能也主要取决于它的存储能力——内存,内存越大,性能越强。内存就相当于我们住的房子,而内存地址就是我们房子的地址,我们要区分清楚“房子”和“房子地址”是两个完全不同的概念,通过房子地址可以找到我们的房子,通过内存地址也可以找到内存单元。

那么,寻址为什么要有64位,32位之分呢?这要细细讲起来牵涉到二进制算法的相关问题了,但大致上我们可以这么理解:用两个字的不同组合(可重复)是不是可以表示四间房子的地址?要是房子很多很多,那两个字是绝对不够的,要多个字,计算机也是这样,随着计算能力越来越强,内存(房子)越来越多,需要的寻址位数也就越来越多,以后可能还会有128位,256位。。。

时间: 2024-10-06 22:43:03

理解计算机寻址的相关文章

通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的

实验一:通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的 学号:20135114 姓名:王朝宪 注: 原创作品转载请注明出处   <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1 1)实验部分(以下命令为实验楼64位Linux虚拟机环境下适用,32位Linux环境可能会稍有不同) 使用 gcc –S –o main.s main.c -m32 命令编译成汇编代码,如下代码中的数字请自行修改以防与

理解计算机的工作方式——通过汇编一个简单的C程序并分析汇编代码

Author: 翁超平 Notice:原创作品转载请注明出处 See also:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000  本文通过汇编一个简单的C程序,并分析汇编代码,来理解计算机是如何工作的.整个过程都在实验楼上完成,感兴趣的读者可以通过上面给出的课程链接自行动手学习.以下是实验过程和结果. 一.操作步骤 1.首先在通过vim程序建立main.c文件.代码如下: 图1 2.使用如下命令将main.c编

Linux内核设计第一周 ——从汇编语言出发理解计算机工作原理

Linux内核设计第一周 ——从汇编语言出发理解计算机工作原理 作者:宋宸宁(20135315) 一.实验过程 图1 编写songchenning5315.c文件 图2 将c文件汇编成32位机器语言 图3 将.s文件中的链接语句删除,获得最后的汇编代码 二.分析堆栈变化情况 三.总结 阐明对“计算机是如何工作的”的理解. ①计算机是依据冯诺依曼体存储结构,依据其核心思想——存储程序计算机工作模型,按程序编排的顺序,一步一步地取出指令,自动地完成指令规定的操作. ②从硬件的角度看,是通过总线连接C

Linux内核设计(第一周)——从汇编语言出发理解计算机工作原理

Linux内核设计(第一周)--从汇编语言出发理解计算机工作原理 计算机工作原理 汇编指令 C语言代码汇编分析 by苏正生 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 从2月22日起,本学期的linux课程开始了.通过这两天的学习,觉得孟宁老师讲的真不错,条理清晰,举例适当.本周从计算机工作原理出发,回顾了冯诺依曼计算机结构,也回顾了汇编寄存器.汇编指令.C语言程序的汇编分析技巧,很

深入理解计算机操作系统--读书笔记-第八章异常

该文章是我对深入理解计算机操作系统这本书的读书笔记 异常概念:异常就是控制流的突变,用来响应处理器状态中的某些变化,当处理器状态发生变化时,处理器正在执行某个当前指令,在处理器中状态编码为不同的位和信号,状态变化称之为事件,事件可能与当前指令有关如缺页,算术溢出,也可能无关定时器产生信号或者io请求 异常处理完成的三种情况 1)处理程序将控制返回给当前指令 2)处理程序将控制返回给下一条指令 3)处理程序终止被中断的程序 异常处理和过程调用的区别: 1)过程调用时,在跳转处理程序之前,处理器将返

一个简单的内存分配器-《深入理解计算机操作系统》

我相信很多人都知道<深入理解计算机操作系统>这本书,并且很多人都会对它研读.实际本人刚开始看的时候,只是加深了对操作系统的理解,别的到是没有感觉的到, 但是在看到公司的软件框架里面对于内存堆的管理,才发现和书上讲的异曲同工.于是乎,自己对利用隐式的空闲链表实现分配器做了总结,并且和自己想到的架构做了对比分析. 我们知道一个实际的分配器,不仅要考虑好吞吐率和内存利用率之间的平衡,还要考虑: ①空闲块组织:我们如何记录空闲块(一般刚开始会把一整段堆当做空闲块,然后再分割) ②放置:我们如何选择一个

深入理解计算机

一.计算机是如何工作的 1.1 计算机的三个法宝 存储程序计算机.函数调用堆栈.中断机制. 堆栈是C语言程序运行时必须记录调用路径和参数的空间.(函数调用框架.传递参数.保存返回地址.提供局部变量空间) 1.2 深入理解函数堆栈 (1)push栈顶减少4个字节 pop栈顶增加4个字节 ebp在C语言中用作记录当前函数调用基址 (2)其他关键寄存器 (3)函数堆栈框架          1.3 参数传递与局部变量 (1) 生成反汇编代码 (2)分析语句示例 sub &0x18,%esp在堆栈中预留

面试突击(一)——理解计算机基石

学习计算机也有些时间了,慢慢的理解了一些原来不太理解的东西,今年输入了一些东西但是输出的很少,发现自己越学习越感觉自己什么都不会,我不是天才不能无师自通也不算聪明什么东西一学就会,其实慢慢的发现自己比较的愚钝,许多东西都学习的比较慢,而且有些东西要花许久的时间才能学习的明白.但是也不能不学习,人生如逆水行舟不进则退,那咋办?我感觉没什么好法子,一点一滴的学下去呗!坚持学下去呗!慢慢的积累,也许慢慢的会顿悟,也许什么都没发生,不管怎么不要停止学习就行! OK,话不多说,先上一张图,我觉得这是计算机

通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的

C语言代码: int g(int x) { return x + 5; } int f(int x) { return g(x); } int main(void) { return f(5) + 1; } 反汇编代码: g: pushl  %ebp                   将ebp的值压栈,同时esp向下移动4个字节 movl   %esp, %ebp         ebp也指向esp指的位置 movl   8(%ebp), %eax    将ebp变址寻址8即向上移动8个字节,