提示输入数据,比如10个数据(十进制形式)然后,输入提示,1-从大到小排序;2-从小到大排序,显示按要求排序的数据。可以显示在同一行、两个数据之间用一定空格分开;也可以显示在不同的行。给出汇编语言代码
时间: 2024-02-03 09:12:34 浏览: 17
以下是汇编语言代码,用于从大到小或从小到大排序输入的十进制数据:
```
DATA SEGMENT
arr DB 10 DUP(0)
DATA ENDS
CODE SEGMENT
START:
MOV AX, @DATA
MOV DS, AX
; 输入数据
MOV CX, 10
LEA SI, arr
INPUT_LOOP:
MOV AH, 01H ; 读取一个字符
INT 21H
SUB AL, '0' ; 将字符转换为数字
MOV [SI], AL ; 存储数字到数组中
INC SI
LOOP INPUT_LOOP
; 排序
MOV CX, 9
LEA SI, arr
OUTER_LOOP:
MOV DX, CX ; 内层循环计数器
LEA DI, [SI+1] ; 指向下一个元素
INNER_LOOP:
MOV AL, [SI]
CMP AL, [DI]
JGE SKIP_SWAP
XCHG AL, [DI]
MOV [SI], AL
SKIP_SWAP:
INC DI
LOOP INNER_LOOP
DEC CX
JNZ OUTER_LOOP
; 输出排序后的数据
MOV AH, 02H ; 设置输出函数号
LEA DX, arr ; 设置要输出的字符串地址
MOV CX, 10 ; 设置要输出的字符个数
INT 21H ; 调用 DOS 中断进行输出
MOV AH, 4CH ; 设置退出函数号
INT 21H ; 调用 DOS 中断退出程序
CODE ENDS
END START
```
在程序运行时,会提示用户输入10个十进制数字。然后,程序会根据用户的选择,将输入的数据从大到小或从小到大排序,并输出排序后的结果。