data segment
BUF DW 2560,-3,4387,12,6250,-79,54,88
COUNT EQU $-BUF
OUTBUF DB 7 DUP(0),'$'
data ends
code segment
assume cs:code,ds:data
OUTPUT PROC
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV BX,OFFSET OUTBUF+5
MOV BYTE PTR [BX],' '
MOV AX,[DI]
CMP AX,0
JGE LGE
MOV DL,'-'
PUSH AX
MOV AH,2
INT 21H
POP AX
XOR CX,CX
SUB CX,AX
MOV AX,CX
LGE:
MOV CX,10 ;做32位除以16位的除法,故将10送CX
AGAIN:
MOV DX,0 ;无符号数扩展将16位扩展为32位
DIV CX
ADD DL,30H ;将DL中的一位十进制数转换为ASCII码
DEC BX ;调整指针
MOV [BX],DL
OR AX,AX ;根据商是否为0,设置ZF
JNZ AGAIN ;判商是否为0,不为0继续除以10
MOV DX,BX ;将输出数据区的偏移首地址送DX
MOV AH,9
INT 21H
POP DX
POP CX
POP BX
POP AX
RET
OUTPUT ENDP
start proc far
push ds
sub a
汇编实现16位有符号二进制数排序并输出
最新推荐文章于 2023-04-25 15:06:46 发布
这是一个使用汇编语言实现的程序,它对一段包含正负整数的数据进行排序,并将排序后的结果以10进制形式输出。程序通过比较和交换元素完成排序,并使用内置的输出函数显示结果。
摘要由CSDN通过智能技术生成