
两道汇编语言题目。。求解
1.编写程序,利用系统功能调用从键盘输入10个1位无符号数,按从小到大的顺序排序后,显在屏幕上。2....
1.编写程序,利用系统功能调用从键盘输入10个1位无符号数,按从小到大的顺序排序后,显在屏幕上。
2. 展开
2. 展开
1个回答
展开全部
2.
ASSUME CS:CODE, DS:DATA
;---------------------------------
DATA SEGMENT ;数据段
STRING01 DB 13, 10, 'Mon $'
CHANG EQU $ - STRING01
STRING02 DB 13, 10, 'Tue $'
STRING03 DB 13, 10, 'Wed $'
STRING04 DB 13, 10, 'Thu $'
STRING05 DB 13, 10, 'Fri $'
STRING06 DB 13, 10, 'Sat $'
STRING07 DB 13, 10, 'Sun $'
;星期一: Mon.=Monday 星期二: Tues.=Tuesday 星期三: Wed.=Wednesday
;星期四: Thur.=Thursday 星期五: Fri.=Friday 星期六: Sat.=Saturday
;星期天: Sun.=Sunday
X DB ?
DATA ENDS
;---------------------------------
CODE SEGMENT ;代码段
START:
MOV AX, DATA
MOV DS, AX
;--------------------------------
_INX:
MOV AH, 1 ;输入单个字符.
INT 21H
;--------------------------------
CMP AL, 13
JE EXIT_IN
CMP AL, '0'
JB _IN_ERR ;小于'0',不是数字.
CMP AL, '9'
JA _IN_ERR
SUB AL, '0' ;还原为数字
MOV x, AL ;保存.
JMP EXIT_IN
;--------------------------------
_IN_ERR:
MOV DL, 8
MOV AH, 2
INT 21H
POP CX
JMP _INX
;--------------------------------
EXIT_IN:
;--------------------------------
MOV AL, x ;
CMP AL, 0
JE EXIT
CMP AL, 7
JA EXIT
DEC AL
LEA DX, STRING01
MOV BL, CHANG
MUL BL
ADD DX, AX
MOV AH, 9
INT 21H
EXIT:
MOV AH, 4CH ;结束程序
INT 21H
CODE ENDS
END START
;---------------------------------
不想输入就输入<回车>,结束程序。
ASSUME CS:CODE, DS:DATA
;---------------------------------
DATA SEGMENT ;数据段
STRING01 DB 13, 10, 'Mon $'
CHANG EQU $ - STRING01
STRING02 DB 13, 10, 'Tue $'
STRING03 DB 13, 10, 'Wed $'
STRING04 DB 13, 10, 'Thu $'
STRING05 DB 13, 10, 'Fri $'
STRING06 DB 13, 10, 'Sat $'
STRING07 DB 13, 10, 'Sun $'
;星期一: Mon.=Monday 星期二: Tues.=Tuesday 星期三: Wed.=Wednesday
;星期四: Thur.=Thursday 星期五: Fri.=Friday 星期六: Sat.=Saturday
;星期天: Sun.=Sunday
X DB ?
DATA ENDS
;---------------------------------
CODE SEGMENT ;代码段
START:
MOV AX, DATA
MOV DS, AX
;--------------------------------
_INX:
MOV AH, 1 ;输入单个字符.
INT 21H
;--------------------------------
CMP AL, 13
JE EXIT_IN
CMP AL, '0'
JB _IN_ERR ;小于'0',不是数字.
CMP AL, '9'
JA _IN_ERR
SUB AL, '0' ;还原为数字
MOV x, AL ;保存.
JMP EXIT_IN
;--------------------------------
_IN_ERR:
MOV DL, 8
MOV AH, 2
INT 21H
POP CX
JMP _INX
;--------------------------------
EXIT_IN:
;--------------------------------
MOV AL, x ;
CMP AL, 0
JE EXIT
CMP AL, 7
JA EXIT
DEC AL
LEA DX, STRING01
MOV BL, CHANG
MUL BL
ADD DX, AX
MOV AH, 9
INT 21H
EXIT:
MOV AH, 4CH ;结束程序
INT 21H
CODE ENDS
END START
;---------------------------------
不想输入就输入<回车>,结束程序。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询