【发布时间】:2016-03-31 19:43:52
【问题描述】:
我是汇编语言的新手,在 TASM 上工作,需要按升序对数字进行排序。代码很简单,但我必须从键盘读取数组元素的数量,然后也从键盘插入它们。问题是您键入的所有内容都以 ASCII 代码显示,而我对转换一无所知。如何阅读?
提前谢谢你!
对 5 个数字进行排序
.MODEL SMALL
.DATA
NUM DW 42H,34H,26H,17H,09H
LEN EQU 05H
.CODE
START:
MOV AX,@DATA
MOV DS,AX
MOV BX,LEN-1 ;Initialize BX as the counter for loop UP
MOV CX,BX ;Initialize CX as the counter for loop UP1
UP1: MOV BX,CX
LEA SI,NUM ;SI points to the first number in NUM
UP: MOV AX,[SI]
MOV DX,[SI+2]
CMP AX,DX
JB DOWN ;no swapping if [SI] less than [SI+2]
MOV [SI],DX
MOV [SI+2],AX ;swap the numbers pointed by SI and SI+2
;if [SI] is greater than [SI+2]
DOWN:
INC SI
INC SI ;increment SI to point to next dataword(number)
DEC BX
JNZ UP
DEC CX
JNZ UP1
MOV AH,4CH
INT 21H
END START
END
【问题讨论】:
标签: arrays sorting assembly long-integer tasm