6class_var
Source Code
// MyCC code example
// Gabriel Capella
class Test {
int x;
public void main() {
x = 49;
print(x);
}
}







Results
Assembly
.globl main
main:
pushq %rbp # Save old EBP
movq %rsp, %rbp # Save old ESP
movq $8, %rax
movq %rax, %rdi
callq malloc@PLT
testq %rax, %rax
jz fail_exit
pushq %rax
callq __LABEL0
popq %rax
movq %rbp, %rsp # Restore ESP
popq %rbp # Restore EBP
retq
__LABEL0:
pushq %rbp # Save old EBP
movq %rsp, %rbp # Save old ESP
addq $-8, %rsp
##MovL %0 <- 49
movq $49, %rax
##MoMo %1 <- %-1
movq %rbp, %rcx
##MovL %2 <- 16
movq $16, %rbx
##MoOp %3 <- %1,%2
addq %rcx, %rbx
##MToR %4 <- #3
movq (%rbx), %rcx
##MovL %5 <- 0
movq $0, %rbx
##MoOp %6 <- %4,%5
addq %rcx, %rbx
##RToM #6 <- %0
movq %rax, (%rbx)
##MoMo %7 <- %-1
movq %rbp, %rbx
##MovL %8 <- 16
movq $16, %rax
##MoOp %9 <- %7,%8
addq %rbx, %rax
##MToR %10 <- #9
movq (%rax), %rbx
##MovL %11 <- 0
movq $0, %rax
##MoOp %12 <- %10,%11
addq %rbx, %rax
##MToR %13 <- #12
movq (%rax), %rax
##Prin %13
pushq %rax ## prepare print call
pushq %rbx ## prepare print call
pushq %rcx ## prepare print call
movq %rax, %rdi ## print
callq putchar@PLT
popq %rcx
popq %rbx
popq %rax
movq %rbp, %rsp # Restore ESP
popq %rbp # Restore EBP
retq
fail_exit:
movl $1, %eax
popq %rbp
retq
Expected
1
Got
1