汇编语言程序设计

                                                                              接第五章   

数据交换指令

1    XCHG

功能:    在两个寄存器或者寄存器与内存之间交换数据

格式:    xchg    operand1,    operand2

2    BSWAP

    bswap 反转寄存器中的字节顺序0-7位和24-31位交换,8-15位和16-32位交换

bswap 的测试程序   bswap.s

.section    .text

 .globl    _start

_start:

    nop

    movl    $0x12345678,    %ebx

    bswap    $ebx

    movl    $1,    %eax

    int $0x80

   结果:%ebx寄存器中的值为0x78563412

一个使用汇编写的冒泡排序的例子:

.section .data

values:

    .int 102, 146, 89, 15, 77, 89, 88, 56, 45, 188

.section .text

.globl  _start

_start:

    movl $values, %esi

    movl $9, %ecx

    movl $9, %ebx

    loop:

        movl (%esi), %eax

        cmp %eax, 4(%esi)

        jge skip

        xchg %eax, 4(%esi)

        movl %eax, (%esi)

    skip:

        add $4, %esi

        dec %ebx

        jnz loop

        dec %ecx

        jz end

        movl $values, %esi

        movl %ecx, %ebx

        jmp loop

end:

    movl $1, %eax

    movl $0, %ebx

    int $0x80


你可能感兴趣的:(汇编语言程序设计)