NO IMAGE

       現在使用的開發環境是64位的Linux系統,偶爾會需要看一些彙編程式碼,當然基本上是at&t的,一般情況下32位彙編的知識足以應付了,但是,今天碰到一個問題,需要64位暫存器,所以搜尋64位彙編的相關資訊,確實少很多。現在瞭解了一些這方面的知識不敢獨享,特寫出來與大家分享一下。

首先是暫存器:

  8位:al,ah

16位:ax

32位:eax

64位:rax 新增(r8-r15暫存器,低32位r8d-r15d,低16位r8w-r15w,低8位r8b-r15b)

操作符標示:

  8位:b

16位:w

32位:l

64位:q

對比一下64位環境下,看一下下面的程式在32位彙編和64位彙編的差別:

32位:

64位:

使用32位暫存器eax和ebx才能夠儲存相應的64位資料,所以對ebp做了兩次取值運算,分別儲存高低位相應的值。