精华内容
下载资源
问答
  • 8086CPU指令系统

    2013-01-13 10:28:55
    8086CPU指令系统 数据传送类指令算术运算类指令处理器控制类指令
  • 第6章STC单片机CPU指令系统 STC单片机CPU指令集 STC15系列单片机内的8051CPU指令集包含111条指令 这些指令与传统的8051指令完全兼容但是大幅度提高 了执行指令的时间效率 STC15单片机内8051CPU指令集分为 算术运算...
  • 8086CPU指令系统——数据传送类指令

    千次阅读 2019-09-20 14:02:54
    数据传送(Data Transfer)类指令是指令系统中用的最多的一类指令,也是条数最多的一类指令,常用于将原始数据、中间运算结果、最终结果及其它信息在CPU(中央处理器)的寄存器和存储器之间进行传送 ...

    数据传送(Data Transfer)类指令是指令系统中用的最多的一类指令,也是条数最多的一类指令,常用于将原始数据、中间运算结果、最终结果及其它信息在CPU(中央处理器)的寄存器和存储器之间进行传送。

    数据传输指令分类
    在这里插入图片描述
    指令格式
    在这里插入图片描述

    一、通用数据传送指令 MOV

    通用数据传送指令(General Purpose Transfer)是所有指令中最基本、最重要的一类,在实际应用程序中,它的使用率也是最高的。
    指令格式:MOV dst,src
    执行操作:(dst) <—— (src)
    标志位:不影响

    该指令把源操作数 src 传送给目的操作数 dst,指令执行后源操作数不变,目的操作数被源操作数所替换。传送指令每次可以传送一字节或一个字,它可以实现 CPU 的内部寄存器之间的数据传送、寄存器和内存之间的的数据传送,还可以将立即数送给内存单元或 CPU 内部的寄存器。

    MOV 指令的搭配共有 7 种方式(书上)

    MOV reg, data/reg/segreg/mem
    MOV segreg, reg
    MOV mem, reg/data
    

    MOV 指令的搭配共有 9 种方式(讲解)

    (1)从累加器到存储器
    MOV  [1234H],AX
    (2)从存储器到累加器
    MOV  AX,[1234H]
    MOV AX,ES:[BX][SI]
    (3)从存储器或寄存器送段寄存器
    MOV  DS,DX
    MOV  ES,SS:[BX]
    注意:CS不作目的操作数!
    (4)从段寄存器送存储器或寄存器
    MOV  BX,ES
    MOV  AX,CS
    (5)从寄存器送寄存器
    MOV  AX,BX
    MOV  DI,DX
    注意:两个寄存器之间传输数据必须宽度相同!
    (6)从寄存器送存储器
    MOV  [SI],DI
    MOV  ES:[BP][SI],DX
    (7)从存储器送寄存器
    MOV  DX,ES:[BX][SI]
    MOV  CX,[BX]
    (8)立即数送寄存器
    MOV  DX,2847
    MOV  BX,OFFSET  TABLE
    (9)立即数送存储器
    MOV  BYTE PTR MEM,30H
    注意:
    立即数送存储器时,必须说明存储器的操作类型。
    可以用BYTE PTR或WORD PTR说明是字节操作还是字操作。
    

    注意:

    1. 立即数只能作为源操作数,不能作为目的操作数。
    2. 立即数不能直接传送到段寄存器,但可以通过通用寄存器传送。
    3. MOV 指令的两个操作类型必须相同,即两个操作数的位数相同。
    4. CPU 中的寄存器除 IP 外,都可以通过 MOV 指令访问。
    5. CS 只能作为源操作数,不能直接作为目的操作数。
    6. 段寄存器之间不能直接传送数据,两个内存单元之间不能直接传送。

    二、交换指令 XCHG

    指令格式:XCHG dst, src
    执行操作:(dst)<——>(src)
    标志位:不影响
    该指令把源操作数和目的操作数进行交换。该指令可以实现字节交换,也可以实现子交换,可以实现数据在 CPU 的内部寄存器之间进行交换,也可以实现数据在CPU内部寄存器和存储单元之间进行交换。
    XCHG格式:

    XCHG reg, reg/mem
    XCHG mem, reg
    

    例如:

    XCHG   AX,BX
    XCHG   AL,BH
    XCHG   BX,[1000H]
    XCHG   [2100H],DH
    XCHG   SI,AX
    

    注意:

    1. 源操作数与目的操作数不能同时为内容单元。
    2. 不能使用 CS、IP 作为操作数。
    3. XCHG 指令不影响标志位。

    三、堆操作指令 PUSH 和 POP

    1、入栈指令 PUSH
    指令格式:PUSH src
    执行操作:(SP)<——(SP)-2; ((SP))<——(src)L; ((SP)+1)<——(src)H
    标志位:不影响
    该指令首先使SP的内容减2,再将 src 推入堆栈。src可以为16位寄存器数或16位存储器数。
    入栈指令格式:

    PUSH mem16/reg16/segreg
    

    在这里插入图片描述

    2、出栈指令 POP
    指令格式:POP dst
    执行操作:(dst)L<——((SP)); (dst)H<——((SP)+1); (SP)<——(SP)+2
    标志位:不影响
    该指令首先使栈顶内容弹出到目的操作数 dst,再使SP的内容加2。dst 可以为16位寄存器数或16位存储器数。
    出栈指令格式:

    POP mem16/reg16/segreg
    

    在这里插入图片描述
    注意:

    1. 8086的堆栈操作都是字(16位)操作。
    2. 堆栈指令的操作数只能是存储器和寄存器操作数,而不能是立即数。
    3. 堆栈指令中堆栈指针SP是隐藏的操作数。
    4. 入栈时“先减后压”(SP先减2,再压入操作数),出栈时“先弹后加”(弹出操作数,SP加2)。
    5. CS寄存器可以入栈PUSH,但是不能出栈POP。因为POP CS会改变代码段寄存器CS的内容。

    四、累加器专用传送指令XLAT、IN、OUT

    1、XLAT(换码指令、查表指令)
    指令格式:XLAT
    执行操作:(AL)<——((BX)+(AL))
    标志位:不影响
    该指令通过 AL 和 BX 寄存器进行表格查找,即将累加器 AL 中的一字节转换为内存表格中的数据,表格的偏移地址有 BX 和 AL内容之和确定。
    在这里插入图片描述
    2、输入指令IN
    指令格式:IN AL/AX, port
    执行操作:(AL)/(AX)<——(port)
    标志位:不影响
    数据输入指令,即将一个字节或一个字从输入端口传送到AL或AX寄存器。

    3、输出指令OUT
    指令格式:OUT port,AL/AX
    执行操作:(port)<——(AL)/(AX)
    标志位:不影响
    数据输出指令,即将AL或AX寄存器中的一个字节或一个字传送到输出端口。

    注意:

    1. 8086系统的 I/O指令有两种寻址方式:(a)直接寻址,00H—FFH;(b)寄存器间接寻址,FFH—FFFFH,端口地址由 DX 寄存器进行数据传送。
    2. 只能用累加器 AL/AX 与I/O 端口进行数据传送。

    五、地址传送指令LEA、LDS、LES

    1、取有效地址指令LEA(Load Effective Address)
    指令格式:LEA reg16, mem
    执行操作:(reg16)<——offset mem
    标志位:不影响
    注释:该指令把存储单元内容的有效地址送到指定的寄存器中。
    MEM必须是各种寻址方式的存储器操作数;
    REG必须是16位的寄存器。
    用途:用一个寄存器作内存单元的地址指针。

    2、全指针地址传送指令LDS(Load pointer with DS)
    指令格式:LDS reg16, mem32
    执行操作:(reg16)<——(mem32)、DS<——(mem32)+2
    标志位:不影响
    注释:该指令把MEM指出的前两个存储单元的内容送入REG中,后两个存储单元的内容送入DS中。
    MEM表示双字(四个字节)的各种寻址方式的存储器操作数的首地址。
    REG必须是16位的寄存器,但不能是段寄存器。

    3、全指针地址传送指令LES(Load pointer with ES)
    指令格式:LES reg16, mem32
    执行操作:(reg16)<——(mem32)、ES<——(mem32)+2
    标志位:不影响
    注释:该指令与LDS大致相同,不同之处是以ES代替DS。
    通常:指定REG为DI寄存器。

    六、标志寄存器传送指令LAHF、SAHF、PUSHF、POPF

    1、LAHF(Load AH with Flags)标志位送AH
    格式:LAHF
    执行的操作:AH ← Flag/PSW的低位字节
    在这里插入图片描述
    2、SAHF(Store AH into Flags) AH送标志寄存器
    格式:SAHF
    执行的操作: Flag/PSW的低位字节 ← AH
    在这里插入图片描述
    3、PUSHF(Push the Flags) 标志进栈
    格式:PUSHF
    执行的操作:
    (SP)<——(SP)-2; ((SP))<——(FLAG)L; ((SP)+1)<——(FLAG)H

    4、POPF(Pop the Flags) 标志出栈
    格式:POPF
    执行的操作:
    (FLAG)L<——((SP)); (FLAG)H<——((SP)+1); (SP)<——(SP)+2

    PUSHF 指令和 POP 指令分别起保护标志和恢复标志的作用。

    展开全文
  • CPU的指令集(指令系统

    万次阅读 2019-02-06 20:00:09
    CPU的指令集(指令系统
                   

    要讲CPU,就必须先讲一下指令系统。指令系统指的是一个CPU所能够处理的全部指令的集合,是一个CPU的根本属性。
    比如我们现在所用的CPU都是 采用x86指令集的,他们都是同一类型的CPU,不管是PIII、Athlon或Joshua。我们也知道,世界上还有比PIII和Athlon快得多的 CPU,比如Alpha,但它们不是用x86指令集,不能使用数量庞大的基于x86指令集的程序,如Windows98。
    之所以说指令系统是一个CPU的 根本属性,是因为指令系统决定了一个CPU能够运行什么样的程序。所有采用高级语言编出的程序,都需要翻译(编译或解释)成为机器语言后才能运行,这些机器语言中所包含的就是一条条的指令。

    1、指令的格式
    一条指令一般包括两个部分:操作码和地址码。
    a) 操作码其实就是指令序列号,用来告诉CPU需要执行的是那一条指令。
    b) 地址码则复杂一些,主要包括源操作数地址、目的地址和下一条指令的地址。
    在某些指令中,地址码可以部分或全部省略,比如一条空指令就只有操作码而没有地址码。
    c) 举个例子吧,某个指令系统的指令长度为32位,操作码长度为8位,地址长度也为8位,且第一条指令是加,第二条指令是减。当它收到一个 “00000010000001000000000100000110”的指令时,先取出它的前8位操作码,即00000010,分析得出这是一个减法操作,有3个地址,分别是两个源操作数地址和一个目的地址。于是,CPU就到内存地址00000100处取出被减数,到00000001处取出减数,送到 ALU中进行减法运算,然后把结果送到00000110处。
    这只是一个相当简单化的例子,实际情况要复杂的多。

    2、 指令的分类与寻址方式
    一般说来,现在的指令系统有以下几种类型的指令:
    a) 算术逻辑运算指令:
    算术逻辑运算指令包括加减乘除等算术运算指令,以及与或非异或等逻辑运算指令。
    现在的指令系统还加入了一些十进制运算指令以及字符串运算指令等。
    b) 浮点运算指令:
    用于对浮点数进行运算。浮点运算要大大复杂于整数运算,所以CPU中一般还会有专门负责浮点运算的浮点运算单元。
    现在的浮点指令中一般还加入了向量指令,用于直接对矩阵进行运算,对于现在的多媒体和3D处理很有用。
    c) 位操作指令:
    学过C的人应该都知道C语言中有一组位操作语句,相对应的,指令系统中也有一组位操作指令,如左移一位右移一位等。对于计算机内部以二进制代码表示的数据来说,这种操作是非常简单快捷的。
    d) 其他指令:
    上面三种都是运算型指令,除此之外还有许多非运算的其他指令。这些指令包括:数据传送指令、堆栈操作指令、转移类指令、输入输出指令和一些比较特殊的指令,如特权指令、多处理器控制指令和等待、停机、空操作等指令。
    对于指令中的地址码,也会有许多不同的寻址(编址)方式,主要有直接寻址,间接寻址,寄存器寻址,基址寻址,变址寻址等,某些复杂的指令系统会有几十种甚至更多的寻址方式。

    3、 CISC,RISC,IA-64(EPIC)

    (1)CISC的产生、发展和现状
    CISC(Complex Instruction Set Computing,复杂指令集)。

    a) 一开始,计算机的指令系统只有很少一些基本指令,而其他的复杂指令全靠软件编译时通过简单指令的组合来实现。
    举个最简单的例子:一个a乘以b的操作就 可以转换为a个b相加来做,这样就用不着乘法指令了。当然,最早的指令系统就已经有乘法指令了,这是为什么呢?因为用硬件实现乘法比加法组合来得快得多。
    b) 由于那时的计算机部件相当昂贵,而且速度很慢,为了提高速度,越来越多的复杂指令被加入了指令系统中。
    c) 但是,很快又有一个问题:一个指令系统的指令数是受指令操作码的位数所限制的,如果操作码为8位,那么指令数最多为256条(2的8次方)。
    那么怎么办呢?指令的宽度是很难增加的,聪明的设计师们又想出了一种方案:操作码扩展。前面说过,操作码的后面跟的是地址码,而有些指令是用不着地址码或只用少量的地址码的。那么,就可以把操作码扩展到这些位置。
    举个简单的例子:如果一个指令系统的操作码为2位,那么可以有00、01、10、11四条不同的指令。现在把11作为保留,把操作码扩展到4位,那么 就可以有00、01、10、1100、1101、1110、1111七条指令。其中1100、1101、1110、1111这四条指令的地址码必须少两位。
    然后,为了达到操作码扩展的先决条件:减少地址码,设计师们又动足了脑筋,发明了各种各样的寻址方式,如基址寻址、相对寻址等,用以最大限度的压缩地址码长度,为操作码留出空间。

    就这样,慢慢地,CISC指令系统就形成了,大量的复杂指令、可变的指令长度、多种的寻址方式是CISC的特点,也是CISC的缺点:因为这些都大大 增加了解码的难度,而在现在的高速硬件发展下,复杂指令所带来的速度提升早已不及在解码上浪费点的时间。除了个人PC市场还在用x86指令集外,服务器以 及更大的系统都早已不用CISC了。x86仍然存在的唯一理由就是为了兼容大量的x86平台上的软件。

    在CISC微处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。

    (2)RISC的产生、发展和现状
    RISC(Reduced Instruction Set Computing,精简指令集)。

    1975年,IBM的设计师John Cocke研究了当时的IBM370CISC系统,发现其中占总指令数仅20%的简单指令却在程序调用中占了80%,而占指令数80%的复杂指令却只有20%的机会用到。由此,他提出了RISC的概念。

    复杂的指令系统必然增加微处理器的复杂性,使处理器的研制时间长,成本高。并且复杂指令需要复杂的操作,必然会降低计算机的速度。基于上述原因,20世纪80年代RISC型CPU诞生了,相对于CISC型CPU ,RISC型CPU不仅精简了指令系统,还采用了一种叫做“超标量和超流水线结构”,大大增加了并行处理能力(并行处理并行处理是指一台服务器有多个CPU同时处理。并行处理能够大大提升服务器的数据处理能力。部门级、企业级的服务器应支持CPU并行处理技术)。也就是说,架构在同等频率下,采用RISC架构的CPU比CISC架构的CPU性能高很多,这是由CPU的技术特征决定的

    RISC体系结构和设计思想是80年代初出现的,RISC与CISC指令系统是完全不同,完全决裂的指令系统。
    它的基本思路是:抓住CISC指令系统指令种类太多(其中80%以上都是程序中很少使用的指令)、指令格式不规范、寻址方式太多的缺点(例如,VAX 780的指令操作类型超过1000种,而Alpha只有不到50种指令),通过减少指令种类、规范指令格式和简化寻址方式,大量利用寄存器间操作,大大简化处理器的结构、优化VLSI器件使用效率,从而大幅度地提高处理器性能、并行处理能力和性价比。

    到80年代后期,RISC技术已经发展成为支持高端服务器系统的主流技术,各厂商纷纷推出了32位RISC微处理器。(如:IBM的PowerPC和Power2,Sun的SPARC,HP的PA-RISC 7000和MIPS的R系列等。)
    基于32位RISC芯片的产品在取得了很大的成功,应用日益广泛、软件大量积累、在市场上也产生巨大的影响。

    后来,Alpha作为64位RISC技术的领头羊,开创了64位RISC计算的新时代。
    各主要厂商也都在90年代先后推出了自己的64位RISC微处理器(包括:IBM的Power和PowerPC系列、HP的PA-RISC 8000系列、Sun的UltraSPARC系列和MIPS的R10K系列等)。在此期间,Alpha始终保持了性能领先的地位。

    由于RISC指令集自身的优势,64位RISC微处理器主要在高端服务器领域和高端企业市场上运用。


    事实证明,RISC是成功的。80年代末,各公司的RISC CPU如雨后春笋般大量出现,占据了大量的市场。到了90年代,Intel推出了Pentium处理器,从Pentium pro构架开始,也开始使用一种混合的CISC/RISC构架(注意:这里X86架构上有改变,但仍然是IA-32,是32位处理器,直到AMD推出了X86-64及Intel跟随推出IA-32e之后,才有64位技术)。

    RISC的最大特点是指令长度固定,指令格式种类少,寻址方式种类少,大多数是简单指令且都能在一个时钟周期内完成,易于设计超标量与流水线,寄存器 数量多,大量操作在寄存器之间进行。

    (3)IA-64(EPIC)产生、发展和现状
    IA-64 (Intel Architechure-64,英特尔64位体系架构)
    EPIC (EPIC--Explicitly Parallel Instruction Computing;显性并行指令计算)

    到90年代末,32位芯片的“霸主”Intel宣布与HP合作推出64位IA-64体系结构的处理器。
    Inter和HP从1994年开始合作开发新型的64位芯片,它们选择了一个与大多数RISC微处理器大不相同的方向,推出了一种新的64位指令系统体系结构IA-64。它们把这一体系结构称为EPIC(显性并行指令计算)。

    EPIC既不是RISC也不是CISC,它实质上是一种吸收了两者长处体系结构。IA-64的EPIC体系结构又在这两者教训基础上另辟蹊径。
    EPIC与Cydrome公司(一个80年代走向失败的小巨型机公司)的VLIW体系结构 (Very Long Instruction Word,超长指令集架构)有一定程度的相象之处。

    IA-64(EPIC)架构的处理器,目前只应用在Intel的Itanium(安腾)处理器(目前最高端的处理器)上,基于它专为要求苛刻的企业和技术应用而设计,是瞄准高端企业市场的。

    Intel 和HP合作开发的IA-64 EPIC体系结构安腾系列的先进性和开放性以及发展潜力,它将要取代64位RISC芯片成为未来系统设计和企业应用的主流平台。


    RISC与 IA-64(EPIC)相比:
    64位RISC和IA-64(EPIC)架构的CPU,主要是应用在要求苛刻的技术应用和企业的高端服务器平台上。
    IA-64CPU(安腾)可以说是目前最高端的处理器,基于IA-64先进性和开放性以及发展潜力,它必将要取代64位RISC芯片成为未来系统设计和企业应用的主流平台。
    但这向CPU历史上的技术革命,基于其技术架构、成本等各方面的因素,发展到主流民用市场的话,还有非常长的路要走。

    附:
    安腾处理器详细见文章:“Intel安腾处理器”
    RISC与IA64参考文章:“64位微处理器体系结构发展回顾和展望(64位微处理器的发展历史)(RISC与 IA-64<EPIC>架构微处理器的发展历史)”

    .

    .
    4、CPU的扩展指令集
    市面上Intel和AMD的桌面级处理器,在“X86指令集”的基础上,为了提升处理器各方面的性能,所以又各自开发新的指令集。指令集中包含了处理器对多媒体、3D处理等方面的支持,这些指令集能够提高处理器对这某些方面处理器能力,但是需要有必要的软件支持。

    1> MMX 指令集 (Multi Media Extended)
    MMX(Multi Media Extended,多媒体扩展指令集)指令集是Intel公司于1996年推出的一项多媒体指令增强技术。
    MMX指令集中包括有57条多媒体指令,通过这些指令可以一次处理多个数据,在处理结果超过实际处理能力的时候也能进行正常处理,这样在软件的配合下,就可以得到更高的性能。
    a) MMX的益处在于:当时存在的操作系统不必为此而做出任何修改便可以轻松地执行MMX程序。
    b) 问题也比较明显:那就是MMX指令集与x87浮点运算指令不能够同时执行,必须做密集式的交错切换才可以正常执行,这种情况就势必造成整个系统运行质量的下降。

    2> SSE指令集 (Streaming-Single instruction multiple data-Extensions)
    SSE(Streaming SIMD Extensions,单指令多数据流扩展)指令集是Intel在Pentium III处理器中率先推出的。其实,早在PIII正式推出之前,Intel公司就曾经通过各种渠道公布过所谓的KNI(Katmai New Instruction)指令集,这个指令集也就是SSE指令集的前身,并一度被很多传媒称之为MMX指令集的下一个版本,即MMX2指令集。
    究其背景,原来"KNI"指令集是Intel公司最早为其下一代芯片命名的指令集名称,而所谓的"MMX2"则完全是硬件评论家们和媒体凭感觉和印象对"KNI"的 评价,Intel公司从未正式发布过关于MMX2的消息。

    最后在Intel推出Pentium III处理器的时候,SSE指令集也终于水落石出。SSE指令集是为提高处理器浮点性能而开发的扩展指令集,
    SSE指令集包括了70条指令:
    a) 其中包含提高3D图形运算效率的50条SIMD(单指令多数据技术)浮点运算指令、
    b) 12条MMX 整数运算增强指令、
    c) 8条优化内存中连续数据块传输指令。
    理论上这些指令对目前流行的图像处理、浮点运算、3D运算、视频处理、音频处理等诸多多媒体应用起到全面强化的作用。

    SSE指令与3DNow!指令彼此互不兼容,但SSE包含了3DNow!技术的绝大部分功能,只是实现的方法不同。
    SSE兼容MMX指令,它可以通过SIMD和单时钟周期并行处理多个浮点数据来有效地提高浮点运算速度。

    3> SSE2指令集
    SSE2(Streaming SIMD Extensions 2,Intel官方称为SIMD 流技术扩展2 或 数据流单指令多数据扩展指令集 2)指令集是Intel公司在SSE指令集的基础上发展起来的。相比于SSE,SSE2使用了144个新增指令,扩展了MMX技术和SSE技术,这些指令提高了广大应用程序的运行性能。
    随MMX技术引进的SIMD整数指令从64位扩展到了128 位,使SIMD整数类型操作的有效执行率成倍提高。双倍精度浮点SIMD指令允许以 SIMD格式同时执行两个浮点操作,提供双倍精度操作支持有助于加速内容创建、财务、工程和科学应用。
    除SSE2指令之外,最初的SSE指令也得到增强,通过支持多种数据类型(例如,双字和四字)的算术运算,支持灵活并且动态范围更广的计算功能。SSE2指令可让软件开发员极其灵活的实施算法,并在运行诸如MPEG-2、MP3、3D图形等之类的软件时增强性能。

    Intel是从Willamette核心的Pentium 4开始支持SSE2指令集的,而AMD则是从K8架构的SledgeHammer核心的Opteron开始才支持SSE2指令集的。

    4> SE3指令集
    SSE3(Streaming SIMD Extensions 3,Intel官方称为SIMD 流技术扩展3 或 数据流单指令多数据扩展指令集3)指令集是Intel公司在SSE2指令集的基础上发展起来的。相比于SSE2,SSE3在SSE2的基础上又增加了13个额外的SIMD指令。
    SSE3 中13个新指令的主要目的是改进线程同步和特定应用程序领域,例如媒体和游戏。这些新增指令强化了处理器在浮点转换至整数、复杂算法、视频编码、SIMD浮点寄存器操作以及线程同步等五个方面的表现,最终达到提升多媒体和游戏性能的目的。

    Intel是从Prescott核心的Pentium 4开始支持SSE3指令集的,而AMD则是从2005年下半年Troy核心的Opteron开始才支持SSE3的。但是需要注意的是,AMD所支持的SSE3与Intel的SSE3并不完全相同,主要是删除了针对Intel超线程技术优化的部分指令。

    5> 3D Now !指令集
    由AMD公司提出的3DNow!指令集应该说出现在SSE指令集之前,并被AMD广泛应用于其K6-2 、K6-3以及Athlon(K7)处理器上。3DNow! 指令集技术其实就是21条机器码的扩展指令集。
    与Intel公司的MMX技术侧重于整数运算有所不同,3DNow!指令集主要针对三维建模、坐标变换 和效果渲染等三维应用场合,在软件的配合下,可以大幅度提高3D处理性能。
    因为受到Intel在商业上以及Pentium III成功的影响,软件在支持SSE上比起3DNow!更为普遍。
    后来在Athlon上开发了Enhanced 3DNow!。这些AMD标准的SIMD指令和Intel的SSE具有相同效能。Enhanced 3DNow! 继续增加至52个指令,包含了一些SSE码,因而在针对SSE做最佳化的软件中能获得更好的效能。

    6> SSE与3DNow!
    目前最新的Intel CPU可以支持SSE、SSE2、SSE3指令集。
    早期的AMD CPU仅支持3DNow!指令集,随着Intel的逐步授权,从Venice核心的Athlon 64开始,AMD的CPU不仅进一步发展了3DNow!指令集,并且可以支持Inel的SSE、SSE2、SSE3指令集。不过目前业界接受比较广泛的还是Intel的SSE系列指令集,AMD的3DNow!指令集应用比较少。

    转载:http://hi.baidu.com/halleyzhang/blog/item/12bad6fd6552c544d6887da3.html

               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • CPU结构--运算单元和总线单元 8086指令系统---intel指令集 汇编--x86汇编语言,只总结了一点点大概,不包含伪指令 3个知识点总结合集
  • CPU依靠指令来计算和控制系统. 每款CPU在设计时就规定了一系列与 其硬件电路相配合的指令系统。指令的 强弱也是CPU 的重要指标,指令集是 提高微处理器效率的最有效工具之一。
  • 计算机组成原理-CPU的组成与指令系统 CPU的组成 运算器 ALU算数逻辑单元:负责对数据算数运算和逻辑运算 AC累加寄存器:通用寄存器,当ALU运算时为ALU提供一个工作区 DR数据缓冲寄存器:在对内存读写时,暂时存储...

    计算机组成原理-CPU的组成与指令系统

    CPU的组成

    • 运算器
      • ALU算数逻辑单元:负责对数据算数运算逻辑运算
      • AC累加寄存器:通用寄存器,当ALU运算时为ALU提供一个工作区
      • DR数据缓冲寄存器:在对内存读写时,暂时存储读写数据(指令数据字),并将不同时间段内读写出来的数据分开
      • 状态条件寄存器PSW :保存运条件码和内容
    • 控制器
      • IR指令寄存器:当CPU执行一条指令时,先把指令从存储器读到DR缓冲寄存器 ,再送入IRID指令译码器根据IR译码出微操作指令,控制其它组成部件工作
      • PC程序计数器(指令计数器):具有寄存计数功能,在程序开始执行前,将程序的起始地址送入PC,该地址在加载到内存时确定,因此PC的内容是程序第一条指令的地址
      • AR地址寄存器:AR保存当前CPU当前所访问的内存单元地址
      • ID指令译码器:对指令的操作码进行分析和解释,识别操作,向控制器发出信号
    • 寄存器组
      • 可分为专用寄存器和通用寄存器,运算器控制器中的寄存器为专用
    • 内部总线

    相关题目

    在这里插入图片描述
    应用以上CPU与指令的总结,可以得出答案A

    展开全文
  • CPU指令集介绍

    千次阅读 2020-09-13 11:21:49
    所谓指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种新型的CPU在设计时就规定了一系列与其他硬件电路相配合的指令系统。而指令集的先进与否,也关系到CPU的性能发挥,它也是CPU性能体现的一个...

    (1)什么是指令集

    参考:

    http://product.pconline.com.cn/itbk/bjbzj/notebook/1109/2522116.html

    所谓指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种新型的CPU在设计时就规定了一系列与其他硬件电路相配合的指令系统。而指令集的先进与否,也关系到CPU的性能发挥,它也是CPU性能体现的一个重要标志。

    通俗的理解,指令集就是CPU能认识的语言,指令集运行于一定的微架构之上,不同的微架构可以支持相同的指令集,比如Intel和AMD的CPU的微架构是不同的,但是同样支持X86指令集,这很容易理解,指令集只是一套指令集合,一套指令规范,具体的实现,仍然依赖于CPU的翻译和执行。就像,同样是一段C语言代码,我们可以用不同的编译器去编译得到不同的可执行文件,当然,自然而言,效率也可能不一样。

    (2)指令集分类:

    从大类来分,一般将指令集分为精简指令集和复杂指令集。

    精简指令集,即RISC指令集reduced instruction set computer:(http://baike.baidu.com/view/981569.htm

    这种指令集的特点是指令数目少,每条指令都采用标准字长、执行时间短、中央处理器的实现细节对于机器级程序是可见的。

    复杂指令集,即CISC指令集Complex Instruction Set Computer:(http://baike.baidu.com/view/1177592.htm

    在CISC微处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。

    通俗的理解,RICS指令集是针对CISC指令集中的一些常用指令进行优化设计,放弃了一些复杂的指令,对于复杂的功能,需要通过组合指令来完成。自然,两者的使用场合不一样,对于复杂的系统,CISC更合适,否则,RICS更合适,且低功耗。

    注意:当初本没有RICS和CISC之分,最开始,Intel X86的第一个CPU定义了第一套指令集,这就是最开始的指令集,后来,一些公司发现很多指令并不常用,所以决定设计一套简洁高效的指令集,称之为RICS指令集,从而将原来的Intel X86指令集定义为CISC指令集。所以,并不是先有RICS后来才有CISC,而是反过来的。

    典型的RICS指令集的CPU有:ARM、MIPS等

    典型的CICS指令集的CPU有:Intel的x86指令集,以及现在的AMD的x86-64指令集。PS:AMD的兼容CPU也支持x86指令集,反之。

    (3)指令集发展:

    上面的分类是一个大致的分类,指令集是一直在发展的,在CISC指令集中,慢慢的发展了一系列的指令集:

    1. X86指令集:

    X86指令集是Intel为其第一块16位CPU(i8086)专门开发的,IBM1981年推出的世界第一台PC机中的CPU—i8088(i8086简化版)使用的也是X86指令,同时电脑中为提高浮点数据处理能力而增加的X87芯片系列数学协处理器则另外使用X87指令,以后就将X86指令集和X87指令集统称为X86指令集。

    2. MMX指令集:

    1997年Intel公司推出了多媒体扩展指令集MMX(MultiMedia eXtensions),它包括57条多媒体指令。MMX指令主要用于增强CPU对多媒体信息的处理能力,提高CPU处理3D图形、视频和音频信息的能力。

    3. SSE指令集:Streaming SIMD Extensions

    由于MMX指令并没有带来3D游戏性能的显著提升,所以,1999年Inter公司在Pentium III CPU产品中推出了数据流单指令序列扩展指令(SSE)。SSE兼容MMX指令,它可以通过SIMD(单指令多数据技术)和单时钟周期并行处理多个浮点来有效地提高浮点运算速度。

    4. SSE2指令集:

    在Pentium 4 CPU中,Inter公司开发了新指令集SSE2。这一次新开发的SSE2指令一共144条,包括浮点SIMD指令、整形SIMD指令、SIMD浮点和整形数据之间转换、数据在MMX寄存器中转换等几大部分。其中重要的改进包括引入新的数据格式,如:128位SIMD整数运算和64位双精度浮点运算等。

    5. SSE3指令集:

    相对于SSE2,SSE3又新增加了13条新指令,此前它们被统称为pni(prescott new instructions)。13条指令中,一条用于视频解码,两条用于线程同步,其余用于复杂的数学运算、浮点到整数转换和SIMD浮点运算。

    6. SSE4指令集:

    SSE4又增加了50条新的增加性能的指令,这些指令有助于编译、媒体、字符/文本处理和程序指向加速。

    7. 3D Now!扩展指令集:

    3D Now!指令集是AMD公司1998年开发的多媒体扩展指令集,共有21条指令。针对MMX指令集没有加强浮点处理能力的弱点,重点提高了AMD公司K6系列CPU对3D图形的处理能力。由于指令有限,3D Now!指令集主要用于3D游戏,而对其他商业图形应用处理支持不足。

    8. EM64T指令集:

    Intel公司的EM64T(Extended Memory 64 Technology)即64位内存扩展技术。该技术为服务器和工作站平台应用提供扩充的内存寻址能力,拥有更多的内存地址空间,可带来更大的应用灵活性,特别有利于提升音频视频编辑、CAD设计等复杂工程软件及游戏软件的应用。

    9. 3DNow!+指令集:
    在原有的指令集基础上,增加到52条指令,其中包含了部分SSE指令,该指令集主要用于新型的AMD CPU上。

    10. AVX指令集:

    Intel公司将为Sandy Bridge带来全新的指令扩展集Intel Advanced Vector Extensions (Intel AVX)。AVX是在之前的128bit扩展到和256bit的SIMD(Single Instruction, Multiple Data)。而Sandy Bridge的SIMD演算单元扩展到256bits的同时数据传输也获得了提升,所以从理论上看CPU内核浮点运算性能提升到了2倍。

     

    总结:可以看到,CPU指令集是一只在不断发展的,随着需求的不断增加,指令集也在不断扩展,从而提高CPU的性能。RICS指令集一般用于嵌入式等场合,所以指令集并没有太多的扩展。

     

    参考:

    http://baike.soso.com/v126959.htm

    http://baike.baidu.com/view/9174.htm

    http://product.pconline.com.cn/itbk/bjbzj/notebook/1109/2522116.html

     

    本文转载于:https://blog.csdn.net/gengshenghong/article/details/7006817

    展开全文
  • CPU与汇编第二章指令系统ppt课件 Intel 8086/8088 CPU 的寻址方式和指令系统
  • 指令系统 指令字指在计算机中的一个字表示的是一个指令,数据字同理 计算机中的所有指令字长不一(定长32位,不定长8位的倍数),所以在存储器存放时,可能会占用多个存储单元,从存储器读出并通过总线传输时,可能...
  • 指令系统

    千次阅读 2013-08-07 19:06:44
    CPU所能执行的的有机器指令的集合称为该CPU指令系统指令系统设计的好坏、功能的强弱,对整个计算机会产生很大的影响,指令系统是计算机中硬件与软件之间的接口。 1.指令格式 指令是指挥计算机完成各种操作的基本...
  • 【计算机系统CPU指令执行流程与指令流水线原理 一、指令执行流程 冯诺依曼架构CPU指令执行的五个阶段: 阶段 涉及的功能部件 IF 指令寄存器IR、程序计数器PC ID 指令译码器ID EXE CPU内各个单元:ALU...
  • RISC(精简指令系统计算机) CPU

    千次阅读 2012-06-10 21:55:30
    2、RISC的目标不是简单的缩减指令系统,而是使处理器的结构更简单、更合理,具有更高的性能和执行效率,并降低处理器的开发成本 3、特征 使用等长指令,目前典型长度为4个字节寻址方式少且简单,一般为2-3...
  • 既然不同的cpu指令系统都要求适合自己的目标程序才能运算识别,为什么我们安装的软件可以在各个不同的cpu指令集的机器上运行,而不用区分指令集版本
  • 一、指令系统指令系统是一个CPU所能够处理的全部指令集合,比如多数个人电脑采用的是x86指令集。CPU对指令需要进行译码才能运行,指令一般包含操作码和地址码,简单的例子为:某个指令系统的指令长度为32位,操作码...
  • CPU指令集存储位置在哪里?

    千次阅读 2019-10-11 17:00:25
    首先,CPU指令集是在CPU设计时固化在里面的“硬程序”,整合在CPU内部的逻辑电路中,不是什么代码,也谈不上“存储”。所以我们在CPU里是不可能找到“指令集”的实体的,如果非要具象化,那它就是“汇编语言”转换到...
  • 如何查看CPU指令

    千次阅读 2018-08-29 16:55:00
    如何查看CPU指令集 芯片 指令集 Intel i5 x86、MMX、SSE、SSE2、SSE3、SSSE3、x86-64、SSE4、SSE4.2、EM64T、SSE4.1、VT-X、AES、AVX、AVX2、FMA3、TSX Intel i7 ...
  • CPU指令集扫盲帖

    千次阅读 2017-02-16 14:42:54
    看到大家都在讨论“龙芯”的前景,但有一些不是很熟悉计算机的朋友可能会听的比较乱...简单的说,就是你吩咐CPU去做什么事情,给它下的命令。比如你有一个老婆,你给她下指令:老婆,倒水!老婆,做饭!老婆,洗碗!这
  • 计算机指令系统

    千次阅读 多人点赞 2020-05-27 12:01:48
    计算机指令系统性的发展,指令系统的性能要求,指令格式,操作数类型,指令和数据的寻址方式。
  • 8086指令系统

    千次阅读 2021-06-13 10:27:05
    8086指令系统数据传送指令通用传送指令一般传送指令MOV堆栈操作指令PUSH和POP交换指令XCHG查表转换指令XLAT输入输出指令取偏移地址指令其他传送指令算术运算指令加法指令普通加法指令ADD带进位的加法指令ADC加1指令...
  • CPU指令集——AVX2

    千次阅读 2019-08-26 12:07:12
    1.查看CPU所支持的指令集 借助CPU-Z工具,可查看当前CPU所支持的指令集: 由此可知,Intel i7-7700CPU支持AVX2指令集,但是不支持AVX-512指令集。 根据...
  • ARM指令系统

    万次阅读 2017-08-19 22:22:24
    ARM指令系统 3.1 ARM处理器的指令格式 3.1.1 ARM指令集的特点 第3章 ARM指令系统 第3章 ARM指令系统 3.1 ARM处理器的指令格式 3.1.1 ARM指令集的特点 ARM内核属于RISC结构,所以其指令集有着一些独特的...
  • cpu指令如何读写硬盘

    千次阅读 2015-11-23 19:42:04
    系统的所有数据基本都在硬盘中,所以知道怎么读写硬盘,对程序来说非常重要,所以我们先来探索下传说中的pio模式。 cpu要想直接访问设备里的数据,必须对设备存储空间进行编址。而硬盘数据数据太大,直接编址数据...
  • 8051单片机指令系统

    2009-03-06 10:34:42
    基本概念 指令是CPU根据人的意图来执行某种操作的命令。...一台计算机所能执行的全部指令的集合称为这个CPU指令系统。 采用助记符表示的指令称为汇编语言。 使用这种指令编写的程序称为汇编语言程序。
  • CPU结构 (一)CPU的功能 想了解CPU的结构,首先要知道CPU的功能。然后讨论什么样的结构能够为...执行指令CPU的控制器发出各种操作命令,由这些操作命令控制相应的部件去完成指令要求的操作,这些操作命令具有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 342,958
精华内容 137,183
关键字:

cpu指令系统