嘿,我在下面的代码中对一些条目号进行了排序,它只接受1位数字,我想扩展它以接受2位或更多位数进行排序 有没有人对此有解决方案?我的作业 它必须从用户那里获取数字
其数据段:
data segment
; add your data here!
data1 dw 10 dup(?)
temp dw dup(0)
pe db ' hi '
pea db 'Enter some 1 digit numbers$'
ends
其堆栈段:
stack segment
dw 128 dup(0)
ends
及其代码段:
code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax
mov dh,1
;////////////////////////////////
mov cx,18
lea di,pe
mov ah,02h
loo:
mov dl,[di]
int 21h
inc di
loop loo
;
;///////////////////////////////
;
call mahdi
;
;//////////////////////////////
mov ah,02h
mov cx,40
lea di,pea
loor:
mov dl,[di]
int 21h
inc di
loop loor
;/////////////////////////////
;
call mahdi
;
;
call mahdi
;
;
;////////////////////////////
lea si,data1
mov bl,10
call mahdi
call mahdi
;////////////////////////////
looot:
call mahdi
mov ah,01h
int 21h
sub al,48
mov [si],al
inc si
dec bl
jnz looot
;/////////////////////////////
call mahdi
call mahdi
;////////////////////////////
mov di,offset data1+9
mov si ,offset data1
;///////////////////////////
dec si
amh:
inc si
mov di,offset data1+9
cmp si,di
ja az
;/////////////////////////////
back:
mov al,[si]
cmp al,[di]
jb jump
dec di
cmp si,di
jae amh
jmp back
;/////////////////////////////
jump:
xchg al,[di]
mov [si],al
dec di
cmp si,di
jae amh
jmp back
az:
mov dh,10
lea si,data1
amin:
mov ah,0eh
mov al,[si]
add al,48
mov cx,1
mov bh,00h
mov bl,07h
int 10h
;
;
mov ah,0eh
mov al,22
mov cx,1
mov bh,00h
mov bl,07h
int 10h
inc si
dec dh
jz asd
jmp amin
asd:
mov ah,1
int 21h
mov ax, 4c00h
int 21h
;/////////////////////////////////////
和排序过程:
mahdi proc
mov ah,02
mov bh,00h
inc dh
mov dl,0
int 10h
ret
endp
ends
end start ; set entry point and stop the assembler.