AT&T 彙編語法與Intel彙編語法 的認識

  • 參考學習:https://blog.csdn.net/happy987818/article/details/51557502

  • Intel就是平時學的windows上的彙編的語法

  • GCC上採用的是AT&T的彙編格式。因此極其有必要了解兩者的不同。

  • 寄存器

    • AT&T要加上%---->%eax
  • 與Intel上指令數的位置相反

    • mov edi,esi ----> mov %esi,%edi
  • AT&T的常數加上"$"前綴

  • 傳遞不同長度的數的時候

    • INTEL中用"word ptr"之類前綴
    • AT&T,用特定的後綴
      • movl----“雙字”
      • movw----“傳遞單字”
      • movb-----“傳遞一個字節”
  • 尋址方式的區別

    • 直接對比理解

      mov eax,[esp-8] movl -8(%ebp)

      mov fs:eax,8 movb $4,%fs:(%eax)

      mov cx,[ebx+4*eax+a] movw array(,%ebx,%eax,4),%cx

      英文的註釋:

      section:[base + index*scale + disp]
      

      is translated into the AT&T syntax

      section:disp(base, index, scale)
      

      mov eax,[eax*4+array] movl array(%eax,4)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章