x86指令集(X86指令集的内容有哪些)
本文目录
- X86指令集的内容有哪些
- 什么是x86架构以及指令集未来趋向
- x86是哪个公司的
- X86是什么意思
- x32,x64,x86是什么意思
- x86指令集有多少个指令
- x86_64和X86_32区别是什么
- x86指令集有哪些劣势
X86指令集的内容有哪些
x86汇编指令集数据传输指令 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. MOVSX reg16,r/m8 ; o16 0F BE /r MOVSX reg32,r/m8 ; o32 0F BE /r MOVSX reg32,r/m16 ; o32 0F BF /r MOVZX reg16,r/m8 ; o16 0F B6 /r MOVZX reg32,r/m8 ; o32 0F B6 /r MOVZX reg32,r/m16 ; o32 0F B7 /r PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈. PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈. POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈. BSWAP 交换32位寄存器里字节的顺序 XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX ) XADD 先交换再累加.( 结果在第一个操作数里 ) XLAT 字节查表转换. —— BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即 0-FFH); 返回 AL 为查表结果. ( ; add word integer to st0 fsub, fsubr, fmul, fdiv, fdivr instruction are similar to fadd, have the same rules for operands and differ only in the perfomed computation. fsub substracts the source operand from the destination operand, fsubr substract the destination operand from the source operand, fmul multiplies the destination and source operands, fdiv divides the destination operand by the source operand and fdivr divides the source operand by the destination operand. fsubp, fsubrp, fmulp, fdivp, fdivrp perform the same operations and pop the register stack, the rules for operand are the same as for the faddp instruction. fisub, fisubr, fimul, fidiv, fidivr perform these operations after converting the integer source operand into floating–point value, they have the same rules for operands as fiadd instruction. fsqrt computes the square root of the value in st0 register, fsin computes the sine of that value, fcos computes the cosine of that value, fchs complements its sign bit, fabs clears its sign to create the absolute value, frndint rounds it to the nearest integral value, depending on the current rounding mode. f2xm1 computes the exponential value of 2 to the power of st0 and substracts the 1.0 from it, the value of st0 must lie in the range ?1.0 to +1.0. All these instruction store the result in st0 and have no operands. fsincos computes both the sine and the cosine of the value in st0 register, stores the sine in st0 and pushes the cosine on the top of FPU register stack. fptan computes the tangent of the value in st0, stores the result in st0 and pushes a 1.0 onto the FPU register stack. fpatan computes the arctangent of the value in st1 divided by the value in st0, stores the result in st1 and pops the FPU register stack. fyl2x computes the binary logarithm of st0, multiplies it by st1, stores the result in st1 and pop the FPU register stack; fyl2xp1 performs the same operation but it adds 1.0 to st0 before computing the logarithm. fprem computes the remainder obtained from dividing the
什么是x86架构以及指令集未来趋向
X86是由Intel推出的一种复杂指令集,用于控制芯片的运行的程序,现在X86已经广泛运用到了家用PC领域。 架构模式: x86架构是重要地可变指令长度的CISC(复杂指令集计算机,Complex Instruction Set Computer)。字组(word, 4字节)长度的存储器访问允许不对齐存储器地址,字组是以低位字节在前的顺序储存在存储器中。向前兼容性一直都是在x86架构的发展背后一股驱动力量(设计的需要决定了这项因素而常常导致批评,尤其是来自对手处理器的拥护者和理论界,他们对于一个被广泛认为是是落后设计的架构的持续成功感到不解)。但在较新的微架构中,x86处理器会把x86指令转换为更像RISC的微指令再予执行,从而获得可与RISC比拟的超标量性能,而仍然保持向前兼容。x86架构的处理器一共有四种执行模式,分别是真实模式,保护模式,系统管理模式以及虚拟V86模式。
x86是哪个公司的
Intel。
英特尔推出X86架构已满40年了,同486相比,Pentium向前迈进了一大步,而PⅡ的前进步伐则没有这么大了,X86 CPU的发展似乎已到了尽头。英特尔非常清楚,是X86指令集限制了CPU性能的进一步提高,因此,他们正同惠普共同努力开发下一代指令集架构(Instruction Set Architecture,ISA):EPIC(Explicitly Parallel Instruction Computing,显性并行指令计算)。
历史
1978年6月8日,Intel发布了新款16位微处理器“8086”,也同时开创了一个新时代:x86架构诞生了。x86指的是特定微处理器执行的一些计算机语言指令集,定义了芯片的基本使用规则,一如今天的x64、IA64等。
X86是什么意思
X86 是指CPU是32位版本的。
32位和64位系统区别如下:
1、设计初衷不同64位操作系统的设计初衷是为了满足机械设计和分析、三维动画、视频和创作,以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户需求,而32位系统,初期并没有考虑太多。
2、内存寻址能力不同32位系统,最大只能支持3.5GB内存,如果在32位系统中,使用的是4GB或者更大容量内存,电脑只可以识别到3.4GB可用,而64位系统最大可以支持128GB大内存。
3、运算速度不同安装64位系统,需要CPU必须支持64位,而64位CPUGPRs(General-PurposeRegisters,通用寄存器)的数据宽度为64位,64位指令集可以运行64位数据指令。
也就是说处理器一次可提取64位数据(只要两个指令,一次提取8个字节的数据),比32位(需要四个指令,一次提取4个字节的数据)提高了一倍,理论上性能会相应提升一倍。由于CPU早已普及了64位。
加上电脑内存如今标配都是4GB以上,普遍达到了8GB,甚至更高。因此64位系统是绝对的主流。如果电脑安装的是32位系统,8GB内存实际识别可用不到4GB,会严重浪费性能,因此今后大家下载系统要特别注意下,选择X64版本准没错。
x32,x64,x86是什么意思
x32是x86架构的32位拓展,向后兼容于16位的x86架构。计算机的CPU一次最多能处理32位数据。,当然32位计算机通常也可以处理16位和8位数据。
x64是x86架构的64位拓展,向后兼容于16位及32位的x86架构。x64于1999年由AMD设计,AMD首次公开64位集以扩展给x86,称为“AMD64”。其后也为英特尔所采用。
x86是一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合,X与处理器没有任何关系,它是一个对所有*86系统的简单的通配符定义。
扩展资料:
X86指令集是由美国Intel公司为其第一块16位CPU(i8086)专门开发的,美国IBM公司1981年推出的世界第一台PC机中的CPU--i8088(i8086简化版)使用的也是X86指令,同时电脑中为提高浮点数据处理能力而增加的X87芯片系列数学协处理器则另外使用X87指令。
以后就将X86指令集和X87指令集统称为X86指令集。虽然随着CPU技术的不断发展,为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel公司所生产的所有CPU仍然继续使用X86指令集。
x86指令集有多少个指令
cpu指令集是专利,不是版权,专利保护的是技术和产品外观设计。而版权保护的是作品文字性东西。指令集是存储在CPU内部,对CPU运算进行指导和优化的硬程序。拥有这些指令集,CPU就可以更高效地运行。Intel有x86,x86-64,MMX,SSE,SSE2,SSE3,SSSE3 (Super SSE3),SSE4.1,SSE4.2和针对64位桌面处理器的EM-64T。AMD主要是3D-Now!指令集。
x86_64和X86_32区别是什么
1、百度百科 x86-64
x86-64( 又称x64,即英文词64-bit extended,64位拓展 的简写)是x86架构的64位拓展,向后兼容于16位及32位的x86架构。x64于1999年由AMD设计,AMD首次公开64位集以扩展给x86,称为“AMD64”。其后也为英特尔所采用,现时英特尔称之为“Intel 64”,在之前曾使用过“Clackamas Technology” (CT)、“IA-32e”及“EM64T”。
苹果公司和RPM包管理员以“x86-64”或“x86_64”称呼此64位架构。甲骨文公司及Microsoft称之为“x64”。BSD家族及其他Linux发行版则使用“x64-64”,32位版本则称为“i386”(或 i486/586/686),Arch Linux用x86_64称呼此64位架构。
2、百度百科 x86
x86泛指一系列基于Intel 8086且向后兼容的中央处理器指令集架构。最早的8086处理器于1978年由Intel推出,为16位微处理器。
Intel在早期以80x86这样的数字格式来命名处理器,包括Intel 8086、80186、80286、80386以及80486,由于以“86”作为结尾,因此其架构被称为“x86”。由于数字并不能作为注册商标,因此Intel及其竞争者均在新一代处理器使用可注册的名称,如奔腾(Pentium)、酷睿(Core)、锐龙(Ryzen,AMD推出)。
x86的32位架构一般又被称作IA-32,全名为“Intel Architecture, 32-bit”。其64位架构由AMD率先推出,并被称为“AMD64”。之后也被Intel采用,被其称为“Intel 64”。一般也被称作“x86-64”、“x64”。
3、总结
32位说法有: x86、i386
64位说法有: x64、x86_64、x86-64、x64-64
x86指令集有哪些劣势
x86通用寄存器少,64位架构下只有16个。32位的只有8个。而且很多指令隐形的依赖或修改通用寄存器。8个使用有严格的限制,8个可以自由使用。这造成为了遵守这些寄存器使用规则,经常需要将寄存器之间的数据互相移动。因为有限的通用寄存器数量以及其中还有限制使用规则,为指令分配使用的寄存器时,经常会出现一些指令本没有依赖关系,现在共用同一个寄存器而出现了依赖关系。这对于处理器流水线技术来说非常不友好,因为指令之间存在依赖关系时,后一个指令需要等待前一个指令执行完毕才能执行。这不能发挥流水线的优点了。而为了实现高性能,则需要添加寄存器重命名技术,将指令之间虚拟的依赖关系取出。x86指令可变长度,而且是其中最糟糕的一种,确定一条指令有多少字节,需要从指令第一个字节逐个检测。现有x86指令结构最长15个字节,内部结构最多可划分成七八个部分。前一个部分确定了,才能确定下一个部分,直至确定指令末尾。这种复杂结构,对处理器指令解码模块非常不好,需要很多数量晶体管实现解码功能。而MIPS结构指令长度固定的,32位,4个字节。也就是说解码无须了解指令内部特征,就可以快速知道下一个指令的位置。指令地址+4就可以了。而且MIPS指令内部结构也非常简单。同样的解码模块使用很少 的晶体管就可以是实现解码了。8086实现为了提供20位地址空间,1兆字节的能力,设计了一个分段机制,因为16位通用寄存器只有16位地址访问能力。所以专门设计了一组段寄存器。每次访问内存时,都用段寄存器内的段基地址加上通用寄存器内的地址,得到一个20位地址。到了32位时代,其实这种分段机制可以彻底去掉,因为32位通用寄存器就有32位地址访问能力,4G字节内存。但是x86依然保留了这种分段机制,而且结果比原来的段寄存器还更复杂了。可是实际的操作系统不管WINDOWS还是LINUX都没有使用这种分段机制。这些操作系统通过对段寄存器以及相关结构通过合理设置,使得段基地址值为0。在软件层面相当于没有使用分段机制。但是处理器却必须实现这个分段机制。每次指令访问内存时,都需要段基地址加上通用寄存器内的地址,哪怕段基地址为0。实际上处理器上实现分段机制的模块完全多余,但是x86必须实现该功能。x86有很多种寻址机制。有几种寻址方式极少使用,结构也非常复杂,对于处理器设计有非常不友好。为了实现寻址机制,也需要大量的处理器设计。x86中有很多为了减少程序中指令数量而设计的指令,就是将多条指令的功能合并到一条指令上。虽然在效果上它们是相等的。但是这种超级指令,也对处理器设计增加了负担。x86到目前为止指令总数非常大,处理器内对指令的解码和执行指令的功能,相关的晶体管数量需要很大数量。其实x86中很多指令都可以拆解成多个功能更基本的指令。虽然现在的x86内部采取了RISC精简指令的设计思想,内部使用少量基本的指令表示。x86指令被解码器处理后可能拆解成多个x86内部RISC指令,再做后续处理。但是这本身还是需要一定复杂的结构实现它的。总之,指令结构复杂,增加了解码模块的负担。指令数量多,增加功能执行模块的负担。
更多文章:

click15杨策出什么事了(杨策为什么退出click15)
2025年2月21日 13:10

thumbdata(.thumbdata3-1763508120是什么文件)
2025年3月2日 00:20

oracle数据库客户端安装(怎样安装oracle数据库服务器)
2025年2月26日 15:40

delphi 安卓(大家觉得用delphi 开发安卓程序有前途么)
2025年3月15日 07:20

java语言程序设计第四版(自学java编程有什么好的教程吗)
2025年4月2日 15:20

computer science(计算机科学课(computer science)是否应该成为国内中学生的主课之一)
2025年2月17日 20:20

教师法心得体会(教育政策法规与教师职业道德规范的学习心得,500字,谢谢)
2025年3月8日 21:40

原码 反码 补码(计算机的原码,反码,补码是怎么回事可以举例说明吗)
2025年3月7日 08:30

jsp教程pdf(在JSP中怎么实现网页直接浏览PDF和WORD文件)
2025年2月20日 07:40

欢迎页面图片(U盘启动进PE装系统的那个欢迎界面图片怎么改)
2025年3月27日 12:20

filterconfig(请问如何在Filter中获取ServletConfig对象)
2025年2月22日 07:00

奥鹏教师教育网官网(奥鹏远程教育的成绩怎么查询在哪个网站查)
2025年2月11日 14:50