Logo GNU
Kodovani Předchozí Následující Obsah

18. AT&T assembler

Toto je krátký úvod do AT&T syntaxe assembleru, která je používána většinou GNU programů procaujících s assemblerem. Tato syntax se používala jako standard dlouho před tím, než si Intel vymyslel, že to udělá jinak. AT&T má ale některé výhody - je jednodušší na zpracování, stejná na všech procesorech atd. Samozřejmě že existuje převaděč z Intel syntaxe, nebo NASM, což je assembler podobný TASMovi.

Základní rozdíly jsou:

Příklady:

        movw %bx, %ax                 (mov ax, bx)
        xorl %eax, %eax               (xor eax, eax)
        movw $1, %ax                  (mov ax,1)
        movb X, %ah                   (mov ah, byte ptr X)
        movw X, %ax                   (mov ax, word ptr X)
        movl X, %eax                  (mov eax, X)
        cbtw                          (cbw)
        cwtl                          (cwde)
        cwtd                          (cwd)
        cltd                          (cdq)
        lcall $S,$O                   (call far S:O)
        ljmp $S,$O                    (jump far S:O)
        lret $V                       (ret far V)
        movl 4(%ebp), %eax            (mov eax, [ebp+4])
        addl (%eax,%eax,4), %ecx      (add ecx, [eax + eax*4])
        movb $4, %fs:(%eax)           (mov fs:eax, 4)
        movl _array(,%eax,4), %eax    (mov eax, [4*eax + array])
        movw _array(%ebx,%eax,4), %cx (mov cx, [ebx + 4*eax + array])


Předchozí Následující Obsah

Dotazy a připomínky ohledně stránky posílejte na hubicka@paru.cas.cz