Package mini_c

Class X86_64


  • public class X86_64
    extends java.lang.Object
    programme assembleur x86-64
    • Constructor Summary

      Constructors 
      Constructor Description
      X86_64()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) X86_64 addq​(java.lang.String op1, java.lang.String op2)  
      (package private) X86_64 andq​(java.lang.String op1, java.lang.String op2)  
      (package private) X86_64 call​(java.lang.String s)  
      (package private) X86_64 callstar​(java.lang.String op)  
      (package private) X86_64 cmpb​(int n, java.lang.String op)  
      (package private) X86_64 cmpb​(java.lang.String op1, java.lang.String op2)  
      (package private) X86_64 cmpl​(int n, java.lang.String op)  
      (package private) X86_64 cmpl​(java.lang.String op1, java.lang.String op2)  
      (package private) X86_64 cmpq​(int n, java.lang.String op)  
      (package private) X86_64 cmpq​(java.lang.String op1, java.lang.String op2)  
      (package private) X86_64 cmpw​(int n, java.lang.String op)  
      (package private) X86_64 cmpw​(java.lang.String op1, java.lang.String op2)  
      (package private) X86_64 cqto()  
      (package private) X86_64 data​(java.lang.String s)  
      (package private) X86_64 decq​(java.lang.String op)  
      (package private) X86_64 dlabel​(java.lang.String s)
      ajoute une étiquette dans le segment de données
      (package private) X86_64 emit​(java.lang.String s)
      ajoute une nouvelle instruction à la fin du code
      (package private) X86_64 globl​(java.lang.String l)  
      (package private) X86_64 idivq​(java.lang.String op)  
      (package private) X86_64 imulq​(java.lang.String op1, java.lang.String op2)  
      (package private) X86_64 incq​(java.lang.String op)  
      (package private) X86_64 inline​(java.lang.String s)
      ajoute de l'assembleur à la fin de la zone text (par exemple pour ajouter des pirmitives écrites en assembleur)
      (package private) X86_64 ja​(java.lang.String s)  
      (package private) X86_64 jae​(java.lang.String s)  
      (package private) X86_64 jb​(java.lang.String s)  
      (package private) X86_64 jbe​(java.lang.String s)  
      (package private) X86_64 je​(java.lang.String s)  
      (package private) X86_64 jg​(java.lang.String s)  
      (package private) X86_64 jge​(java.lang.String s)  
      (package private) X86_64 jl​(java.lang.String s)  
      (package private) X86_64 jle​(java.lang.String s)  
      (package private) X86_64 jmp​(java.lang.String s)  
      (package private) X86_64 jmpstar​(java.lang.String op)  
      (package private) X86_64 jne​(java.lang.String s)  
      (package private) X86_64 jns​(java.lang.String s)  
      (package private) X86_64 jnz​(java.lang.String s)  
      (package private) X86_64 js​(java.lang.String s)  
      (package private) X86_64 jz​(java.lang.String s)  
      (package private) X86_64 label​(java.lang.String s)
      ajoute une étiquette qui doit rester dans le code (par ex.
      (package private) X86_64 label​(mini_c.Label l)
      ajoute une étiquette ; elle ne restera dans le code qui si on appelle needLabel sur cette étiquette
      (package private) X86_64 leaq​(java.lang.String op1, java.lang.String op2)  
      (package private) X86_64 leave()  
      (package private) X86_64 movq​(int n, java.lang.String op)  
      (package private) X86_64 movq​(java.lang.String op1, java.lang.String op2)  
      (package private) X86_64 movzbq​(java.lang.String op1, java.lang.String op2)  
      (package private) void needLabel​(mini_c.Label l)
      déclare que cette étiquette devra rester dans le code
      (package private) X86_64 negq​(java.lang.String op)  
      (package private) X86_64 notq​(java.lang.String op)  
      (package private) X86_64 orq​(java.lang.String op1, java.lang.String op2)  
      (package private) X86_64 popq​(java.lang.String op)  
      (package private) void printToFile​(java.lang.String file)
      imprime le programme assembleur dans un fichier
      (package private) X86_64 pushq​(java.lang.String op)  
      (package private) X86_64 quad​(long l)  
      (package private) X86_64 ret()  
      (package private) X86_64 sarq​(java.lang.String op1, java.lang.String op2)  
      (package private) X86_64 seta​(java.lang.String s)  
      (package private) X86_64 setae​(java.lang.String s)  
      (package private) X86_64 setb​(java.lang.String s)  
      (package private) X86_64 setbe​(java.lang.String s)  
      (package private) X86_64 sete​(java.lang.String s)  
      (package private) X86_64 setg​(java.lang.String s)  
      (package private) X86_64 setge​(java.lang.String s)  
      (package private) X86_64 setl​(java.lang.String s)  
      (package private) X86_64 setle​(java.lang.String s)  
      (package private) X86_64 setne​(java.lang.String s)  
      (package private) X86_64 setns​(java.lang.String s)  
      (package private) X86_64 setnz​(java.lang.String s)  
      (package private) X86_64 sets​(java.lang.String s)  
      (package private) X86_64 setz​(java.lang.String s)  
      (package private) X86_64 shlq​(java.lang.String op1, java.lang.String op2)  
      (package private) X86_64 shrq​(java.lang.String op1, java.lang.String op2)  
      (package private) X86_64 space​(int n)  
      (package private) X86_64 string​(java.lang.String s)  
      (package private) X86_64 subq​(java.lang.String op1, java.lang.String op2)  
      (package private) X86_64 testq​(int n, java.lang.String op)  
      (package private) X86_64 testq​(java.lang.String op1, java.lang.String op2)  
      (package private) X86_64 xorq​(java.lang.String op1, java.lang.String op2)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • X86_64

        X86_64()
    • Method Detail

      • emit

        X86_64 emit​(java.lang.String s)
        ajoute une nouvelle instruction à la fin du code
      • label

        X86_64 label​(java.lang.String s)
        ajoute une étiquette qui doit rester dans le code (par ex. l'étiquette d'une fonction)
      • label

        X86_64 label​(mini_c.Label l)
        ajoute une étiquette ; elle ne restera dans le code qui si on appelle needLabel sur cette étiquette
      • needLabel

        void needLabel​(mini_c.Label l)
        déclare que cette étiquette devra rester dans le code
      • inline

        X86_64 inline​(java.lang.String s)
        ajoute de l'assembleur à la fin de la zone text (par exemple pour ajouter des pirmitives écrites en assembleur)
      • movq

        X86_64 movq​(java.lang.String op1,
                    java.lang.String op2)
      • movq

        X86_64 movq​(int n,
                    java.lang.String op)
      • movzbq

        X86_64 movzbq​(java.lang.String op1,
                      java.lang.String op2)
      • incq

        X86_64 incq​(java.lang.String op)
      • decq

        X86_64 decq​(java.lang.String op)
      • negq

        X86_64 negq​(java.lang.String op)
      • addq

        X86_64 addq​(java.lang.String op1,
                    java.lang.String op2)
      • subq

        X86_64 subq​(java.lang.String op1,
                    java.lang.String op2)
      • imulq

        X86_64 imulq​(java.lang.String op1,
                     java.lang.String op2)
      • idivq

        X86_64 idivq​(java.lang.String op)
      • leaq

        X86_64 leaq​(java.lang.String op1,
                    java.lang.String op2)
      • notq

        X86_64 notq​(java.lang.String op)
      • andq

        X86_64 andq​(java.lang.String op1,
                    java.lang.String op2)
      • orq

        X86_64 orq​(java.lang.String op1,
                   java.lang.String op2)
      • xorq

        X86_64 xorq​(java.lang.String op1,
                    java.lang.String op2)
      • shlq

        X86_64 shlq​(java.lang.String op1,
                    java.lang.String op2)
      • shrq

        X86_64 shrq​(java.lang.String op1,
                    java.lang.String op2)
      • sarq

        X86_64 sarq​(java.lang.String op1,
                    java.lang.String op2)
      • pushq

        X86_64 pushq​(java.lang.String op)
      • popq

        X86_64 popq​(java.lang.String op)
      • call

        X86_64 call​(java.lang.String s)
      • callstar

        X86_64 callstar​(java.lang.String op)
      • jmp

        X86_64 jmp​(java.lang.String s)
      • jmpstar

        X86_64 jmpstar​(java.lang.String op)
      • cmpb

        X86_64 cmpb​(java.lang.String op1,
                    java.lang.String op2)
      • cmpb

        X86_64 cmpb​(int n,
                    java.lang.String op)
      • cmpw

        X86_64 cmpw​(java.lang.String op1,
                    java.lang.String op2)
      • cmpw

        X86_64 cmpw​(int n,
                    java.lang.String op)
      • cmpl

        X86_64 cmpl​(java.lang.String op1,
                    java.lang.String op2)
      • cmpl

        X86_64 cmpl​(int n,
                    java.lang.String op)
      • cmpq

        X86_64 cmpq​(java.lang.String op1,
                    java.lang.String op2)
      • cmpq

        X86_64 cmpq​(int n,
                    java.lang.String op)
      • testq

        X86_64 testq​(java.lang.String op1,
                     java.lang.String op2)
      • testq

        X86_64 testq​(int n,
                     java.lang.String op)
      • je

        X86_64 je​(java.lang.String s)
      • jz

        X86_64 jz​(java.lang.String s)
      • jne

        X86_64 jne​(java.lang.String s)
      • jnz

        X86_64 jnz​(java.lang.String s)
      • js

        X86_64 js​(java.lang.String s)
      • jns

        X86_64 jns​(java.lang.String s)
      • jg

        X86_64 jg​(java.lang.String s)
      • jge

        X86_64 jge​(java.lang.String s)
      • jl

        X86_64 jl​(java.lang.String s)
      • jle

        X86_64 jle​(java.lang.String s)
      • ja

        X86_64 ja​(java.lang.String s)
      • jae

        X86_64 jae​(java.lang.String s)
      • jb

        X86_64 jb​(java.lang.String s)
      • jbe

        X86_64 jbe​(java.lang.String s)
      • sete

        X86_64 sete​(java.lang.String s)
      • setz

        X86_64 setz​(java.lang.String s)
      • setne

        X86_64 setne​(java.lang.String s)
      • setnz

        X86_64 setnz​(java.lang.String s)
      • sets

        X86_64 sets​(java.lang.String s)
      • setns

        X86_64 setns​(java.lang.String s)
      • setg

        X86_64 setg​(java.lang.String s)
      • setge

        X86_64 setge​(java.lang.String s)
      • setl

        X86_64 setl​(java.lang.String s)
      • setle

        X86_64 setle​(java.lang.String s)
      • seta

        X86_64 seta​(java.lang.String s)
      • setae

        X86_64 setae​(java.lang.String s)
      • setb

        X86_64 setb​(java.lang.String s)
      • setbe

        X86_64 setbe​(java.lang.String s)
      • dlabel

        X86_64 dlabel​(java.lang.String s)
        ajoute une étiquette dans le segment de données
      • data

        X86_64 data​(java.lang.String s)
      • string

        X86_64 string​(java.lang.String s)
      • space

        X86_64 space​(int n)
      • quad

        X86_64 quad​(long l)
      • globl

        X86_64 globl​(java.lang.String l)
      • printToFile

        void printToFile​(java.lang.String file)
        imprime le programme assembleur dans un fichier