汇编选择排序2

    技术2022-06-25  36

    今天又重新理清了一下思路,要考试了,还是熟悉熟悉基本的东西吧。。。

    data segment     arr db 12,23,2,4,3,9,8,34,21,44,55,66,77,11,90     count db $-arr data ends code segment     assume cs:code,ds:data start:     mov ax,data     mov ds,ax     mov ax,0     mov cx,0     mov cl,count     dec cx;比较n-1次     mov bx,0 loop1:     push cx;cx入栈,避免内循环改变cx的值     mov si,bx;si为内层循环的初始值,相当于下标     mov al,arr[si];al为关键字 loop2:        cmp al,arr[si+1];比较     jg next;al>arr[si+1]则将arr[si+1]设为当前最小值,交换     jmp done;否则不交换 next:     xchg al,arr[si+1];暂时存在al中,并没有改变内存中的值 done:     inc si;比较下一个     loop loop2     mov arr[bx],al;得到一个最小值, 前面的已经排好序     inc bx;下一个     pop cx     loop loop1     mov ax,4c00h     int 21h     code ends     end start


    最新回复(0)