我是靠谱客的博主 稳重唇膏,这篇文章主要介绍汇编程序成绩排序的实现,现在分享给大家,希望可以做个参考。

汇编程序 成绩排序的实现

【任务】
  在数据区,给出了学生人数及汇编语言课程的成绩,请将成绩排序并保存在原数据区。
  下面给出部分代码,要求完成排序子程序。
  程序中给出的数据段,包括20位同学的成绩,每名同学的数据占1字节。

参考程序段:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
assume cs:cseg, ds:dseg, ss:sseg sseg segment stack dw 100H dup (?) sseg ends dseg segment db 20 db 98,61,57,82,89,73,61,58,53,54 db 84,78,70,64,84,63,76,84,83,86 dseg ends cseg segment start: mov ax, dseg mov ds, ax mov cl, ds:[0] mov ch, 0 ;cx中存储要排序数的个数 mov bx, 1 ;要排序数的起始偏移地址 call sort mov ax, 4c00h int 21h ;子程序名:sort ;功 能:对从(DS):(bx)开始的(cx)个字节排序 ;入口参数:(DS):(BX)保存数据的起始地址 ; (cx)中是要排序的数据个数 ;出口参数:无 sort proc ;这儿写子程序 sort endp cseg ends end start

【参考解答】

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
assume cs:cseg, ds:dseg, ss:sseg sseg segment stack dw 100H dup (?) sseg ends dseg segment db 20 db 98,61,57,82,89,73,61,58,53,54 db 84,78,70,64,84,63,76,84,83,86 dseg ends cseg segment start: mov ax, dseg mov ds, ax mov cl, ds:[0] mov ch, 0 ;cx中存储要排序数的个数 mov bx, 1 ;要排序数的起始偏移地址 call sort mov ax, 4c00h int 21h sort proc push si push ax dec cx ;外层循环次数为数据个数减1 c1: ;排序的外层循环 push cx mov si, bx c2: ;排序的内层循环 mov al, [si] cmp al, [si+1] jbe noswap mov ah, [si+1] mov [si+1], al mov [si], ah noswap: inc si loop c2 pop cx loop c1 pop ax pop si ret sort endp cseg ends end start

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持靠谱客。

最后

以上就是稳重唇膏最近收集整理的关于汇编程序成绩排序的实现的全部内容,更多相关汇编程序成绩排序内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(92)

评论列表共有 0 条评论

立即
投稿
返回
顶部