汇编实验(五)——学生成绩名次表实验

浅浅的花香味﹌ 2023-06-10 13:22 114阅读 0赞

汇编实验(五)——学生成绩名次表实验

    • 问题
    • 源代码
    • 截图

问题

将0~100之间的10个成绩存入首址为1000H的单元中。1000H+i表示学号为i的学生成绩,编写程序能在2000H开始的区域排出名次表。2000H+i为学号i的学生的名次

源代码

  1. include io.inc
  2. .model small
  3. .stack
  4. .data
  5. stunum equ 10
  6. msg db 'input 10 students score: ',13,10,'$'
  7. omsg db ' ranking: $'
  8. org 1000h
  9. score db 10 dup(?)
  10. ; 存放输入的成绩数据
  11. fuben db 10 dup(?)
  12. ; 成绩副本,待排序利用
  13. index db 10 dup(?)
  14. ; 编号,成绩的输入顺序,跟着副本排序一起交换,相当于结构体
  15. org 2000h
  16. sequ db 10 dup(?)
  17. ; 存放相对应成绩的排序
  18. .code
  19. .startup
  20. ;readsib 输入有符号十进制整数(-128127)出口:AL8位数据
  21. mov dx,offset msg
  22. mov ah,09h
  23. int 21h
  24. ; 输出输入提示
  25. mov cx,stunum
  26. ; 循环次数
  27. mov si,offset score
  28. mov di,offset fuben
  29. input: call readsib
  30. ; 输入无符号数据并存放到al
  31. call dispcrlf
  32. ; 回车换行
  33. mov byte ptr[si],al
  34. mov byte ptr[di],al
  35. inc si
  36. inc di
  37. loop input
  38. mov al,0
  39. mov cx,stunum
  40. mov si,offset index
  41. init: mov [si],al
  42. inc si
  43. inc al
  44. loop init
  45. ; 初始化index
  46. mov cx,stunum ;冒泡排序外层循环次数
  47. dec cx
  48. outlp: mov dx,cx ; dx 冒泡排序内层循环次数
  49. mov si,offset fuben
  50. mov di,offset index
  51. inlp:mov al,[si]
  52. mov ah,[di]
  53. cmp al,[si+1] ; 与下一个元素进行比较
  54. jnb next ;不小于则跳转,小于交换,从大到小进行排序
  55. xchg al,[si+1]
  56. xchg ah,[di+1]
  57. mov [si],al
  58. mov [di],ah
  59. ; 交换fuben,index的数据
  60. next:inc si
  61. inc di
  62. dec dx
  63. jnz inlp
  64. loop outlp
  65. ; 冒泡排序
  66. mov cx,stunum
  67. mov dl,1
  68. mov si,offset index
  69. mov bh,0
  70. order: mov bl,[si]
  71. mov sequ[bx],dl ; 得到排名为dl,相对与输入数据的位置,并赋值
  72. inc dl
  73. inc si
  74. loop order ;计算输入数据相应的排名
  75. mov cx,stunum
  76. mov bx,0
  77. output: mov al,score[bx]
  78. call dispuib
  79. mov dx,offset omsg
  80. mov ah,09h
  81. int 21h
  82. mov al,sequ[bx]
  83. call dispuib
  84. call dispcrlf
  85. inc bx
  86. loop output ;输出
  87. .exit
  88. end

截图

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,114人围观)

还没有评论,来说两句吧...

相关阅读