微机技术原理题,在DATA1开始的内存单元里存放有0到9共10个数字,要求将其按照由大到小的排列顺序排列
在DATA1开始的内存单元里存放有0到9共10个数字,要求将其按照由大到小的排列顺序排列,并将排列结果通过显示器输出。在DOS环境下,用汇编语言实现...
在DATA1开始的内存单元里存放有0到9共10个数字,要求将其按照由大到小的排列顺序排列,并将排列结果通过显示器输出。在DOS环境下,用汇编语言实现
展开
展开全部
稍微改一下要排的数就行了
CRLF MACRO
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
ENDM
DATA SEGMENT
N EQU 10
W DW 8,41,32,54,25,16,37,22,18,46
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
BEGIN: MOV AX, DATA
MOV DS, AX
MOV CX, N
DEC CX
LOOP1:MOV DI,CX
MOV BX, 0
LOOP2:MOV AX,W[BX]
CMP AX,W[BX+2]
JGE NEXT
XCHG AX, W[BX+2]
MOV W[BX], AX
NEXT:ADD BX,2
LOOP LOOP2
MOV CX,DI
LOOP LOOP1
XOR BX,BX
MOV CX,N
D: MOV AX, W[BX]
MOV DL,10
DIV DL
MOV DH,AH
MOV DL,AL
ADD DL,30H
MOV AH,2
INT 21H
MOV DL,DH
ADD DL,30H
MOV AH,2
INT 21H
ADD BX,2
CRLF
LOOP D
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN
CRLF MACRO
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
ENDM
DATA SEGMENT
N EQU 10
W DW 8,41,32,54,25,16,37,22,18,46
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
BEGIN: MOV AX, DATA
MOV DS, AX
MOV CX, N
DEC CX
LOOP1:MOV DI,CX
MOV BX, 0
LOOP2:MOV AX,W[BX]
CMP AX,W[BX+2]
JGE NEXT
XCHG AX, W[BX+2]
MOV W[BX], AX
NEXT:ADD BX,2
LOOP LOOP2
MOV CX,DI
LOOP LOOP1
XOR BX,BX
MOV CX,N
D: MOV AX, W[BX]
MOV DL,10
DIV DL
MOV DH,AH
MOV DL,AL
ADD DL,30H
MOV AH,2
INT 21H
MOV DL,DH
ADD DL,30H
MOV AH,2
INT 21H
ADD BX,2
CRLF
LOOP D
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |