linux AT &T Assembly__linux

來源:互聯網
上載者:User

1.  第一個 operand 為 source, 第二個為 destination (和 Intel 的剛好相反).

將 EAX寄存器的內容拷貝到  EBX:

movl    %eax, %ebx

2. 寄存器的名字前要加上 %

3. 立即數前面加上 $. 靜態 C語言變數也加首碼 $

4. operand 的大小通過operator 的最後一個字元(b,w,l)來確定。b: 1 byte; w: 2 bytes; l: 4 bytes

5. memory 操作:

section:disp(base, index, scale)

相當與 intel 的

section:[base + index*scale + disp]

對於用作 scale 和 disp的常量,不用加首碼 $

下面是 Intel 和 AT&T 格式的 assembly code 的對比:

+------------------------------+------------------------------------+|       Intel Code             |      AT&T Code                     |+------------------------------+------------------------------------+| mov     eax,1                |  movl    $1,%eax                   |   | mov     ebx,0ffh             |  movl    $0xff,%ebx                |   | int     80h                  |  int     $0x80                     |   | mov     ebx, eax             |  movl    %eax, %ebx                || mov     eax,[ecx]            |  movl    (%ecx),%eax               || mov     eax,[ebx+3]          |  movl    3(%ebx),%eax              | | mov     eax,[ebx+20h]        |  movl    0x20(%ebx),%eax           || add     eax,[ebx+ecx*2h]     |  addl    (%ebx,%ecx,0x2),%eax      || lea     eax,[ebx+ecx]        |  leal    (%ebx,%ecx),%eax          || sub     eax,[ebx+ecx*4h-20h] |  subl    -0x20(%ebx,%ecx,0x4),%eax |


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.