.cpu arm10tdmi
.fpu softvfp
.file "test.c"
.section .rodata
.align 2
.LC0:
.ascii "\033[0;34m\000"
.align 2
.LC1:
.ascii "\033[0m\000"
.align 2
.LC2:
.ascii "\033[H\033[2J\000"
.align 2
.LC3:
.ascii "/dev/tty\000"
.align 2
.LC4:
.ascii "coucou\n\000"
.text
.align 2
.global main
.type main, %function
main:
@ args = 0, pretend = 0, frame = 32
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
stmfd sp!, {fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #32
ldr r3, .L2
sub r2, fp, #28
ldmia r3, {r0, r1}
stmia r2, {r0, r1}
ldr r3, .L2+4
sub r2, fp, #36
ldmia r3, {r0, r1}
str r0, [r2, #0]
add r2, r2, #4
strb r1, [r2, #0]
ldr r3, .L2+8
strb r3, [fp, #-37]
ldr r0, .L2+12
mov r1, #1
bl open
str r0, [fp, #-16]
ldrb r3, [fp, #-37] @ zero_extendqisi2
ldr r0, [fp, #-16]
mov r1, r3
mov r2, #1
bl write
sub r3, fp, #28
ldr r0, [fp, #-16]
mov r1, r3
mov r2, #8
bl write
ldr r0, [fp, #-16]
ldr r1, .L2+16
mov r2, #7
bl write
sub r3, fp, #36
ldr r0, [fp, #-16]
mov r1, r3
mov r2, #5
bl write
mov r0, #0
bl exit
.L3:
.align 2
.L2:
.word .LC0
.word .LC1
.word .LC2
.word .LC3
.word .LC4
.size main, .-main
.ident "GCC: (GNU) 3.4.4 (release) (CodeSourcery ARM 2005q3-2)"
ou alors :
.cpu arm10tdmi
.fpu softvfp
.file "test.c"
.section .rodata.str1.4,"aMS",%progbits,1
.align 2
.LC0:
.ascii "\033[0;34m\000"
.align 2
.LC1:
.ascii "\033[0m\000"
.align 2
.LC2:
.ascii "\033[H\033[2J\000"
.align 2
.LC3:
.ascii "/dev/tty\000"
.align 2
.LC4:
.ascii "coucou\n\000"
.text
.align 2
.global main
.type main, %function
main:
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r6, r7, lr}
ldr r3, .L2
sub sp, sp, #16
ldr ip, .L2+4
ldr r2, .L2+8
add r7, sp, #8
ldmia r3, {r0, r1}
stmia r7, {r0, r1}
ldmia ip, {r0, r1}
str r0, [sp, #0]
strb r1, [sp, #4]
ldr r0, .L2+12
mov r1, #1
and r4, r2, #255
bl open
mov r1, r4
mov r6, r0
mov r2, #1
bl write
mov r1, r7
mov r2, #8
mov r0, r6
bl write
ldr r1, .L2+16
mov r2, #7
mov r0, r6
bl write
mov r0, r6
mov r1, sp
mov r2, #5
bl write
mov r0, #0
bl exit
.L3:
.align 2
.L2:
.word .LC0
.word .LC1
.word .LC2
.word .LC3
.word .LC4
.size main, .-main
.ident "GCC: (GNU) 3.4.4 (release) (CodeSourcery ARM 2005q3-2)"
.cpu arm10tdmi
.fpu softvfp
.file "test.c"
.section .rodata.str1.4,"aMS",%progbits,1
.align 2
.LC0:
.ascii "\033[0;34m\000"
.align 2
.LC1:
.ascii "\033[0m\000"
.align 2
.LC2:
.ascii "\033[H\033[2J\000"
.align 2
.LC3:
.ascii "/dev/tty\000"
.align 2
.LC4:
.ascii "coucou\n\000"
.text
.align 2
.global main
.type main, %function
main:
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r6, r7, lr}
ldr r3, .L2
sub sp, sp, #16
ldr ip, .L2+4
ldr r2, .L2+8
add r7, sp, #8
ldmia r3, {r0, r1}
stmia r7, {r0, r1}
ldmia ip, {r0, r1}
str r0, [sp, #0]
strb r1, [sp, #4]
ldr r0, .L2+12
mov r1, #1
and r4, r2, #255
bl open
mov r1, r4
mov r6, r0
mov r2, #1
bl write
mov r1, r7
mov r2, #8
mov r0, r6
bl write
ldr r1, .L2+16
mov r2, #7
mov r0, r6
bl write
mov r0, r6
mov r1, sp
mov r2, #5
bl write
mov r0, #0
bl exit
.L3:
.align 2
.L2:
.word .LC0
.word .LC1
.word .LC2
.word .LC3
.word .LC4
.size main, .-main
.ident "GCC: (GNU) 3.4.4 (release) (CodeSourcery ARM 2005q3-2)"
-O9 pawa
On peut avoir aussi :
.file 1 "test.c"
.section .mdebug.abi32
.previous
.abicalls
.rdata
.align 2
$LC2:
.ascii "\033[H\033[2J\000"
.align 2
$LC3:
.ascii "/dev/tty\000"
.align 2
$LC4:
.ascii "coucou\012\000"
.align 2
$LC0:
.ascii "\033[0;34m\000"
.align 2
$LC1:
.ascii "\033[0m\000"
.text
.align 2
.globl main
.ent main
.type main, @function
main:
.frame $fp,56,$31 # vars= 24, regs= 2/0, args= 16, gp= 8
.mask 0xc0000000,-4
.fmask 0x00000000,0
.set noreorder
.cpload $25
.set nomacro
addiu $sp,$sp,-56
sw $31,52($sp)
sw $fp,48($sp)
move $fp,$sp
.cprestore 16
lw $2,%got($LC0)($28)
nop
lw $3,%lo($LC0)($2)
addiu $2,$2,%lo($LC0)
lw $2,4($2)
sw $3,32($fp)
sw $2,36($fp)
lw $3,%got($LC1)($28)
nop
lw $2,%lo($LC1)($3)
nop
sw $2,40($fp)
addiu $2,$3,%lo($LC1)
lbu $2,4($2)
nop
sb $2,44($fp)
lw $2,%got($LC2)($28)
nop
addiu $2,$2,%lo($LC2)
sb $2,24($fp)
lw $2,%got($LC3)($28)
nop
addiu $4,$2,%lo($LC3)
li $5,1 # 0x1
lw $25,%call16(open)($28)
nop
jalr $25
nop
lw $28,16($fp)
sw $2,28($fp)
lb $2,24($fp)
lw $4,28($fp)
move $5,$2
li $6,1 # 0x1
lw $25,%call16(write)($28)
nop
jalr $25
nop
lw $28,16($fp)
addiu $2,$fp,32
lw $4,28($fp)
move $5,$2
li $6,8 # 0x8
lw $25,%call16(write)($28)
nop
jalr $25
nop
lw $28,16($fp)
lw $4,28($fp)
lw $2,%got($LC4)($28)
nop
addiu $5,$2,%lo($LC4)
li $6,7 # 0x7
lw $25,%call16(write)($28)
nop
jalr $25
nop
lw $28,16($fp)
addiu $2,$fp,40
lw $4,28($fp)
move $5,$2
li $6,5 # 0x5
lw $25,%call16(write)($28)
nop
jalr $25
nop
lw $28,16($fp)
move $4,$0
lw $25,%call16(exit)($28)
nop
jalr $25
nop
.set macro
.set reorder
.end main
.ident "GCC: (GNU) 4.1.1"
ou juste ça (proche)
.file 1 "test.c"
.section .mdebug.abi32
.previous
.abicalls
.rdata
.align 2
$LC0:
.ascii "\033[0;34m\000"
.align 2
$LC1:
.ascii "\033[0m\000"
.align 2
$LC2:
.ascii "\033[H\033[2J\000"
.align 2
$LC3:
.ascii "/dev/tty\000"
.align 2
$LC4:
.ascii "coucou\n\000"
.text
.align 2
.globl main
.ent main
.type main, @function
main:
.frame $fp,72,$31 # vars= 32, regs= 3/0, args= 16, extra= 8
.mask 0xd0000000,-8
.fmask 0x00000000,0
.set noreorder
.cpload $25
.set reorder
subu $sp,$sp,72
.cprestore 16
sw $31,64($sp)
sw $fp,60($sp)
sw $28,56($sp)
move $fp,$sp
lw $2,$LC0
sw $2,32($fp)
lw $2,$LC0+4
sw $2,36($fp)
lw $2,$LC1
sw $2,40($fp)
lbu $2,$LC1+4
sb $2,44($fp)
la $2,$LC2
sb $2,48($fp)
la $4,$LC3
li $5,1 # 0x1
la $25,open
jal $31,$25
sw $2,24($fp)
lb $2,48($fp)
lw $4,24($fp)
move $5,$2
li $6,1 # 0x1
la $25,write
jal $31,$25
addu $2,$fp,32
lw $4,24($fp)
move $5,$2
li $6,8 # 0x8
la $25,write
jal $31,$25
lw $4,24($fp)
la $5,$LC4
li $6,7 # 0x7
la $25,write
jal $31,$25
addu $2,$fp,40
lw $4,24($fp)
move $5,$2
li $6,5 # 0x5
la $25,write
jal $31,$25
move $4,$0
la $25,exit
jal $31,$25
.end main
.ident "GCC: (GNU) 3.3.6"