x86是什么意思 x86架构是怎么设计的?
2022-10-31 14:36:50 来源:经济头条
x86一般有两种含义,一种指的是32位系统的意思;另一种指的是32bit,其中的bit代表32位版本的系统。
1、x86的意思指的是32位系统,它是由Intel推出的一种复杂指令集,用于控制芯片的运行的程序,现在X86已经广泛运用到了家用PC领域。
2、X86可以称作为32bit,其中的bit代表32位版本的系统,同时X86系统最大只能识别到内存是3.75G。而X64就是通常所说的64bit,是指64位的操作系统,64位系统最大支持内存总数高达128G,对于内存非常大的服务器基本都是装的64位系统,64位可以很好的利用大内存,如果大内存装32位那是对内存的一种浪费。
总而言之,如果电脑安装的是32位系统,8GB内存实际识别不到8GB,仅仅可以识别4G容量不到,这样就浪费了硬件性能。
架构设计
x86架构是重要地可变指令长度的CISC(复杂指令集计算机,Complex Instruction Set Computer)。字组(word, 4字节)长度的存储器访问允许不对齐存储器地址,字组是以低位字节在前的顺序储存在存储器中。向前兼容性一直都是在x86架构的发展背后一股驱动力量(设计的需要决定了这项因素而常常导致批评,尤其是来自对手处理器的拥护者和理论界,他们对于一个被广泛认为是是落后设计的架构的持续成功感到不解)。但在较新的微架构中,x86处理器会把x86指令转换为更像RISC的微指令再予执行,从而获得可与RISC比拟的超标量性能,而仍然保持向前兼容。x86架构的处理器一共有四种执行模式,分别是真实模式,保护模式,系统管理模式以及虚拟V86模式。
在这篇简短的文章中出现的指令和寄存器助忆符号的名称,都在Intel文件中有所指定以及使用在 Intel组译器(Assembler)中(和兼容的,比如微软的MASM、Borland的TASM、CAD-UL的as386 等等)。一个以Intel语法指定的指令"mov al, 30h"与AT&T语法的"movb x30, %al"相当,都是会被转译为两个位的机器码"B0 30"(十六进制)。你可以发现在这段程序中的"mov"或 "al",都是原来的Intel助忆符号。如果我们想要的话,我们可以写一个组译器由代码'move immediate byte hexadecimally encoded 30 into low half of the first register'(移动立即值位十六进制编码30到第一个寄存器的低半部位),来产生相同的机器码。然而,传统上汇编器(Assembler)一直使用Intel的助忆符号。
x86汇编语言会在x86 汇编语言文章中有更详细的讨论。