汇编语言实现十个数的排序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DATAS SEGMENT

DATA0 DB'Please input a numbers (0-65535):','$' DATA1 DB' over flow input again:','$' DATA2 DB'The num you have put is:',0ah,0dh,'$' DATA3 DB'After exchange the num is:',0ah,0dh,'$' DATA4 DB' ','$'

DATA DW 10 DUP(?)

DATAS ENDS

STACKS SEGMENT

DW 256 DUP(?);此处输入堆栈段代码STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS ;/****************************************/ ;-----------程序开始------------

START:

MOV AX,DATAS

MOV DS,AX

MOV SI,0

MOV CX,10

;----------循环输入------------

L:

CALL INPUT

ADD SI,2

CALL NEWLINE

LOOP L

MOV DX,OFFSET DATA2

MOV AH,9

INT 21H

;-------输入后显示----------

MOV CX,10

MOV DI,0

AGAIN:

CALL PRINT

CALL SPACE

ADD DI,2

LOOP AGAIN

;----------排序-------------

MOV CX,9

MOV DI,0

LOOP0:

CALL SORT

ADD DI,2

LOOP LOOP0

CALL NEWLINE

MOV DX,OFFSET DATA3

MOV AH,9

INT 21H

;----------交换后显示-------------

MOV CX,10

MOV DI,0

AGAIN0:

CALL PRINT

CALL SPACE

ADD DI,2

LOOP AGAIN0

;----------返回系统--------------

EXIT:

MOV AH,4CH

INT 21H

;/**************************************/ ;------------输入函数--------

INPUT PROC NEAR

PUSH AX

PUSH BX

PUSH CX

PUSH DX

;----------提示信息----------

MOV DX,OFFSET DATA0

MOV AH,9

INT 21H

MOV BX,0 ;BX存放十进制数

CLC

MOV DX,0

L0:

;----------输入数字----------

MOV AH,1

INT 21H

CMP AL,0DH

JE L1

SUB AL,30H

JL NEXT1

CMP AL,9

JG NEXT1

;---------转换成十进制数-------

MOV AH,0

XCHG AX,BX

MOV CX,10

MUL CX

ADD AX,BX

JC NEXT1

XCHG AX,BX

JMP L0

NEXT1:

MOV DX,0

MOV BX,0

CALL NEWLINE

CALL ERROR

JMP L0

L1:

CMP DX,0

JNZ NEXT1

MOV DATA[SI],BX

MOV DX,0

POP DX

POP CX

POP BX

POP AX

RET

INPUT ENDP

;/*****************************/ ;-------回车换行--------

NEWLINE PROC NEAR

PUSH AX

PUSH DX

MOV AH,2

INT 21H

MOV DL,0DH

MOV AH,2

INT 21H

POP DX

POP AX

RET

NEWLINE ENDP

;/*********************************/

;--------空格-------

SPACE PROC NEAR

PUSH AX

PUSH DX

MOV DX,OFFSET DATA4

MOV AH,9

INT 21H

POP DX

POP AX

RET

SPACE ENDP

;/**************************************/ ;----------错误提示----------------

ERROR PROC NEAR

PUSH AX

PUSH DX

MOV DX,OFFSET DATA1

MOV AH,9

INT 21H

POP DX

POP AX

RET

ERROR ENDP

;/************************************/ ;--------冒泡排序子程序-----------

SORT PROC NEAR

PUSH BX

PUSH DX

相关文档
最新文档