📄 输入输出.txt
字号:
input proc near
lea dx,mess1 ;显示mess1的内容
mov ah,09
int 21h
mov si,0 ;将SI置零
mov count,0 ;将count置零
enter:
call decibin ;调用decibin子程序
inc count ;count=count+1
cmp dl,',' ;比较dl的内容和‘,’
je store ;如果一样跳转执行store
cmp dl,13 ;比较dl的内容和 ‘回车’
je exit2 ;如果相同,跳转执行exit2
jne error ;如果不相同,执行error
store:
mov grade[si],bx ;把bx的内容放入grade数组
add si,2 ;si=si+2
jmp enter ;跳转执行enter
error:
lea dx,mess2 ;显示mess2的内容
mov ah,09
int 21h
exit2:
mov grade[si],bx ;把bx的内容放入grade数组
call crlf ;调用crlf子函数
ret ;返回enter
input endp
rankp proc near
mov ax,datarea
mov ds,ax
mov cx,count ;将count的值赋给CX
dec cx ;cx=cx-1
loop1:
mov di,cx ;循环执行将cx的值赋给di
mov bx,0 ;将bx置零
loop2:
mov ax,grade[bx] ;冒泡法排序
cmp ax,grade[bx+2] ;比较grade数组中第一个数
jge continue ;与第二个数的大小如果第一
xchg ax,grade[bx+2] ;个数不小于第二个数,跳转
mov grade[bx],ax ;执行continue,否则交换这
;两个数
cotinue:
add bx,2 ;bx=bx+2
loop loop2 ;循环执行loop2的内容
mov cx,di ;将di的值赋给cx
loop loop1 ;循环执行loop1的内容
ret ;返回loop2
rankp endp
output proc near
lea dx,mess3 ;显示mess3的内容
mov ah,09
int 21h
mov si,0 ;将si置零
mov di,count ;把count的值送给di
next1:
mov bx,grade[si] ;把数组grade的第一个字送
call binidec ;入bx中,调用binidec
cmp di,1 ;比较bx和1
je next3 ;如果相等,跳转执行next3
mov dl,',' ;将‘,’放入dl中
mov ah,02 ;显示单个字符‘,’
int 21h
next3:
add si,2 ;si=si+2
dec di ;di=di-1
jnz next1 ;如果di不等于0执行next1
call crlf ;调用crlf子程序
ret ;返回next1
output endp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -