06 | x86架构:有了开放的架构,才能打造开放的营商环境
该思维导图由 AI 生成,仅供参考
计算机的工作模式是什么样的?
- 深入了解
- 翻译
- 解释
- 总结
x86架构:开放、统一、兼容的计算机平台 x86架构作为计算机领域的开放平台,为计算机提供了高度的灵活性和通用性。本文从计算机的工作模式出发,介绍了CPU、内存以及总线的作用和相互配合关系。通过对CPU内部结构和工作原理的解析,读者可以了解到CPU如何执行指令、处理数据,并与内存进行交互。此外,文章还介绍了进程切换和总线的作用,帮助读者理解计算机内部数据传输的机制。 x86架构的历史起源于IBM PC时代,随着IBM PC的成功,x86架构逐渐成为了行业的开放事实标准。英特尔的技术因此成为了行业的开放事实标准,由于这个系列开端于8086,因此称为x86架构。x86架构的CPU数据总线和地址总线不断扩展,但始终坚持标准、开放、兼容的原则。 文章还深入介绍了8086处理器的原理,包括数据单元和控制单元的组成,以及内存访问的机制。通过对8086处理器的解析,读者可以了解到当时计算机的内存访问限制和处理能力。 总的来说,本文通过深入浅出的方式,向读者介绍了x86架构的技术特点和工作原理,为读者提供了对计算机内部运行机制的初步了解。文章内容涵盖了x86架构的历史、技术特点和处理器原理,适合读者快速了解x86架构的概况。
《趣谈 Linux 操作系统》,新⼈⾸单¥68
全部留言(174)
- 最新
- 精选
- 一命赌快乐置顶move a b :把b值赋给a,使a=b call和ret :call调用子程序,子程序以ret结尾 jmp :无条件跳 int :中断指令 add a b : 加法,a=a+b or :或运算 xor :异或运算 shl :算术左移 ahr :算术右移 push xxx :压xxx入栈 pop xxx: xxx出栈 inc: 加1 dec: 减1 sub a b : a=a-b cmp: 减法比较,修改标志位
作者回复: 赞,认真学习的典范
2019-04-084297 - Frank_51作为一个搞硬件的,这章是我学习最轻松的,推荐一个入门的系统学习汇编的视频课,网易云课堂上的一个课程,《汇编从零开始到C语言》,通俗易懂,小白入门必备
作者回复: 推荐书籍
2019-04-086115 - Lin妥妥地复习了一把“计算机体系结构”🌹
作者回复: 后面很多地方要用到寄存器,所以必须先讲一下
2019-04-0853 - 谭老师讲地太精彩了 点赞。由于基础弱,还有几个问题希望老师万忙中答疑一下,谢谢: 问题1:程序编译成二进制代码的时候,包含有指令起始地址吗?若包含那么后续每一行指令的涉及到的指令地址是计算出来的? 或者说加载进程的程序的时候才会确定起始地址?很好奇这个指令的指针寄存器里的值是什么时候、怎么放进去的? 问题2: CPU两个寄存器处理保存当前进程代码段的起始地址,已经数据起始地址。切换进程时会将这两个寄存器里的值一并切换,那么同一个进程出现多线程的时候了? 问题3:数据总线拿数据的时候没有限制大小吗,若数据很大,数据单元里的数据寄存器放不下怎么办的?
作者回复: 1.会有指令起始地址,后面讲ELF格式的时候会说这个事情。当执行一个程序的时候,会加载ELF格式,加载的时候会设置指令指针 2.多线程共享同一个进程内存空间,所以代码段的起始地址还是一样的。只不过每个线程执行不同的func,指令指针会不一样,在内核中,线程也是有独立的task_struct 3.寄存器是有限的,如果把程序编译成汇编看的话,再大的数据,也是要转换为对寄存器的操作。当然寄存器里面可以包含对内存的访问地址,这样内存里面的数据就很多了
2019-04-0836 - 微秒当然为了快速拿到段起始地址,段寄存器会从内存中拿到 CPU 的描述符高速缓存器中。 这句话感觉有点语义不通啊,能否详细解释下???
作者回复: 首先先建立一个观念,CPU里面的比内存块很多,内存比硬盘快很多。原来段的起始地址是放在寄存器里面的,所以速度就比在内存里面快很多,但是到了保护模式下,端起始地址放到内存里面了,就慢了,怎么办呢?将内存中的段描述符拿到CPU内的高速缓存中,就又快了。
2019-04-08434 - whyGuide to x86 Assembly: http://www.cs.virginia.edu/~evans/cs216/guides/x86.html
作者回复: 赞
2019-04-0830 - 佳佳大魔王实模式和保护模式的英文中模式应该为pattern吧,另外这两个模式不太理解。
作者回复: 可以理解为,CPU和操作系统的一起干活的模式,在实模式下,两者约定好了这些寄存器是干这个的,总线是这样的,内存访问是这样的,在保护模式下,两者约定好了这些寄存器是干那个的,总线是那样的,内存访问是那样的。这样操作系统给CPU下命令,CPU按照约定好的,就能得到操作系统预料的结果,操作系统也按照约定好的,将一些数据结构,例如段描述符表放在一个约定好的地方,这样CPU就能找到。两者就可以配合工作了。
2019-04-0827 - 马上想好老师您好,我想问下 为什么高16位分成两个8位就不兼容列呀。
作者回复: 没有人写程序用高位的
2019-04-09422 - Pluto原来 x86 架构是指 8086 ,而 x86 是代表 32 位操作系统是因为 80386,原来这两个 x86 不是同一个意思啊,以前学操作系统的时候一直想不明白 x86 为什么是指代 32 位操作系统
作者回复: 哈哈
2019-04-08319 - 尚墨上周看了 Go 夜读社区 《Go Plan 9汇编入门》https://www.bilibili.com/video/av46494102 听的云里雾里的,在来看这篇文章好像感觉出了点门道。
作者回复: 呜哇,没想到能和go联系在一起,看来底层原理比较容易互通
2019-04-1017