找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 5428|回复: 0
收起左侧

有一个首地址为A的N字数组,请编程序使该数组中的数按从大到小的次序排列。

[复制链接]
ID:263358 发表于 2017-12-19 08:50 | 显示全部楼层 |阅读模式
汇编作业:
   编程要求及提示:
  [1] 参加排序的数据及个数由学生自己定义。
   [2] 要将排序前的数组和排序后的数组在屏幕上显示出来。
   [3] 实验步骤
   a. 用全屏幕编辑软件建立源程序。
   b.用masm.exe汇编程序对源程序进行汇编,形成目标程序。
   c. 用link.exe连接程序对目标程序进行连接形成可执行文件。
   d. 用DEBUG对连接通过的可执行程序进行调试。

  1. DATA SEGMENT
  2. NUM DW 0008H
  3. VAR1 DW 100AH,0A010H,010CH,02ACH,04BCH,0934H,0003H,3465H
  4. BUF  DB 100 DUP(?)
  5. STRING1 DB 'Original array:',0DH,0AH,'





  6. STRING2 DB 'The sorted array:',0DH,0AH,'





  7. DATA ENDS
  8. STACK SEGMENT STACK 'STACK'
  9.        DW 100 DUP(?)
  10. TOP   LABEL WORD
  11. STACK ENDS
  12. CODE SEGMENT
  13.    ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
  14. START:  
  15. MOV AX,DATA
  16.         MOV DS,AX
  17.         MOV ES,AX
  18.             MOV AX,STACK
  19.              MOV SS,AX
  20.         LEA DX,STRING1                                  ;显示人机交互提示
  21.         MOV AH,09H
  22.         INT 21H
  23.             MOV CX,NUM       
  24.             LEA SI,VAR1
  25. L1:            
  26. MOV AX,[SI]
  27.         INC SI
  28.         INC SI
  29.             CALL DISPAX                     ;显示未排序之前的数组
  30.         CALL DISPCR                     ;回车换行
  31.             LOOP L1
  32.         CALL DISPCR
  33.             MOV CX,NUM
  34.         DEC CX
  35.             LEA SI,VAR1
  36.         ADD SI,CX
  37.         ADD SI,CX                                     ;SI指向最后一个数据
  38. LP1:            
  39. PUSH CX
  40.             PUSH SI
  41. LP2:       
  42. MOV AX,[SI]                                       ;排序
  43.             CMP AX,[SI-2]
  44.             JBE NOXCHG       
  45.             XCHG AX,[SI-2]                                ;交换操作
  46.             MOV [SI],AX
  47. NOXCHG:       
  48.         DEC SI                                           ;不需交换时继续比较
  49.             DEC SI
  50.             LOOP LP2
  51.             POP SI
  52.             POP CX
  53.             LOOP LP1
  54.             LEA DX,STRING2                                ;显示输出提示
  55.         MOV AH,09H
  56.         INT 21H
  57.             MOV CX,NUM                               ;显示排好序后数据       
  58.             LEA SI,VAR1
  59. L2:       
  60. MOV AX,[SI]
  61.     INC SI
  62.     INC SI
  63.         CALL DISPAX
  64.     CALL DISPCR
  65.         LOOP L2
  66.         MOV AH,4CH
  67.         INT 21H
  68. DISPAL  PROC NEAR                               
  69. ;功能:显示AL内容子程序
  70. ;入口参数:AL
  71. ;出口参数:无
  72.         PUSH AX
  73.         PUSH CX
  74.         PUSH DX
  75.         PUSH AX
  76.         MOV CL,4                                   ;处理高位十六进制数
  77.         SHR AL,CL
  78.         CALL TRANS16TOACSII
  79.         MOV AH,02H
  80.         MOV DL,AL
  81.         INT 21H                                          ;显示一位字符
  82.     POP AX       
  83.         AND AX,0FH                                  ;处理低位十六进制数
  84.         CALL TRANS16TOACSII
  85.         MOV AH,02H
  86.         MOV DL,AL
  87.         INT 21H
  88.         POP DX
  89.         POP CX
  90.         POP AX
  91.         RET
  92. DISPAL  ENDP
  93. TRANS16TOACSII PROC NEAR               
  94. ;功能:十六进制数转换为ASCII码
  95. ;入口参数:AL
  96. ;出口参数:无
  97.         CMP AL,10
  98.         JNGE TRAN1
  99.         ADD AL,7
  100. TRAN1:       
  101.         ADD AL,30H
  102. RET
  103. TRANS16TOACSII        ENDP       
  104. DISPAX        PROC                               
  105. ;功能:AX内容子程序
  106. ;入口参数:AX
  107. ;出口参数:无
  108.         XCHG AL,AH
  109.         CALL DISPAL
  110.         XCHG AH,AL
  111.         CALL DISPAL
  112.         RET
  113. DISPAX        ENDP
  114. DISPCR        PROC NEAR
  115. ;功能:回车换行子程序
  116. ;入口参数:AX
  117. ;出口参数:无                       
  118.         PUSH AX
  119.         PUSH DX
  120.         MOV AH,2
  121.         MOV DL,0AH
  122.         INT 21H
  123.         MOV AH,2
  124.         MOV DL,0DH
  125.         INT 21H
  126.         POP DX
  127.         POP AX
  128.         RET
  129. DISPCR        ENDP
  130. CODE        ENDS
  131.         END START
复制代码





汇编2.png

sort.doc

33.5 KB, 下载次数: 6, 下载积分: 黑币 -5

sort.zip

1016 Bytes, 下载次数: 4, 下载积分: 黑币 -5

回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表