汇编高手来 学生成绩排序。哪里有错? 全部分了。大家帮忙,初学啊

Princezhouf Princezhouf 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
data segment
buf db 10, ?, 10 dup('$')
input1 db 'Please input the student name:$'
input2 db 'Please input the score(0-100):$'
name1 db 100 dup(?)
score1 dw 10 dup(0)
data ends
stack segment para 'stack' stack
db 200 dup( 0 )
stack ends
code segment
assume cs:code, ds:data, ss:stack
begin:
mov ax, data
mov ds, ax
mov es, ax
mov ax, stack
mov ss, ax
mov cx, 10
mov bx, 0
input:
lea dx,input1 ;输出input1
mov ah,09h
int 21h

lea dx, buf ;输入buf
mov ah, 0ah
int 21h

mov dl, 13
mov ah, 2
int 21h

mov dl, 10
int 21h

lea dx, buf
add dx, 2
mov ah, 9
int 21h

mov dl, 13
mov ah, 2
int 21h

mov dl, 10
int 21h

push cx ;存储姓名
push ds
pop es
cld
mov cl, buf[1]
xor ch, ch
lea si, buf[2]
lea di, name1
rep movsb
pop cx
push cx
cld
push ds
pop es
lea di,buf
add di,2
mov cx,10
mov al,'$'
rep stosb
pop cx

lea dx,input2 ;输出input2
mov ah,09h
int 21h

lea dx, buf ;输入buf
mov ah, 0ah
int 21h

push si ;存储buf
push cx
lea si,buf
add si,2
mov cl,buf[1]
cld
xor dx, dx
lp:
mov ax, 10
mul dx
mov dx, ax
lodsb
and ax, 0FH
add dx, ax
loop lp
pop cx
pop si

mov score1[bx],dx
inc bx

mov dl, 13
mov ah, 2
int 21h

mov dl, 10
int 21h

lea dx, buf
add dx, 2
mov ah, 9
int 21h


mov dl, 13
mov ah, 2
int 21h

mov dl, 10
int 21h

push cx
cld
push ds
pop es
lea di,buf
add di,2
mov cx,10
mov al,'$'
rep stosb
pop cx

dec cx
cmp cx,0
je compare
jmp input

compare:
mov cx,10
dec cx
compare1:
mov di,cx
mov bx,0 ;比较score,并输出
compare2:
mov ax,score1[bx]
cmp ax,score1[bx+2]
jge continue
xchg ax,score1[bx+2]
mov score1[bx],ax
continue:
add bx,2
loop compare2
mov cx,di
loop compare1
mov di,9
Print: ;打印排好的score
int 1
xor ax,ax
mov al,score1[di]
xor cx,cx
DoDiv:
mov bl,10
div bl
push ax
inc cx
xor ah,ah
cmp al,0
jnz DoDiv
DoPrt:
pop dx
xchg dh,dl
add dl,30h
mov ah,2
int 21h
loop DoPrt
cmp di,-1
jne ddd
ddd:
dec di
jmp print

Exit: mov ah, 4ch
int 21h
code ends
end begin
...全文

相关推荐

汇编语言实现学生成绩排序

汇编语言实现的学生成绩排序,课程设计时候做的,包含源代码及实验报告完整版

断弯刀

汇编语言#编写两个子程序,分别实现:1)使用选择法排序,按成绩从高到低的进行排序;2)分别统计学生某门课程成绩中各分数段的成绩的人数,并输出

汇编语言#编写两个子程序,分别实现:1)使用选择法排序,按成绩从高到低的进行排序;2)分别统计学生某门课程成绩中各分数段的成绩的人数,并输出 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。   另一种解释就是,直接从待排序数组里选择一个最小(或最大)的数字,...

black_mamba97

用汇编实现10个学生成绩排序和分数段人数统计

;用汇编语言编写学生成绩统计程序:键盘输入学生成绩到SCORE中( ;0<=分数<=100,设有10个学生成绩分别是56,69,84,82,73,88,99,63,100,80) 。 ;编程将它们由大到小排序,存回到原来的SCORE变量中; ;并统计低于60分、60~69、70~79、80~89、90~99及100分的人数, ;分别存放在S5、S6、S7、S8、S9、S10单元中。

zzyhyuan

汇编语言学生成绩排序

用汇编语言编写,从键盘读入某班学生(人数 £ 15)的考试成绩,然后对该班的成绩进行递减排序,要求显示排序结果,并对全班成绩进行统计,给出小于60分、60分段、70分段、80分段和90分段各段的人数以及全班的平均分数。

anniedx

接收从键盘输入某班学生的学号、姓名、成绩,对学 生的成绩进行排序.zip

编写程序,接收从键盘输入某班学生的学号、姓名、成绩,对学 生的成绩进行排序,最后把学号、姓名、学生成绩、名次显示出来。

一个叶绿体
评论 14
收藏 已收藏
分享
返回顶部
Princezhouf
汇编语言 21,500 成员 41,619 内容