CPU的寄存器分为那几类? CPU的通用寄存器分为哪些?

CPU\u7684\u5bc4\u5b58\u5668\u5206\u4e3a\u90a3\u51e0\u7c7b?

\u4e24\u7c7b
\u5206\u522b\u662f
\u5730\u5740\u5bc4\u5b58\u5668
\u548c
\u6570\u636e\u7f13\u51b2\u5bc4\u5b58\u5668

\u5f53CPU\u548c\u5185\u5b58\u8fdb\u884c\u4fe1\u606f\u4ea4\u6362\uff0c\u5373CPU\u5411\u5185\u5b58\u5b58/\u53d6\u6570\u636e\u65f6\uff0c\u6216\u8005CPU\u4ece\u5185\u5b58\u4e2d\u8bfb\u51fa\u6307\u4ee4\u65f6\uff0c\u90fd\u8981\u4f7f\u7528\u5730\u5740\u5bc4\u5b58\u5668\u548c\u6570\u636e\u7f13\u51b2\u5bc4\u5b58\u5668\u3002

\u5bc4\u5b58\u5668\u662fCPU\u5185\u90e8\u91cd\u8981\u7684\u6570\u636e\u5b58\u50a8\u8d44\u6e90\uff0c\u662f\u6c47\u7f16\u7a0b\u5e8f\u5458\u80fd\u76f4\u63a5\u4f7f\u7528\u7684\u786c\u4ef6\u8d44\u6e90\u4e4b\u4e00\u3002\u7531\u4e8e\u5bc4\u5b58\u5668\u7684\u5b58\u53d6\u901f\u5ea6\u6bd4\u5185\u5b58\u5feb\uff0c\u6240\u4ee5\uff0c\u5728\u7528\u6c47\u7f16\u8bed\u8a00\u7f16\u5199\u7a0b\u5e8f\u65f6\uff0c\u8981\u5c3d\u53ef\u80fd\u5145\u5206\u5229\u7528\u5bc4\u5b58\u5668\u7684\u5b58\u50a8\u529f\u80fd\u3002\u5bc4\u5b58\u5668\u4e00\u822c\u7528\u6765\u4fdd\u5b58\u7a0b\u5e8f\u7684\u4e2d\u95f4\u7ed3\u679c\uff0c\u4e3a\u968f\u540e\u7684\u6307\u4ee4\u5feb\u901f\u63d0\u4f9b\u64cd\u4f5c\u6570\uff0c\u4ece\u800c\u907f\u514d\u628a\u4e2d\u95f4\u7ed3\u679c\u5b58\u5165\u5185\u5b58\uff0c\u518d\u8bfb\u53d6\u5185\u5b58\u7684\u64cd\u4f5c\u3002\u5728\u9ad8\u7ea7\u8bed\u8a00(\u5982\uff1aC/C++\u8bed\u8a00)\u4e2d\uff0c\u4e5f\u6709\u5b9a\u4e49\u53d8\u91cf\u4e3a\u5bc4\u5b58\u5668\u7c7b\u578b\u7684\uff0c\u8fd9\u5c31\u662f\u63d0\u9ad8\u5bc4\u5b58\u5668\u5229\u7528\u7387\u7684\u4e00\u79cd\u53ef\u884c\u7684\u65b9\u6cd5\u3002\u5bc4\u5b58\u5668\u7684\u4e2a\u6570\u548c\u5bb9\u91cf\u90fd\u6709\u9650\uff0c\u4e0d\u53ef\u80fd\u628a\u6240\u6709\u4e2d\u95f4\u7ed3\u679c\u90fd\u5b58\u50a8\u5728\u5bc4\u5b58\u5668\u4e2d\uff0c\u6240\u4ee5\uff0c\u8981\u5bf9\u5bc4\u5b58\u5668\u8fdb\u884c\u9002\u5f53\u7684\u8c03\u5ea6\u3002
\u6839\u636e\u6307\u4ee4\u7684\u8981\u6c42\uff0c\u5982\u4f55\u5b89\u6392\u9002\u5f53\u7684\u5bc4\u5b58\u5668\uff0c\u907f\u514d\u64cd\u4f5c\u6570\u8fc7\u591a\u7684\u4f20\u9001\u64cd\u4f5c\u662f\u4e00\u9879\u7ec6\u81f4\u800c\u53c8\u5468\u5bc6\u7684\u5de5\u4f5c\u300216\u4f4d\u5bc4\u5b58\u5668\u7ec4\uff0c16\u4f4dCPU\u6240\u542b\u6709\u7684\u5bc4\u5b58\u5668\u6709(\u89c1\u56fe2.1\u4e2d16\u4f4d\u5bc4\u5b58\u5668\u90e8\u5206)\uff1a4\u4e2a\u6570\u636e\u5bc4\u5b58\u5668(AX\u3001BX\u3001CX\u548cDX)\uff1b2\u4e2a\u53d8\u5740\u548c\u6307\u9488\u5bc4\u5b58\u5668(SI\u548cDI)2\u4e2a\u6307\u9488\u5bc4\u5b58\u5668(SP\u548cBP)\uff1b4\u4e2a\u6bb5\u5bc4\u5b58\u5668(ES\u3001CS\u3001SS\u548cDS)\uff1b1\u4e2a\u6307\u4ee4\u6307\u9488\u5bc4\u5b58\u5668(IP)1\u4e2a\u6807\u5fd7\u5bc4\u5b58\u5668(Flags)\uff1b32\u4f4d\u5bc4\u5b58\u5668\u7ec4\uff0c32\u4f4dCPU\u9664\u4e86\u5305\u542b\u4e86\u5148\u524dCPU\u7684\u6240\u6709\u5bc4\u5b58\u5668\uff0c\u5e76\u628a\u901a\u7528\u5bc4\u5b58\u5668\u3001\u6307\u4ee4\u6307\u9488\u548c\u6807\u5fd7\u5bc4\u5b58\u5668\u4ece16\u4f4d\u6269\u5145\u621032\u4f4d\u4e4b\u5916\uff0c\u8fd8\u589e\u52a0\u4e862\u4e2a16\u4f4d\u7684\u6bb5\u5bc4\u5b58\u5668\uff1aFS\u548cGS\u300232\u4f4dCPU\u6240\u542b\u6709\u7684\u5bc4\u5b58\u5668\u6709\uff0c4\u4e2a\u6570\u636e\u5bc4\u5b58\u5668(EAX\u3001EBX\u3001ECX\u548cEDX)\uff1b2\u4e2a\u53d8\u5740\u548c\u6307\u9488\u5bc4\u5b58\u5668(ESI\u548cEDI)2\u4e2a\u6307\u9488\u5bc4\u5b58\u5668(ESP\u548cEBP)\uff1b6\u4e2a\u6bb5\u5bc4\u5b58\u5668(ES\u3001CS\u3001SS\u3001DS\u3001FS\u548cGS)\uff1b1\u4e2a\u6307\u4ee4\u6307\u9488\u5bc4\u5b58\u5668(EIP)1\u4e2a\u6807\u5fd7\u5bc4\u5b58\u5668(EFlags)\u3002

寄存器是CPU内部重要的数据存储资源,是汇编程序员能直接使用的硬件资源之一。
由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。
寄存器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再读取内存的操作。在高级语言(如:C/C++语言)中,也有定义变量为寄存器类型的,这就是提高寄存器利用率的一种可行的方法。

另外,由于寄存器的个数和容量都有限,不可能把所有中间结果都存储在寄存器中,所以,要对寄存器进行适当的调度。根据指令的要求,如何安排适当的寄存器,避免操作数过多的传送操作是一项细致而又周密的工作。
有关“寄存器的分配策略”在《编译原理》中会有详细的介绍。
1、 16位寄存器组

16位CPU所含有的寄存器有(见图2.1中16位寄存器部分):

4个数据寄存器(AX、BX、CX和DX)
2个变址和指针寄存器(SI和DI) 2个指针寄存器(SP和BP)
4个段寄存器(ES、CS、SS和DS)
1个指令指针寄存器(IP) 1个标志寄存器(Flags)

2、 32位寄存器组

32位CPU除了包含了先前CPU的所有寄存器,并把通用寄存器、指令指针和标志寄存器从16位扩充成32位之外,还增加了2个16位的段寄存器:FS和GS。

32位CPU所含有的寄存器有(见图2.1中的寄存器):

4个数据寄存器(EAX、EBX、ECX和EDX)
2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)
6个段寄存器(ES、CS、SS、DS、FS和GS)
1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)
目前的CPU都有64位寄存器..但具体内容还没找到!

两类 分别是 地址寄存器 和 数据缓冲寄存器当CPU和内存进行信息交换,即CPU向内存存/取数据时,或者CPU从内存中读出指令时,都要使用地址寄存器和数据缓冲寄存器。

数据寄存器,地址寄存器,通用目的寄存器,浮点寄存器,常数寄存器, 向量寄存器,特殊目的寄存器, 指令寄存器,索引寄存器。

  • 绠杩CPU鍐呮湁鍝簺涓昏瀵勫瓨鍣鍙婁綔鐢
    绛旓細6銆鏍囧織瀵勫瓨鍣
  • CPU鐨勫瘎瀛樺櫒鍒嗕负閭e嚑绫?
    绛旓細16浣岰PU鎵鍚湁鐨勫瘎瀛樺櫒鏈(瑙佸浘2.1涓16浣嶅瘎瀛樺櫒閮ㄥ垎)锛4涓暟鎹瘎瀛樺櫒(AX銆丅X銆丆X鍜孌X)2涓彉鍧鍜屾寚閽堝瘎瀛樺櫒(SI鍜孌I) 2涓寚閽堝瘎瀛樺櫒(SP鍜孊P)4涓瀵勫瓨鍣(ES銆丆S銆丼S鍜孌S)1涓寚浠ゆ寚閽堝瘎瀛樺櫒(IP) 1涓爣蹇楀瘎瀛樺櫒(Flags)2銆 32浣嶅瘎瀛樺櫒缁 32浣岰PU闄や簡鍖呭惈浜嗗厛鍓岰PU鐨勬墍鏈夊瘎瀛樺櫒锛屽苟鎶婇氱敤瀵勫瓨鍣ㄣ佹寚...
  • CUP涓湁鍝鍑犵被涓昏瀵勫瓨鍣,鐢ㄤ竴鍙ヨ瘽鍥炵瓟鍏跺姛鑳
    绛旓細涓棿瀵勫瓨鍣ㄣ佹弿杩板瓧瀵勫瓨鍣ㄣ丅瀵勫瓨鍣銆1銆佷腑闂村瘎瀛樺櫒锛氬叾闀垮害涓 128 浣嶏紝鍏堕氳繃鎿嶄綔鏁版潵鍐冲畾瀹為檯闀垮害銆侷R 鍦ㄢ滆繘鏍堝苟鍙栨暟鈥濇寚浠や腑鍙戞尌閲嶈浣滅敤锛屽湪鎵ц璇ユ寚浠よ繃绋嬩腑锛屽皢ACC鐨勫唴瀹瑰彂閫佷簬IR锛屼箣鍚庡皢鎿嶄綔鏁板彇鍒癆CC锛屽悗灏咺R鍐呭杩涙爤銆2銆佹弿杩板瓧瀵勫瓨鍣細鍏朵富瑕佸簲鐢ㄤ簬瀛樻斁涓庝慨鏀规弿杩板瓧涓侱R鐨勯暱搴︿负64浣嶏紝...
  • CPU涓湁鍝簺涓昏瀵勫瓨鍣?绠杩拌繖浜涘瘎瀛樺櫒鐨勫姛鑳?
    绛旓細1銆侀氱敤瀵勫瓨鍣ㄧ粍 閫氱敤瀵勫瓨鍣ㄧ粍鍖呮嫭AX銆丅X銆丆X銆丏X4涓16浣嶅瘎瀛樺櫒锛岀敤浠ュ瓨鏀16浣嶆暟鎹垨鍦板潃銆備篃鍙敤浣8浣嶅瘎瀛樺櫒銆傜敤浣8浣嶅瘎瀛樺櫒鏃跺垎鍒涓篈H銆丄L銆丅H銆丅L銆丆H銆丆L銆丏H銆丏L銆2銆佹瀵勫瓨鍣 閲囩敤鍒嗘鎶鏈潵瑙e喅銆傚皢1MB鐨勫瓨鍌ㄧ┖闂村垎鎴愯嫢骞查昏緫娈碉紝姣忔鏈闀64KB锛岃繖浜涢昏緫娈靛湪鏁翠釜瀛樺偍绌洪棿涓彲娴姩銆3銆佹寚閽...
  • CPU鐨勫瘎瀛樺櫒鍒嗕负閭e嚑绫?
    绛旓細涓ょ被 鍒嗗埆鏄 鍦板潃瀵勫瓨鍣 鍜 鏁版嵁缂撳啿瀵勫瓨鍣 褰揅PU鍜屽唴瀛樿繘琛屼俊鎭氦鎹紝鍗矯PU鍚戝唴瀛樺瓨/鍙栨暟鎹椂锛屾垨鑰匔PU浠庡唴瀛樹腑璇诲嚭鎸囦护鏃讹紝閮借浣跨敤鍦板潃瀵勫瓨鍣ㄥ拰鏁版嵁缂撳啿瀵勫瓨鍣ㄣ
  • 瀵勫瓨鍣ㄥ垎涓哄嚑绫
    绛旓細1銆佸湴鍧瀵勫瓨鍣锛氭寔鏈夊瓨鍌ㄥ櫒鍦板潃锛屼互鍙婄敤鏉ヨ闂瓨鍌ㄥ櫒銆2銆侀氱敤鐩殑瀵勫瓨鍣細鍙互淇濆瓨鏁版嵁鎴栧湴鍧銆3銆佹诞鐐瑰瘎瀛樺櫒锛氱敤鏉ュ偍瀛樻诞鐐规暟瀛椼4銆佸父鏁板瘎瀛樺櫒锛氱敤鏉ユ寔鏈夊彧璇荤殑鏁板笺5銆佸悜閲忓瘎瀛樺櫒锛氱敤鏉ュ偍瀛樼敱鍚戦噺澶勭悊鍣杩愯SIMD鎸囦护鎵寰楀埌鐨勬暟鎹6銆佺壒娈婄洰鐨勫瘎瀛樺櫒锛氬偍瀛CPU鍐呴儴鐨勬暟鎹紝濡傜▼搴忚鏁板櫒锛屽爢鏍堝瘎瀛樺櫒锛屼互鍙...
  • CPU涓湁鍝簺涓昏瀵勫瓨鍣
    绛旓細涓嶅悓鏋舵瀯鐨CPU瀵勫瓨鍣鏄笉涓鏍风殑锛屽嵆浣挎槸鍚屼竴鏋舵瀯锛屼笉鍚屽瀷鍙风殑CPU涔熸湁宸埆銆傝繖閲屼互80386鐨凜PU涓轰緥锛瀵勫瓨鍣ㄥ垎涓6绫汇傚叾涓彲渚涘簲鐢ㄧ▼搴忓憳浣跨敤鐨勪负閫氱敤瀵勫瓨鍣紙EAX銆丒BX銆丒CX銆丒DX銆丒SP銆丒BP銆丒SI銆丒DI锛夈佹瀵勫瓨鍣紙CS銆丏S銆丼S銆丒S銆丗S銆丟S锛夊拰鏍囧織鍜屾帶鍒跺瘎瀛樺櫒锛圗IP銆丒FLAGS锛夈傚彲浠ユ寚瀹氫换浣曢氱敤瀵勫瓨鍣ㄧ殑...
  • 鎳傛眹缂栫殑鏉! 8086/8088鐨勩 1.Cpu鏈夊摢鍑犵被瀵勫瓨鍣鍟?閫氱敤瀵勫瓨鍣ㄦ湁鍝簺...
    绛旓細闂1锛欳pu鏈夊摢鍑犵被瀵勫瓨鍣ㄥ晩锛熼氱敤瀵勫瓨鍣ㄦ湁鍝簺锛熸瀵勫瓨鍣ㄦ湁鍝簺鍟婏紵绛旓細CPU鏈夐氱敤瀵勫瓨鍣ㄣ佹瀵勫瓨鍣ㄣ佹寚浠鎸囬拡瀵勫瓨鍣ㄣ佹爣蹇楀瘎瀛樺櫒锛涗竴銆侀氱敤瀵勫瓨鍣ㄦ湁锛氾紙1锛夋暟鎹瘎瀛樺櫒锛欰X,BX,CX,DX锛堟湁鏃惰繖鍥涗釜16浣嶅瘎瀛樺櫒涔熷彲浠ュ綋鍋氬叓涓嫭绔嬬殑8浣嶅瘎瀛樺櫒浣跨敤锛欰H,AL,BH,BL,CH,CL,DH,DL锛夛紱锛2锛夋寚閽堝瘎瀛樺櫒鍜屽彉鍧...
  • CPU涓湁鍝簺涓昏瀵勫瓨鍣,绠杩拌繖浜涘瘎瀛樺櫒鐨勫姛鑳?
    绛旓細鍦涓ぎ澶勭悊鍣ㄧ殑鎺у埗閮ㄤ欢涓紝鍖呭惈鐨勫瘎瀛樺櫒鏈夋寚浠ゅ瘎瀛樺櫒鍜岀▼搴忚鏁板櫒銆傚湪涓ぎ澶勭悊鍣ㄧ殑绠楁湳鍙婇昏緫閮ㄤ欢涓紝瀛樺櫒鏈夌疮鍔犲櫒銆傚瘎瀛樺櫒锛屾槸闆嗘垚鐢佃矾涓潪甯搁噸瑕佺殑涓绉嶅瓨鍌ㄥ崟鍏冿紝閫氬父鐢辫Е鍙戝櫒缁勬垚銆傚湪闆嗘垚鐢佃矾璁捐涓紝瀵勫瓨鍣ㄥ彲鍒嗕负鐢佃矾鍐呴儴浣跨敤鐨勫瘎瀛樺櫒鍜屽厖褰撳唴澶栭儴鎺ュ彛鐨勫瘎瀛樺櫒杩欎袱绫汇傚唴閮ㄥ瘎瀛樺櫒涓嶈兘琚閮ㄧ數璺垨杞欢璁块棶...
  • 涓惧嚭CPU涓6涓富瑕瀵勫瓨鍣鐨勫悕绉板強鍔熻兘
    绛旓細1. 鏁版嵁瀵勫瓨鍣 鏁版嵁瀵勫瓨鍣紙Data Register锛孌R锛夊張绉版暟鎹紦鍐插瘎瀛樺櫒锛屽叾涓昏鍔熻兘鏄綔涓篊PU鍜屼富瀛樸佸璁句箣闂翠俊鎭紶杈撶殑涓浆绔欙紝鐢ㄤ互寮ヨˉCPU鍜屼富瀛樸佸璁句箣闂存搷浣滈熷害涓婄殑宸紓銆傛暟鎹瘎瀛樺櫒鐢ㄦ潵鏆傛椂瀛樻斁鐢变富瀛樺偍鍣ㄨ鍑虹殑涓鏉℃寚浠ゆ垨涓涓暟鎹瓧锛涘弽涔嬶紝褰撳悜涓诲瓨瀛樺叆涓鏉℃寚浠ゆ垨涓涓暟鎹瓧鏃讹紝涔熷皢瀹冧滑鏆傛椂瀛樻斁鍦...
  • 扩展阅读:主板和cpu对照一览表 ... cpu中常用的专用寄存器 ... 计算机指令主要存放在cpu ... cpu的六个主要寄存器 ... cpu5种专用寄存器 ... 寄存器分为哪两大类 ... cpu不包括什么 ... cpu内部的寄存器组包括 ... cpu配备很少的通用寄存器 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网