什么叫当前寄存器组

\u4ec0\u4e48\u662f\u5f53\u524d\u5de5\u4f5c\u5bc4\u5b58\u5668\uff1f8051\u5355\u7247\u673a\u5982\u4f55\u9009\u62e9\u5f53\u524d\u5de5\u4f5c\u5bc4\u5b58\u5668\u7ec4\uff1f

\u6709\u90a3\u51e0\u4e2a\u72b6\u6001\u4f4d\uff0c\u6539\u6539\u5bf9\u5e94\u7684\u72b6\u6001\u4f4d\u5c31\u53ef\u4ee5\uff0c\u5f88\u7b80\u5355\u7684\uff0c\u597d\u597d\u770b\u770b\u4e66

\u7247\u5185\u4f4e128B RAM\u5206\u4e3a\u5de5\u4f5c\u5bc4\u5b58\u5668\u533a\u3001\u4f4d\u5bfb\u5740\u533a\u548c\u7528\u6237RAM\u533a\u300200H~1FH\u8fd932\u4e2aRAM\u5355\u5143\u5171\u5206\u4e3a\u56db\u7ec4\uff0c\u6bcf\u7ec4\u7531R0~R7 8\u4e2a\u5de5\u4f5c\u5bc4\u5b58\u5668\u7ec4\u6210\uff0c\u7531RS0\u548cRS1\u7684\u72b6\u6001\u51b3\u5b9a\u6307\u5411\u54ea\u4e00\u7ec4\u3002

  寄存器是CPU内部重要的数据存储资源,是汇编程序员能直接使用的硬件资源之一。由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。
  寄存器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再读取内存的操作。在高级语言(如:C/C++语言)中,也有定义变量为寄存器类型的,这就是提高寄存器利用率的一种可行的方法。
  另外,由于寄存器的个数和容量都有限,不可能把所有中间结果都存储在寄存器中,所以,要对寄存器进行适当的调度。根据指令的要求,如何安排适当的寄存器,避免操作数过多的传送操作是一项细致而又周密的工作。有关“寄存器的分配策略”在后续课程《编译原理》中会有详细的介绍。
  由于16位/32位CPU是微机CPU的两个重要代表,所以,在此只介绍它们内部寄存器的名称及其主要功能。
  1、 16位寄存器组
  16位CPU所含有的寄存器有
  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所含有的寄存器有
  4个数据寄存器(EAX、EBX、ECX和EDX)
  2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)
  6个段寄存器(ES、CS、SS、DS、FS和GS)
  1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)
  具有一个输入端口和两个输出端口。

存器是CPU里用于存放用于计算的值的存储器。
现在的CPU里都有整数寄存器,浮点数寄存器。
支持MMX指令的又有MMX寄存器,相应的还有3D Now寄存器和SSE/SSE2寄存器

整数寄存器:
EAX
EBX
ECX
EDX
ESI
EDI
EIP
ESP
EBP
EFL

浮点寄存器
ST0
ST1
ST2
ST3
ST4
ST5
ST6
ST7
CTRL
STAT
TAGS

MMX寄存器:
MM0
MM1
MM2
MM3
MM4
MM5
MM6
MM7

SSE寄存器:
XMM0
XMM1
XMM2
XMM3
XMM4
XMM5
XMM6
XMM7
XMM00
XMM01
XMM02
XMM03
XMM10
XMM11
XMM12
XMM13
XMM20
XMM21
XMM22
XMM23
XMM30
XMM31
XMM32
XMM33
XMM40
XMM41
XMM42
XMM43
XMM50
XMM51
XMM52
XMM53
XMM60
XMM61
XMM62
XMM63
XMM70
XMM71
XMM72
XMM73

SSE2寄存器:
XMM0DL
XMM0DH
XMM1DL
XMM1DH
XMM2DL
XMM2DH
XMM3DL
XMM3DH
XMM4DL
XMM4DH
XMM5DL
XMM5DH
XMM6DL
XMM6DH
XMM7DL
XMM7DH

参数不是通过栈来传递而是通过积存器来传递,fastcall修饰的函数就是利用寄存器来传递的。

MCS-51单片机提供了4组工作寄存器,对于当前工作寄存器组的选择,是通过PSW中的RS1和RS0来进行选择。具体关系如下表: RS1RS0当前寄存器组00第0组工作寄存器01第1组工作寄存器10第2组工作寄存器11第3组工作寄存器

  • 浠涔堝彨褰撳墠瀵勫瓨鍣ㄧ粍
    绛旓細瀵勫瓨鍣ㄦ槸CPU鍐呴儴閲嶈鐨勬暟鎹瓨鍌ㄨ祫婧愶紝鏄眹缂栫▼搴忓憳鑳界洿鎺ヤ娇鐢ㄧ殑纭欢璧勬簮涔嬩竴銆傜敱浜庡瘎瀛樺櫒鐨勫瓨鍙栭熷害姣斿唴瀛樺揩锛屾墍浠ワ紝鍦ㄧ敤姹囩紪璇█缂栧啓绋嬪簭鏃讹紝瑕佸敖鍙兘鍏呭垎鍒╃敤瀵勫瓨鍣ㄧ殑瀛樺偍鍔熻兘銆傚瘎瀛樺櫒涓鑸敤鏉ヤ繚瀛樼▼搴忕殑涓棿缁撴灉锛屼负闅忓悗鐨勬寚浠ゅ揩閫熸彁渚涙搷浣滄暟锛屼粠鑰岄伩鍏嶆妸涓棿缁撴灉瀛樺叆鍐呭瓨锛屽啀璇诲彇鍐呭瓨鐨勬搷浣溿傚湪楂樼骇璇█(濡傦細C...
  • 瀵勫瓨鍣ㄧ粍鍩烘湰浠嬬粛
    绛旓細鍦ㄨ绠楁満澶勭悊鍣ㄧ殑鍐呴儴锛屽瘎瀛樺櫒琚涓哄叧閿殑鏁版嵁瀛樺偍鍖哄煙锛屾槸姹囩紪绋嬪簭鍛樺彲浠ョ洿鎺ユ搷鎺х殑纭欢璧勬簮銆傜敱浜庡瘎瀛樺櫒鐨勮鍐欓熷害杩滆秴鍐呭瓨锛屾眹缂栫▼搴忚璁′腑锛屽瘎瀛樺櫒鐨勫埄鐢ㄨ嚦鍏抽噸瑕併傚瘎瀛樺櫒鐨勪富瑕佸姛鑳芥槸鏆傚瓨绋嬪簭杩愯杩囩▼涓殑涓棿缁撴灉锛屼互杩呴熸彁渚涘悗缁寚浠ゆ墍闇鐨勬搷浣滄暟锛岃繖鏍峰彲浠ラ伩鍏嶉绻佸湴鍦ㄥ唴瀛樹笌瀵勫瓨鍣ㄤ箣闂磋繘琛屾暟鎹氦鎹紝鎻...
  • 濡備綍閫夋嫨褰撳墠宸ヤ綔瀵勫瓨鍣ㄧ粍?濡備綍瀹炵幇宸ヤ綔瀵勫瓨鍣ㄧ殑鐜板満淇濇姢?
    绛旓細鍦ㄩ夋嫨褰撳墠宸ヤ綔瀵勫瓨鍣ㄧ粍鏃讹紝闇瑕佽冭檻褰撳墠鐨勪换鍔″拰闇瑕佷娇鐢ㄧ殑瀵勫瓨鍣ㄦ暟閲銆備竴鑸潵璇达紝濡傛灉闇瑕佷娇鐢ㄧ殑瀵勫瓨鍣ㄦ暟閲忚緝灏戯紝鍙互閫夋嫨涓涓緝灏忕殑宸ヤ綔瀵勫瓨鍣ㄧ粍锛岃繖鏍峰彲浠ヨ妭鐪佺‖浠惰祫婧愩傚鏋滈渶瑕佷娇鐢ㄧ殑瀵勫瓨鍣ㄦ暟閲忚緝澶氾紝鍙互閫夋嫨涓涓緝澶х殑宸ヤ綔瀵勫瓨鍣ㄧ粍锛屼互纭繚鏈夎冻澶熺殑瀵勫瓨鍣ㄥ彲渚涗娇鐢ㄣ傚湪瀹炵幇宸ヤ綔瀵勫瓨鍣ㄧ殑鐜板満淇濇姢鏃讹紝鍙互閲...
  • 瀵勫瓨鍣ㄤ笌瀵勫瓨鍣ㄧ粍鏈夊尯鍒悧?
    绛旓細瀵勫瓨鍣ㄧ粍鏄寚鍔熻兘鐩稿悓鐨勪竴缁勫瘎瀛樺櫒锛岃绠楁満涓瑿PU涓湁閫氱敤瀵勫瓨鍣ㄧ粍鍜屾帶鍒跺瘎瀛樺櫒缁勫拰娈靛瘎瀛樺櫒缁勶紝閫氱敤瀵勫瓨鍣ㄧ粍鍖呮嫭AX銆丅X CX DX BP SP 绛夊瘎瀛樺櫒锛屾帶鍒跺瘎瀛樺櫒缁勪腑鏈塅LAGS 绛夊瘎瀛樺櫒锛屾瀵勫瓨鍣ㄧ粍涓湁DS CS绛夊瘎瀛樺櫒銆
  • ...51鍗曠墖鏈哄唴閮≧AM鍦板潃绌洪棿銆佸唴閮ㄧ壒娈婂姛鑳瀵勫瓨鍣绌洪棿鍙婁綅鍦板潃绌洪棿鐨...
    绛旓細鍦ㄤ换涓鏃跺埢锛孋PU鍙兘浣跨敤鍏朵腑鐨勪竴缁勫瘎瀛樺櫒锛屽苟涓旀妸姝e湪浣跨敤鐨勯偅缁勫瘎瀛樺櫒绉颁箣涓哄綋鍓嶅瘎瀛樺櫒缁銆傚埌搴曟槸鍝竴缁勶紝鐢辩▼搴忕姸鎬佸瓧瀵勫瓨鍣≒SW涓璕S1銆丷S0浣嶇殑鐘舵佺粍鍚堟潵鍐冲畾銆傞氱敤瀵勫瓨鍣ㄤ负CPU鎻愪緵浜嗗氨杩戝瓨鍌ㄦ暟鎹殑渚垮埄锛屾湁鍒╀簬鎻愰珮鍗曠墖鏈虹殑杩愮畻閫熷害銆傛澶栵紝浣跨敤閫氱敤瀵勫瓨鍣ㄨ繕鑳芥彁楂樼▼搴忕紪鍒剁殑鐏垫椿鎬э紝鍥犳锛屽湪鍗曠墖鏈虹殑搴旂敤...
  • ...CPU浣跨敤鐨鏄鍝宸ヤ綔瀵勫瓨鍣,濡備綍纭畾鍜屾敼鍙褰撳墠鐨勫伐浣滃瘎瀛樺櫒
    绛旓細鍗曠墖鏈哄湪澶嶄綅鍚庯紝rs0=rs1=0锛宑pu榛樿绗0缁勪负褰撳墠宸ヤ綔瀵勫瓨鍣ㄧ粍锛00h~07h涓哄瘎瀛樺櫒鍦板潃銆俻sw锛堢▼搴忕姸鎬佸瓧锛変腑鐨剅s0rs1鍙互鏈夊洓绉嶇粍鍚堬紝鐢ㄦ潵浠庡洓绉嶅伐浣滃瘎瀛樺櫒涓夋嫨銆傚垎鍒负rs0涓巖s1鍙01鐨勫洓绉嶇粍鍚堟潵鏀瑰彉cpu宸ヤ綔瀵勫瓨鍣ㄧ粍銆傚熀鏈氨鏄杩欎釜鎰忔濓紝
  • 浠涔堟槸cpu鐨勫瓨鍌ㄥ櫒鍜瀵勫瓨鍣
    绛旓細2銆瀵勫瓨鍣锛堝張绉扮紦瀛橈級涓鑸鏄鎸囩敱鍩烘湰鐨凴S瑙﹀彂鍣ㄧ粨鏋勮鐢熷嚭鏉ョ殑D瑙﹀彂锛屽氨鏄竴浜涗笌闈為棬鏋勬垚鐨勭粨鏋勶紝涓鑸暣鍚堝湪CPU鍐咃紝鍏惰鍐欓熷害璺烠PU鐨勮繍琛岄熷害鍩烘湰鍖归厤锛屼絾鍥犱负鎬ц兘浼樿秺锛屾墍浠ラ犱环鏄傝吹锛屼竴鑸ソ鐨凜PU涔熷氨鍙湁鍑燤B鐨2绾х紦瀛橈紝1绾х紦瀛樻洿灏忋備娇鐢ㄥ瘎瀛樺櫒鍙互缂╃煭鑷抽浂闀垮害銆佽妭鐪佸瓨鍌ㄧ┖闂达紝鎻愰珮鎸囦护鐨勬墽琛岄熷害銆
  • 51鍗曠墖鏈虹殑宸ヤ綔瀵勫瓨鍣R0鈥︹7鍦ㄥ崟鐗囨満瀹為檯宸ヤ綔涓,鏄涓嶆槸鏈澶氭湁7涓彲 ...
    绛旓細閫氱敤瀵勫瓨鍣ㄥ尯锛氾紙鍦板潃锛 00H~1FH 锛夊垎涓 4 缁勶細绗 0 缁勶細 00H~07H 绗 1 缁勶細 08H~0FH 绗 2 缁勶細 10H~17H 绗 3 缁勶細 18H~1FH 褰撳墠瀵勫瓨鍣ㄧ粍锛氱敱 PSW 瀵勫瓨鍣ㄧ殑 RS1 銆 RS0 鐨勭粍鍚堝喅瀹 鍗 RS1鍜孯S0鐨勭姸鎬00/01/10/11鍙敤浜庡垏鎹㈡墍鐢ㄧ殑瀵勫瓨鍣ㄧ粍 ...
  • 鍗曠墖鏈虹殑鍐呭瓨瀵诲潃鏂瑰紡鏄庢牱鐨?
    绛旓細鍙﹀鐗规畩鍔熻兘瀵勫瓨鍣涓紝鏈16涓彲浠ヤ綅瀵诲潃锛屾煡涓涓嬭〃鏍煎氨琛屼簡88H瀵瑰簲鐨勫瓧鑺傚湴鍧涔熶负88H銆傚悓鐞2AH-20H=0AH锛0AH*8=50H銆傚崟鐗囨満鐗囧唴RAM鐨20H~2FH锛岃繖鍗佸叚瀛楄妭锛屽彲浠ユ寜鐓р滀綅鈥濇潵瀵诲潃銆傝繖閲岄潰鍏辨湁128涓滀綅鍦板潃鈥濓紝鍒嗗埆涓00H~7FH銆備緥濡備綅鍦板潃4EH锛鏄鍦ㄢ滃瓧鑺傚湴鍧涓29H鐨勫瓧鑺傚崟鍏冣濅腑鐨勭6浣嶃
  • PSW=18H鏃,褰撳墠宸ヤ綔瀵勫瓨鍣ㄦ槸鍑犵粍?
    绛旓細PSW.4鏄RS1锛孭SW.3,鏄疪S0锛屼綔鐢細宸ヤ綔瀵勫瓨鍣ㄧ粍鐨勯夋嫨浣嶏紝鐢盧S1銆丷S0鏄仈鍚堜娇鐢ㄣ傦紙8051鍗曠墖鏈烘湁4缁勫瘎瀛樺櫒锛屾瘡缁勬湁8涓8浣嶇殑瀵勫瓨鍣級褰揜S1=0锛孯S0=0鏃讹紝涓虹涓缁勶紝鍗虫槸00H~07H銆 褰揜S1=0锛孯S0=1鏃讹紝涓虹浜岀粍锛屽嵆鏄08H~0FH銆 褰揜S1=1锛孯S0=0鏃讹紝涓虹涓夌粍锛屽嵆鏄10H~17H銆 褰揜S1...
  • 扩展阅读:寄存器地址对照表 ... 寄存器的三种类型 ... 寄存器组有哪些 ... 文言文翻译转换器 ... 寄存器的4个基本功能 ... 51单片机寄存器组 ... 工作寄存器组 ... 寄存器的四个功能 ... 寄存器组的作用 ...

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