1. 程式人生 > >64位彙編暫存器

64位彙編暫存器

64位彙編中暫存器除了段暫存器外,其餘的都是64位,即8位元組,所以棧結構的入棧和出棧位元組數都要求模8。相比32位彙編,64位彙編的通用暫存器在數量上多了8個,共有16個通用暫存器,其中八個是相容32位彙編的,分別是將原來的名稱e**改成了r**,如eax改成rax,其餘8個分別命名為R8、R9、……R15,EIP和EFlags都改成RIP和RFlags,高32位都是0.,浮點暫存器還是64位,於32位彙編中一樣,分別稱為MMX0(或記為FPR0)、……、MMX7(或記為FPR7)。另外,還增加了16個128位的多媒體暫存器——XMM0、……XMM15,俗稱SSE指令,XMM0等多媒體指令又是256位暫存器YMM0等的低128位,這些多媒體暫存器的出現可以是得float型資料計算非常快,一次算四個,相當於原來的兩倍,廣泛應用於遊戲、視訊和音樂中。用於除錯64位程式的偵錯程式有WndDbg和X64Dbg。rax等初始8個通用暫存器,取其中的低32位、第16位、第8位分別用相應的暫存器取便是,如rax分別是eax、ax、al,R8等後來按序號命名的暫存器取64位、低32位、低16位、低8位分別用R8、R8D、R8W、R8B等。