.section .data
msg:
.string "value is %d\n"
arr:
.int 1, 10, 5, 2, 20, 55, 7, 124, 77, 55
.section .text
.globl main
main:
pushl %ebp
movl %esp, %ebp
subl $32, %esp
movl $10, -4(%ebp)
movl $0, -8(%ebp)
movl $0, -12(%ebp)
movl $0, -16(%ebp)
movl $0, -20(%ebp)
for_i:
movl -8(%ebp), %edi
movl arr(, %edi, 4), %edi
movl %edi, -16(%ebp)
for_j:
movl -12(%ebp), %edi
movl arr(, %edi, 4), %edi
movl %edi, -20(%ebp)
cmpl %edi, -16(%ebp)
jg next
xchg %edi, -16(%ebp)
movl %edi, -20(%ebp)
movl -12(%ebp), %edi
movl -20(%ebp), %ebx
movl %ebx, arr(, %edi, 4)
movl -8(%ebp), %edi
movl -16(%ebp), %ebx
movl %ebx, arr(, %edi, 4)
next:
movl -12(%ebp), %edi
inc %edi
movl %edi, -12(%ebp)
cmpl -4(%ebp), %edi
jl for_j
movl $0, -12(%ebp)
movl -8(%ebp), %edi
inc %edi
movl %edi, -8(%ebp)
cmpl -4(%ebp), %edi
jl for_i
movl $0, %edi
show:
pushl arr(, %edi, 4)
pushl $msg
call printf
addl $8, %esp
inc %edi
cmpl -4(%ebp), %edi
jl show
movl %ebp, %esp
popl %ebp
ret
汇编语言 冒泡排序
最新推荐文章于 2023-12-09 12:36:02 发布