C# 클래스 CodeGeneration.CGenState

파일 보기 프로젝트 열기: phisiart/C-Compiler 1 사용 예제들

공개 프로퍼티들

프로퍼티 타입 설명
label_idx System.Int32
reg_strs String>.Dictionary

공개 메소드들

메소드 설명
ADDL ( Int32 er, System.Reg ee, String comment = "" ) : void
ADDL ( System.Reg er, System.Reg ee, String comment = "" ) : void
ADDL ( String er, String ee, String comment = "" ) : void

ADDL: add long

ALIGN ( Int32 align ) : void
ANDB ( Int32 er, System.Reg ee ) : void
ANDB ( String er, String ee ) : void
ANDL ( Int32 er, System.Reg ee ) : void
ANDL ( System.Reg er, System.Reg ee ) : void
ANDL ( String er, String ee ) : void

ANDL er, ee ee = er & ee

BYTE ( Int32 value ) : void
CALL ( String addr ) : void
CGenConvertFloatToLong ( ) : void
CGenConvertLongToFloat ( ) : void
CGenExpandStackBy ( Int32 nbytes ) : void
CGenExpandStackBy4Bytes ( String comment = "" ) : void
CGenExpandStackBy8Bytes ( String comment = "" ) : void
CGenExpandStackTo ( Int32 size, String comment = "" ) : void
CGenExpandStackWithAlignment ( Int32 nbytes, Int32 align ) : void
CGenForceStackSizeTo ( Int32 nbytes ) : void
CGenFuncStart ( String name ) : void
CGenLabel ( Int32 label ) : void
CGenLabel ( String label ) : void
CGenLongConst ( Int32 val ) : String
CGenLongLongConst ( Int32 lo, Int32 hi ) : String
CGenMemCpy ( ) : void

Fast Memory Copy using assembly. Make sure that 1) %esi = source address 2) %edi = destination address 3) %ecx = number of bytes

CGenMemCpyReversed ( ) : void

Fast Memory Copy using assembly. Make sure that 1) %esi = source address 2) %edi = destination address 3) %ecx = number of bytes

CGenPopDouble ( Int32 saved_size ) : void
CGenPopFloat ( Int32 saved_size ) : void
CGenPopLong ( Int32 saved_size, System.Reg dst ) : void
CGenPushDouble ( ) : Int32
CGenPushDoubleP ( ) : Int32
CGenPushFloat ( ) : Int32
CGenPushFloatP ( ) : Int32
CGenPushLong ( Int32 imm ) : Int32
CGenPushLong ( System.Reg src ) : Int32
CGenShrinkStackBy ( Int32 nbytes ) : void
CGenShrinkStackBy4Bytes ( String comment = "" ) : void
CGenShrinkStackBy8Bytes ( String comment = "" ) : void
CGenState ( ) : System
CGenString ( String str ) : String
CLD ( ) : void
CLTD ( ) : void

CLTD: used before division. clear %edx.

CMPL ( Int32 imm, System.Reg ee ) : void
CMPL ( System.Reg er, System.Reg ee ) : void
CMPL ( String er, String ee ) : void

CMPL: compare based on subtraction. Note that the order is reversed, i.e. ee comp er.

COMM ( String name, Int32 size, Int32 align ) : void
COMMENT ( String comment ) : void
CaseLabel ( Int32 value ) : Int32
DATA ( ) : void
DIVL ( System.Reg er ) : void
DIVL ( String addr ) : void

IDIVL: unsigned division. %eax = %edx:%eax / {addr}.

FADD ( Int32 op1, Int32 op2 ) : void

FADD: calculate %st(op1) + %st(op2) and rewrite %st(op2).

FADDP ( ) : void

FADDP: pop operands from %st(0) and %st(1), push addition result back to %st(0).

FCHS ( ) : void

FCHS: %st(0) = -%st(0)

FDIVP ( ) : void

FDIVP: pop operands from %st(0) and %st(1), push %st(0) / %st(1) back to %st(0).

FLD1 ( ) : void

FLD1: push 1.0 to FPU stack.

FLDL ( Int32 imm, System.Reg from ) : void
FLDL ( String addr ) : void

FLDL: load double to FPU stack.

FLDS ( Int32 imm, System.Reg src ) : void
FLDS ( String src ) : void

FLDS: load float to FPU stack.

FLDZ ( ) : void

FLD0: push 0.0 to FPU stack.

FMULP ( ) : void

FMULP: pop operands from %st(0) and %st(1), push multiplication result back to %st(0).

FSTL ( Int32 imm, System.Reg to ) : void
FSTL ( String addr ) : void

FSTL: store double from FPU stack.

FSTP ( System.Reg dst ) : void
FSTP ( String dst ) : void

FSTP: copy %st(0) to dst, then pop %st(0).

FSTPL ( Int32 imm, System.Reg to ) : void
FSTPL ( String addr ) : void

FSTPL: pop from FPU and store *double*.

FSTPS ( Int32 imm, System.Reg to ) : void
FSTPS ( String addr ) : void

FSTPS: pop float from FPU stack, and store to {addr}.

FSTS ( Int32 imm, System.Reg to ) : void
FSTS ( String addr ) : void

FSTS: store float from FPU stack.

FSUB ( Int32 op1, Int32 op2 ) : void

FADD: calculate %st(op1) + %st(op2) and rewrite %st(op2).

FSUBP ( ) : void

FSUBP: pop operands from %st(0) and %st(1), push %st(0) / %st(1) back to %st(0).

FUCOMIP ( ) : void

FUCOMIP: unordered comparison: %st(0) vs %st(1).

GLOBL ( String name ) : void
GotoLabel ( String label ) : Int32
IDIVL ( System.Reg er ) : void
IDIVL ( String addr ) : void

IDIVL: signed division. %eax = %edx:%eax / {addr}.

IMUL ( System.Reg er ) : void
IMUL ( String addr ) : void

IMUL: signed multiplication. %edx:%eax = %eax * {addr}.

InFunction ( IReadOnlyList goto_labels ) : void
InLoop ( Int32 continue_label, Int32 break_label ) : void
InSwitch ( Int32 break_label, Int32 default_label, Int32>.Dictionary value_to_label ) : void
JMP ( Int32 label ) : void
JNZ ( Int32 label ) : void
JZ ( Int32 label ) : void
LEA ( Int32 offset, System.Reg src, System.Reg dst ) : void
LEA ( String addr, System.Reg dst ) : void
LEA ( String addr, String dst ) : void
LEAVE ( ) : void
LOCAL ( String name ) : void
LONG ( Int32 value ) : void
MOVB ( System.Reg from, Int32 imm, System.Reg to ) : void
MOVB ( System.Reg from, System.Reg to ) : void
MOVB ( String src, String dst ) : void

MOVB: move a byte

MOVL ( Int32 imm, System.Reg dst ) : void
MOVL ( Int32 offset, System.Reg src, System.Reg dst ) : void
MOVL ( Int32 imm, String dst ) : void
MOVL ( System.Reg src, Int32 offset, System.Reg dst ) : void
MOVL ( System.Reg src, System.Reg dst ) : void
MOVL ( String src, System.Reg dst ) : void
MOVL ( String src, String dst ) : void

MOVL: move a 4-byte long

MOVSBL ( Int32 offset, System.Reg src, System.Reg dst ) : void
MOVSBL ( System.Reg src, System.Reg dst ) : void
MOVSBL ( String src, System.Reg dst ) : void
MOVSBL ( String src, String dst ) : void

MOVSBL: move a byte and sign-extend to a 4-byte long

MOVSWL ( Int32 offset, System.Reg from, System.Reg to ) : void
MOVSWL ( System.Reg src, System.Reg dst ) : void
MOVSWL ( String from, System.Reg to ) : void
MOVSWL ( String from, String to ) : void

MOVSWL: move a 2-byte word and sign-extend to a 4-byte long

MOVW ( System.Reg from, Int32 imm, System.Reg to ) : void
MOVW ( String from, String to ) : void

MOVW: move a 2-byte word

MOVZBL ( Int32 offset, System.Reg src, System.Reg dst ) : void
MOVZBL ( System.Reg src, System.Reg dst ) : void
MOVZBL ( String src, System.Reg dst ) : void
MOVZBL ( String src, String dst ) : void

MOVZBL: move a byte and zero-extend to a 4-byte long

MOVZWL ( Int32 offset, System.Reg from, System.Reg to ) : void
MOVZWL ( System.Reg src, System.Reg dst ) : void
MOVZWL ( String from, System.Reg to ) : void
MOVZWL ( String from, String to ) : void

MOVZWL: move a 2-byte word and zero-extend to a 4-byte long

MUL ( System.Reg er ) : void
MUL ( String addr ) : void

MUL: unsigned multiplication. %edx:%eax = %eax * {addr}.

NEG ( System.Reg dst ) : void
NEG ( String addr ) : void

NEG addr: addr = -addr

NEWLINE ( ) : void
NOT ( System.Reg dst ) : void
NOT ( String addr ) : void

NOT: bitwise not

ORL ( System.Reg er, System.Reg ee, String comment = "" ) : void
ORL ( String er, String ee, String comment = "" ) : void

ORL er, ee ee = ee | er

OutFunction ( ) : void
OutLabels ( ) : void
RET ( ) : void
RegToString ( System.Reg reg ) : String
RequestLabel ( ) : Int32
SALL ( System.Reg er, System.Reg ee ) : void
SALL ( String er, String ee ) : void

SALL er, ee ee = ee << er Note that there is only one Kind of lshift.

SARL ( System.Reg er, System.Reg ee ) : void
SARL ( String er, String ee ) : void

SARL er, ee (arithmetic shift) ee = ee >> er (append sign bit)

SETA ( System.Reg dst ) : void
SETA ( String dst ) : void

SETA: set if above (unsigned).

SETB ( System.Reg dst ) : void
SETB ( String dst ) : void

SETB: set if below (unsigned).

SETE ( System.Reg dst ) : void
SETE ( String dst ) : void

SETE: set if equal to.

SETG ( System.Reg dst ) : void
SETG ( String dst ) : void

SETG: set if greater than (signed).

SETGE ( System.Reg dst ) : void
SETGE ( String dst ) : void

SETGE: set if greater or equal to (signed).

SETL ( System.Reg dst ) : void
SETL ( String dst ) : void

SETL: set if less than (signed).

SETLE ( System.Reg dst ) : void
SETLE ( String dst ) : void

SETLE: set if less than or equal to (signed).

SETNA ( System.Reg dst ) : void
SETNA ( String dst ) : void

SETNA: set if not above (unsigned).

SETNB ( System.Reg dst ) : void
SETNB ( String dst ) : void

SETNB: set if not below (unsigned).

SETNE ( System.Reg dst ) : void
SETNE ( String dst ) : void

SETNE: set if not equal to.

SHRL ( Int32 er, System.Reg ee ) : void
SHRL ( System.Reg er, System.Reg ee ) : void
SHRL ( String er, String ee ) : void

SHRL er, ee (logical shift) ee = ee >> er (append 0)

STD ( ) : void
SUBL ( Int32 er, System.Reg ee, String comment = "" ) : void
SUBL ( System.Reg er, System.Reg ee, String comment = "" ) : void
SUBL ( String er, String ee, String comment = "" ) : void

SUBL: subtract long

TESTL ( System.Reg er, System.Reg ee ) : void
TESTL ( String er, String ee ) : void

TESTL: used like testl %eax, %eax: compare %eax with zero.

TEXT ( ) : void
ToString ( ) : String
VALUE ( Int32 value ) : void
XORL ( System.Reg er, System.Reg ee ) : void
XORL ( String er, String ee ) : void

XORL er, ee ee = ee ^ er

ZERO ( Int32 size ) : void

비공개 메소드들

메소드 설명
FILDL ( Int32 offset, System.Reg dst ) : void
FILDL ( String dst ) : void
FISTL ( Int32 offset, System.Reg dst ) : void
FISTL ( String dst ) : void
POPL ( System.Reg dst ) : void
POPL ( String dst ) : void

POPL: pop long from stack.

POPL changes the size of the stack, which should be tracked carefully. So, POPL is set private. Consider using CGenPopLong

PUSHL ( Int32 imm ) : void
PUSHL ( System.Reg src ) : void
PUSHL ( String src ) : void

PUSHL: push long into stack.

PUSHL changes the size of the stack, which should be tracked carefully. So, PUSHL is set private. Consider using CGenPushLong

SUBL ( Int32 er, String ee, String comment = "" ) : void

메소드 상세

ADDL() 공개 메소드

public ADDL ( Int32 er, System.Reg ee, String comment = "" ) : void
er System.Int32
ee System.Reg
comment String
리턴 void

ADDL() 공개 메소드

public ADDL ( System.Reg er, System.Reg ee, String comment = "" ) : void
er System.Reg
ee System.Reg
comment String
리턴 void

ADDL() 공개 메소드

ADDL: add long
public ADDL ( String er, String ee, String comment = "" ) : void
er String
ee String
comment String
리턴 void

ALIGN() 공개 메소드

public ALIGN ( Int32 align ) : void
align System.Int32
리턴 void

ANDB() 공개 메소드

public ANDB ( Int32 er, System.Reg ee ) : void
er System.Int32
ee System.Reg
리턴 void

ANDB() 공개 메소드

public ANDB ( String er, String ee ) : void
er String
ee String
리턴 void

ANDL() 공개 메소드

public ANDL ( Int32 er, System.Reg ee ) : void
er System.Int32
ee System.Reg
리턴 void

ANDL() 공개 메소드

public ANDL ( System.Reg er, System.Reg ee ) : void
er System.Reg
ee System.Reg
리턴 void

ANDL() 공개 메소드

ANDL er, ee ee = er & ee
public ANDL ( String er, String ee ) : void
er String
ee String
리턴 void

BYTE() 공개 메소드

public BYTE ( Int32 value ) : void
value System.Int32
리턴 void

CALL() 공개 메소드

public CALL ( String addr ) : void
addr String
리턴 void

CGenConvertFloatToLong() 공개 메소드

public CGenConvertFloatToLong ( ) : void
리턴 void

CGenConvertLongToFloat() 공개 메소드

public CGenConvertLongToFloat ( ) : void
리턴 void

CGenExpandStackBy() 공개 메소드

public CGenExpandStackBy ( Int32 nbytes ) : void
nbytes System.Int32
리턴 void

CGenExpandStackBy4Bytes() 공개 메소드

public CGenExpandStackBy4Bytes ( String comment = "" ) : void
comment String
리턴 void

CGenExpandStackBy8Bytes() 공개 메소드

public CGenExpandStackBy8Bytes ( String comment = "" ) : void
comment String
리턴 void

CGenExpandStackTo() 공개 메소드

public CGenExpandStackTo ( Int32 size, String comment = "" ) : void
size System.Int32
comment String
리턴 void

CGenExpandStackWithAlignment() 공개 메소드

public CGenExpandStackWithAlignment ( Int32 nbytes, Int32 align ) : void
nbytes System.Int32
align System.Int32
리턴 void

CGenForceStackSizeTo() 공개 메소드

public CGenForceStackSizeTo ( Int32 nbytes ) : void
nbytes System.Int32
리턴 void

CGenFuncStart() 공개 메소드

public CGenFuncStart ( String name ) : void
name String
리턴 void

CGenLabel() 공개 메소드

public CGenLabel ( Int32 label ) : void
label System.Int32
리턴 void

CGenLabel() 공개 메소드

public CGenLabel ( String label ) : void
label String
리턴 void

CGenLongConst() 공개 메소드

public CGenLongConst ( Int32 val ) : String
val System.Int32
리턴 String

CGenLongLongConst() 공개 메소드

public CGenLongLongConst ( Int32 lo, Int32 hi ) : String
lo System.Int32
hi System.Int32
리턴 String

CGenMemCpy() 공개 메소드

Fast Memory Copy using assembly. Make sure that 1) %esi = source address 2) %edi = destination address 3) %ecx = number of bytes
public CGenMemCpy ( ) : void
리턴 void

CGenMemCpyReversed() 공개 메소드

Fast Memory Copy using assembly. Make sure that 1) %esi = source address 2) %edi = destination address 3) %ecx = number of bytes
public CGenMemCpyReversed ( ) : void
리턴 void

CGenPopDouble() 공개 메소드

public CGenPopDouble ( Int32 saved_size ) : void
saved_size System.Int32
리턴 void

CGenPopFloat() 공개 메소드

public CGenPopFloat ( Int32 saved_size ) : void
saved_size System.Int32
리턴 void

CGenPopLong() 공개 메소드

public CGenPopLong ( Int32 saved_size, System.Reg dst ) : void
saved_size System.Int32
dst System.Reg
리턴 void

CGenPushDouble() 공개 메소드

public CGenPushDouble ( ) : Int32
리턴 System.Int32

CGenPushDoubleP() 공개 메소드

public CGenPushDoubleP ( ) : Int32
리턴 System.Int32

CGenPushFloat() 공개 메소드

public CGenPushFloat ( ) : Int32
리턴 System.Int32

CGenPushFloatP() 공개 메소드

public CGenPushFloatP ( ) : Int32
리턴 System.Int32

CGenPushLong() 공개 메소드

public CGenPushLong ( Int32 imm ) : Int32
imm System.Int32
리턴 System.Int32

CGenPushLong() 공개 메소드

public CGenPushLong ( System.Reg src ) : Int32
src System.Reg
리턴 System.Int32

CGenShrinkStackBy() 공개 메소드

public CGenShrinkStackBy ( Int32 nbytes ) : void
nbytes System.Int32
리턴 void

CGenShrinkStackBy4Bytes() 공개 메소드

public CGenShrinkStackBy4Bytes ( String comment = "" ) : void
comment String
리턴 void

CGenShrinkStackBy8Bytes() 공개 메소드

public CGenShrinkStackBy8Bytes ( String comment = "" ) : void
comment String
리턴 void

CGenState() 공개 메소드

public CGenState ( ) : System
리턴 System

CGenString() 공개 메소드

public CGenString ( String str ) : String
str String
리턴 String

CLD() 공개 메소드

public CLD ( ) : void
리턴 void

CLTD() 공개 메소드

CLTD: used before division. clear %edx.
public CLTD ( ) : void
리턴 void

CMPL() 공개 메소드

public CMPL ( Int32 imm, System.Reg ee ) : void
imm System.Int32
ee System.Reg
리턴 void

CMPL() 공개 메소드

public CMPL ( System.Reg er, System.Reg ee ) : void
er System.Reg
ee System.Reg
리턴 void

CMPL() 공개 메소드

CMPL: compare based on subtraction. Note that the order is reversed, i.e. ee comp er.
public CMPL ( String er, String ee ) : void
er String
ee String
리턴 void

COMM() 공개 메소드

public COMM ( String name, Int32 size, Int32 align ) : void
name String
size System.Int32
align System.Int32
리턴 void

COMMENT() 공개 메소드

public COMMENT ( String comment ) : void
comment String
리턴 void

CaseLabel() 공개 메소드

public CaseLabel ( Int32 value ) : Int32
value System.Int32
리턴 System.Int32

DATA() 공개 메소드

public DATA ( ) : void
리턴 void

DIVL() 공개 메소드

public DIVL ( System.Reg er ) : void
er System.Reg
리턴 void

DIVL() 공개 메소드

IDIVL: unsigned division. %eax = %edx:%eax / {addr}.
public DIVL ( String addr ) : void
addr String
리턴 void

FADD() 공개 메소드

FADD: calculate %st(op1) + %st(op2) and rewrite %st(op2).
public FADD ( Int32 op1, Int32 op2 ) : void
op1 System.Int32
op2 System.Int32
리턴 void

FADDP() 공개 메소드

FADDP: pop operands from %st(0) and %st(1), push addition result back to %st(0).
public FADDP ( ) : void
리턴 void

FCHS() 공개 메소드

FCHS: %st(0) = -%st(0)
public FCHS ( ) : void
리턴 void

FDIVP() 공개 메소드

FDIVP: pop operands from %st(0) and %st(1), push %st(0) / %st(1) back to %st(0).
public FDIVP ( ) : void
리턴 void

FLD1() 공개 메소드

FLD1: push 1.0 to FPU stack.
public FLD1 ( ) : void
리턴 void

FLDL() 공개 메소드

public FLDL ( Int32 imm, System.Reg from ) : void
imm System.Int32
from System.Reg
리턴 void

FLDL() 공개 메소드

FLDL: load double to FPU stack.
public FLDL ( String addr ) : void
addr String Address.
리턴 void

FLDS() 공개 메소드

public FLDS ( Int32 imm, System.Reg src ) : void
imm System.Int32
src System.Reg
리턴 void

FLDS() 공개 메소드

FLDS: load float to FPU stack.
public FLDS ( String src ) : void
src String
리턴 void

FLDZ() 공개 메소드

FLD0: push 0.0 to FPU stack.
public FLDZ ( ) : void
리턴 void

FMULP() 공개 메소드

FMULP: pop operands from %st(0) and %st(1), push multiplication result back to %st(0).
public FMULP ( ) : void
리턴 void

FSTL() 공개 메소드

public FSTL ( Int32 imm, System.Reg to ) : void
imm System.Int32
to System.Reg
리턴 void

FSTL() 공개 메소드

FSTL: store double from FPU stack.
public FSTL ( String addr ) : void
addr String
리턴 void

FSTP() 공개 메소드

public FSTP ( System.Reg dst ) : void
dst System.Reg
리턴 void

FSTP() 공개 메소드

FSTP: copy %st(0) to dst, then pop %st(0).
public FSTP ( String dst ) : void
dst String
리턴 void

FSTPL() 공개 메소드

public FSTPL ( Int32 imm, System.Reg to ) : void
imm System.Int32
to System.Reg
리턴 void

FSTPL() 공개 메소드

FSTPL: pop from FPU and store *double*.
public FSTPL ( String addr ) : void
addr String
리턴 void

FSTPS() 공개 메소드

public FSTPS ( Int32 imm, System.Reg to ) : void
imm System.Int32
to System.Reg
리턴 void

FSTPS() 공개 메소드

FSTPS: pop float from FPU stack, and store to {addr}.
public FSTPS ( String addr ) : void
addr String
리턴 void

FSTS() 공개 메소드

public FSTS ( Int32 imm, System.Reg to ) : void
imm System.Int32
to System.Reg
리턴 void

FSTS() 공개 메소드

FSTS: store float from FPU stack.
public FSTS ( String addr ) : void
addr String
리턴 void

FSUB() 공개 메소드

FADD: calculate %st(op1) + %st(op2) and rewrite %st(op2).
public FSUB ( Int32 op1, Int32 op2 ) : void
op1 System.Int32
op2 System.Int32
리턴 void

FSUBP() 공개 메소드

FSUBP: pop operands from %st(0) and %st(1), push %st(0) / %st(1) back to %st(0).
public FSUBP ( ) : void
리턴 void

FUCOMIP() 공개 메소드

FUCOMIP: unordered comparison: %st(0) vs %st(1).
public FUCOMIP ( ) : void
리턴 void

GLOBL() 공개 메소드

public GLOBL ( String name ) : void
name String
리턴 void

GotoLabel() 공개 메소드

public GotoLabel ( String label ) : Int32
label String
리턴 System.Int32

IDIVL() 공개 메소드

public IDIVL ( System.Reg er ) : void
er System.Reg
리턴 void

IDIVL() 공개 메소드

IDIVL: signed division. %eax = %edx:%eax / {addr}.
public IDIVL ( String addr ) : void
addr String
리턴 void

IMUL() 공개 메소드

public IMUL ( System.Reg er ) : void
er System.Reg
리턴 void

IMUL() 공개 메소드

IMUL: signed multiplication. %edx:%eax = %eax * {addr}.
public IMUL ( String addr ) : void
addr String
리턴 void

InFunction() 공개 메소드

public InFunction ( IReadOnlyList goto_labels ) : void
goto_labels IReadOnlyList
리턴 void

InLoop() 공개 메소드

public InLoop ( Int32 continue_label, Int32 break_label ) : void
continue_label System.Int32
break_label System.Int32
리턴 void

InSwitch() 공개 메소드

public InSwitch ( Int32 break_label, Int32 default_label, Int32>.Dictionary value_to_label ) : void
break_label System.Int32
default_label System.Int32
value_to_label Int32>.Dictionary
리턴 void

JMP() 공개 메소드

public JMP ( Int32 label ) : void
label System.Int32
리턴 void

JNZ() 공개 메소드

public JNZ ( Int32 label ) : void
label System.Int32
리턴 void

JZ() 공개 메소드

public JZ ( Int32 label ) : void
label System.Int32
리턴 void

LEA() 공개 메소드

public LEA ( Int32 offset, System.Reg src, System.Reg dst ) : void
offset System.Int32
src System.Reg
dst System.Reg
리턴 void

LEA() 공개 메소드

public LEA ( String addr, System.Reg dst ) : void
addr String
dst System.Reg
리턴 void

LEA() 공개 메소드

public LEA ( String addr, String dst ) : void
addr String
dst String
리턴 void

LEAVE() 공개 메소드

public LEAVE ( ) : void
리턴 void

LOCAL() 공개 메소드

public LOCAL ( String name ) : void
name String
리턴 void

LONG() 공개 메소드

public LONG ( Int32 value ) : void
value System.Int32
리턴 void

MOVB() 공개 메소드

public MOVB ( System.Reg from, Int32 imm, System.Reg to ) : void
from System.Reg
imm System.Int32
to System.Reg
리턴 void

MOVB() 공개 메소드

public MOVB ( System.Reg from, System.Reg to ) : void
from System.Reg
to System.Reg
리턴 void

MOVB() 공개 메소드

MOVB: move a byte
public MOVB ( String src, String dst ) : void
src String
dst String
리턴 void

MOVL() 공개 메소드

public MOVL ( Int32 imm, System.Reg dst ) : void
imm System.Int32
dst System.Reg
리턴 void

MOVL() 공개 메소드

public MOVL ( Int32 offset, System.Reg src, System.Reg dst ) : void
offset System.Int32
src System.Reg
dst System.Reg
리턴 void

MOVL() 공개 메소드

public MOVL ( Int32 imm, String dst ) : void
imm System.Int32
dst String
리턴 void

MOVL() 공개 메소드

public MOVL ( System.Reg src, Int32 offset, System.Reg dst ) : void
src System.Reg
offset System.Int32
dst System.Reg
리턴 void

MOVL() 공개 메소드

public MOVL ( System.Reg src, System.Reg dst ) : void
src System.Reg
dst System.Reg
리턴 void

MOVL() 공개 메소드

public MOVL ( String src, System.Reg dst ) : void
src String
dst System.Reg
리턴 void

MOVL() 공개 메소드

MOVL: move a 4-byte long
public MOVL ( String src, String dst ) : void
src String
dst String
리턴 void

MOVSBL() 공개 메소드

public MOVSBL ( Int32 offset, System.Reg src, System.Reg dst ) : void
offset System.Int32
src System.Reg
dst System.Reg
리턴 void

MOVSBL() 공개 메소드

public MOVSBL ( System.Reg src, System.Reg dst ) : void
src System.Reg
dst System.Reg
리턴 void

MOVSBL() 공개 메소드

public MOVSBL ( String src, System.Reg dst ) : void
src String
dst System.Reg
리턴 void

MOVSBL() 공개 메소드

MOVSBL: move a byte and sign-extend to a 4-byte long
public MOVSBL ( String src, String dst ) : void
src String
dst String
리턴 void

MOVSWL() 공개 메소드

public MOVSWL ( Int32 offset, System.Reg from, System.Reg to ) : void
offset System.Int32
from System.Reg
to System.Reg
리턴 void

MOVSWL() 공개 메소드

public MOVSWL ( System.Reg src, System.Reg dst ) : void
src System.Reg
dst System.Reg
리턴 void

MOVSWL() 공개 메소드

public MOVSWL ( String from, System.Reg to ) : void
from String
to System.Reg
리턴 void

MOVSWL() 공개 메소드

MOVSWL: move a 2-byte word and sign-extend to a 4-byte long
public MOVSWL ( String from, String to ) : void
from String
to String
리턴 void

MOVW() 공개 메소드

public MOVW ( System.Reg from, Int32 imm, System.Reg to ) : void
from System.Reg
imm System.Int32
to System.Reg
리턴 void

MOVW() 공개 메소드

MOVW: move a 2-byte word
public MOVW ( String from, String to ) : void
from String
to String
리턴 void

MOVZBL() 공개 메소드

public MOVZBL ( Int32 offset, System.Reg src, System.Reg dst ) : void
offset System.Int32
src System.Reg
dst System.Reg
리턴 void

MOVZBL() 공개 메소드

public MOVZBL ( System.Reg src, System.Reg dst ) : void
src System.Reg
dst System.Reg
리턴 void

MOVZBL() 공개 메소드

public MOVZBL ( String src, System.Reg dst ) : void
src String
dst System.Reg
리턴 void

MOVZBL() 공개 메소드

MOVZBL: move a byte and zero-extend to a 4-byte long
public MOVZBL ( String src, String dst ) : void
src String
dst String
리턴 void

MOVZWL() 공개 메소드

public MOVZWL ( Int32 offset, System.Reg from, System.Reg to ) : void
offset System.Int32
from System.Reg
to System.Reg
리턴 void

MOVZWL() 공개 메소드

public MOVZWL ( System.Reg src, System.Reg dst ) : void
src System.Reg
dst System.Reg
리턴 void

MOVZWL() 공개 메소드

public MOVZWL ( String from, System.Reg to ) : void
from String
to System.Reg
리턴 void

MOVZWL() 공개 메소드

MOVZWL: move a 2-byte word and zero-extend to a 4-byte long
public MOVZWL ( String from, String to ) : void
from String
to String
리턴 void

MUL() 공개 메소드

public MUL ( System.Reg er ) : void
er System.Reg
리턴 void

MUL() 공개 메소드

MUL: unsigned multiplication. %edx:%eax = %eax * {addr}.
public MUL ( String addr ) : void
addr String
리턴 void

NEG() 공개 메소드

public NEG ( System.Reg dst ) : void
dst System.Reg
리턴 void

NEG() 공개 메소드

NEG addr: addr = -addr
public NEG ( String addr ) : void
addr String
리턴 void

NEWLINE() 공개 메소드

public NEWLINE ( ) : void
리턴 void

NOT() 공개 메소드

public NOT ( System.Reg dst ) : void
dst System.Reg
리턴 void

NOT() 공개 메소드

NOT: bitwise not
public NOT ( String addr ) : void
addr String
리턴 void

ORL() 공개 메소드

public ORL ( System.Reg er, System.Reg ee, String comment = "" ) : void
er System.Reg
ee System.Reg
comment String
리턴 void

ORL() 공개 메소드

ORL er, ee ee = ee | er
public ORL ( String er, String ee, String comment = "" ) : void
er String
ee String
comment String
리턴 void

OutFunction() 공개 메소드

public OutFunction ( ) : void
리턴 void

OutLabels() 공개 메소드

public OutLabels ( ) : void
리턴 void

RET() 공개 메소드

public RET ( ) : void
리턴 void

RegToString() 공개 정적인 메소드

public static RegToString ( System.Reg reg ) : String
reg System.Reg
리턴 String

RequestLabel() 공개 메소드

public RequestLabel ( ) : Int32
리턴 System.Int32

SALL() 공개 메소드

public SALL ( System.Reg er, System.Reg ee ) : void
er System.Reg
ee System.Reg
리턴 void

SALL() 공개 메소드

SALL er, ee ee = ee << er Note that there is only one Kind of lshift.
public SALL ( String er, String ee ) : void
er String
ee String
리턴 void

SARL() 공개 메소드

public SARL ( System.Reg er, System.Reg ee ) : void
er System.Reg
ee System.Reg
리턴 void

SARL() 공개 메소드

SARL er, ee (arithmetic shift) ee = ee >> er (append sign bit)
public SARL ( String er, String ee ) : void
er String
ee String
리턴 void

SETA() 공개 메소드

public SETA ( System.Reg dst ) : void
dst System.Reg
리턴 void

SETA() 공개 메소드

SETA: set if above (unsigned).
public SETA ( String dst ) : void
dst String
리턴 void

SETB() 공개 메소드

public SETB ( System.Reg dst ) : void
dst System.Reg
리턴 void

SETB() 공개 메소드

SETB: set if below (unsigned).
public SETB ( String dst ) : void
dst String
리턴 void

SETE() 공개 메소드

public SETE ( System.Reg dst ) : void
dst System.Reg
리턴 void

SETE() 공개 메소드

SETE: set if equal to.
public SETE ( String dst ) : void
dst String
리턴 void

SETG() 공개 메소드

public SETG ( System.Reg dst ) : void
dst System.Reg
리턴 void

SETG() 공개 메소드

SETG: set if greater than (signed).
public SETG ( String dst ) : void
dst String
리턴 void

SETGE() 공개 메소드

public SETGE ( System.Reg dst ) : void
dst System.Reg
리턴 void

SETGE() 공개 메소드

SETGE: set if greater or equal to (signed).
public SETGE ( String dst ) : void
dst String
리턴 void

SETL() 공개 메소드

public SETL ( System.Reg dst ) : void
dst System.Reg
리턴 void

SETL() 공개 메소드

SETL: set if less than (signed).
public SETL ( String dst ) : void
dst String
리턴 void

SETLE() 공개 메소드

public SETLE ( System.Reg dst ) : void
dst System.Reg
리턴 void

SETLE() 공개 메소드

SETLE: set if less than or equal to (signed).
public SETLE ( String dst ) : void
dst String
리턴 void

SETNA() 공개 메소드

public SETNA ( System.Reg dst ) : void
dst System.Reg
리턴 void

SETNA() 공개 메소드

SETNA: set if not above (unsigned).
public SETNA ( String dst ) : void
dst String
리턴 void

SETNB() 공개 메소드

public SETNB ( System.Reg dst ) : void
dst System.Reg
리턴 void

SETNB() 공개 메소드

SETNB: set if not below (unsigned).
public SETNB ( String dst ) : void
dst String
리턴 void

SETNE() 공개 메소드

public SETNE ( System.Reg dst ) : void
dst System.Reg
리턴 void

SETNE() 공개 메소드

SETNE: set if not equal to.
public SETNE ( String dst ) : void
dst String
리턴 void

SHRL() 공개 메소드

public SHRL ( Int32 er, System.Reg ee ) : void
er System.Int32
ee System.Reg
리턴 void

SHRL() 공개 메소드

public SHRL ( System.Reg er, System.Reg ee ) : void
er System.Reg
ee System.Reg
리턴 void

SHRL() 공개 메소드

SHRL er, ee (logical shift) ee = ee >> er (append 0)
public SHRL ( String er, String ee ) : void
er String
ee String
리턴 void

STD() 공개 메소드

public STD ( ) : void
리턴 void

SUBL() 공개 메소드

public SUBL ( Int32 er, System.Reg ee, String comment = "" ) : void
er System.Int32
ee System.Reg
comment String
리턴 void

SUBL() 공개 메소드

public SUBL ( System.Reg er, System.Reg ee, String comment = "" ) : void
er System.Reg
ee System.Reg
comment String
리턴 void

SUBL() 공개 메소드

SUBL: subtract long
public SUBL ( String er, String ee, String comment = "" ) : void
er String
ee String
comment String
리턴 void

TESTL() 공개 메소드

public TESTL ( System.Reg er, System.Reg ee ) : void
er System.Reg
ee System.Reg
리턴 void

TESTL() 공개 메소드

TESTL: used like testl %eax, %eax: compare %eax with zero.
public TESTL ( String er, String ee ) : void
er String
ee String
리턴 void

TEXT() 공개 메소드

public TEXT ( ) : void
리턴 void

ToString() 공개 메소드

public ToString ( ) : String
리턴 String

VALUE() 공개 메소드

public VALUE ( Int32 value ) : void
value System.Int32
리턴 void

XORL() 공개 메소드

public XORL ( System.Reg er, System.Reg ee ) : void
er System.Reg
ee System.Reg
리턴 void

XORL() 공개 메소드

XORL er, ee ee = ee ^ er
public XORL ( String er, String ee ) : void
er String
ee String
리턴 void

ZERO() 공개 메소드

public ZERO ( Int32 size ) : void
size System.Int32
리턴 void

프로퍼티 상세

label_idx 공개적으로 프로퍼티

public Int32,System label_idx
리턴 System.Int32

reg_strs 공개적으로 정적으로 프로퍼티

public static Dictionary reg_strs
리턴 String>.Dictionary