一个数组排序 的程序,编译,链接 通过,但 运行 结果不对。想调用一个子程序 实现排序。但估计 是返回值有问题,初学者,不懂怎么改了,请高手 赐教。
- Assembly code
.386.model flatExitProcess proto near32 stdcall, dwexitcode:dword ;include io.h ;cr equ 0dh;lf equ 0ah;values equ 10;.stack 4096;.data;prompt1 byte "This program will arrange the number:",cr,lf,lf ;prompt2 byte "Now Enter the ten number"cr,lf ; value DWORD 16 dup (?) ,0arry DWORD 16 dup (?) ,0 import3 byte "The order is:",0 ;.codeRANGE PROC NEAR32Forin: input value,16 ; atod value mov [ebx],eax ; add ebx,4 ; loop Forin ; output import2 ; mov ecx,values ;First: mov dx,0 ; lea ebx,arry ;Second: inc dx ; cmp dx,values; jnl Thrid ; mov ax,[ebx] ; cmp ax,[ebx+4] ; jg Exchange ; add ebx,5 ; jmp Second ;Exchange: xchg [ebx+4],ax mov [ebx],ax ; add ebx,4 ; jmp Second ;Thrid: loop First ; mov eax,0 ; lea ebx,arry ; mov ecx,values ;ret RANGE ENDP_start: output prompt1 ; output ptompt2 ; lea ebx,arry mov ecx,values call range ;Forout: mov eax,[ebx]; dtoa value,eax; add ebx,4 ; output value ; loop Forout ;invoke ExitProcess,0 ; public _start ;end