.title "hello.ic" # global declarations .global _ic_main # data section .data .align 4 _Hello_DV: .long _Hello_main .int 13 str1: .string "Hello world!" # text (code) section .text #---------------------------------------------------- .align 4 _Hello_main: push %ebp # prologue mov %esp,%ebp push $str1 # println(...) call __println add $4, %esp mov $0, %eax # return 0 _epilogue_Hello_main: mov %ebp,%esp # epilogue pop %ebp ret #---------------------------------------------------- .align 4 _ic_main: push %ebp # prologue mov %esp,%ebp push $4 # o = new Hello call __allocateObject add $4, %esp movl $_Hello_DV, (%eax) push 8(%ebp) # o.main(args) push %eax mov (%eax), %eax call *(%eax) add $8, %esp mov $0, %eax _epilogue_ic_main: mov %ebp,%esp # epilogue pop %ebp ret