23.asm

来自「微机原理与接口技术的部分课后题(十几题经典的)程序」· 汇编 代码 · 共 54 行

ASM
54
字号
DATA SEGMENT
  TABLE DB '1357920468',0AH,0DH,'$'
  TEMP DB ?
  NOTI1 DB 'The old order is:','$'
  NOTI2 DB 'The new order is:','$'
DATA ENDS
STACK SEGMENT PARA STACK
  DB 10H DUP(?)
STACK ENDS
CODE SEGMENT
  ASSUME CS:CODE,DS:DATA,SS:STACK
START:  MOV AX,DATA             ;装入数据段
        MOV DS,AX
	MOV SI,00H
	MOV DI,01H	
	MOV CX,9
	LEA DX,NOTI1            ;NOTI1偏移地址送DX
	MOV AH,9                ;显示字符串
	INT 21H
	LEA DX,TABLE            ;TABLE偏移地址送DX
	MOV AH,9                ;显示字符串
	INT 21H
L1:     MOV AL,TABLE[SI]             
	PUSH DI
	PUSH CX
L2:     MOV AH,TABLE[DI]	;用冒泡法比较两个数大小
	CMP AL,AH               ;比较前两个数的大小
	JLE L3
	MOV TEMP,AL             ;将两个数交换位置
	MOV AL,AH
	MOV AH,TEMP
	MOV TABLE[DI],AH
	MOV TABLE[SI],AL
L3:     INC DI
        DEC CX
	JNZ L2
L4:     POP CX
	POP DI
	INC SI
	INC DI
	DEC CX
	JNZ L1
	LEA DX,NOTI2		;显示提示字符串
	MOV AH,9
	INT 21H
	MOV DX,OFFSET TABLE    ; 显示排序后的字符串
	MOV AH,09H
	INT 21H
	MOV AH,4CH
	INT 21H
CODE ENDS
  END START

      

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?