找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5418|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

有一個首地址為A的N字?jǐn)?shù)組,請編程序使該數(shù)組中的數(shù)按從大到小的次序排列。

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:263358 發(fā)表于 2017-12-19 08:50 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
匯編作業(yè):
   編程要求及提示:
  [1] 參加排序的數(shù)據(jù)及個數(shù)由學(xué)生自己定義。
   [2] 要將排序前的數(shù)組和排序后的數(shù)組在屏幕上顯示出來。
   [3] 實驗步驟
   a. 用全屏幕編輯軟件建立源程序。
   b.用masm.exe匯編程序?qū)υ闯绦蜻M行匯編,形成目標(biāo)程序。
   c. 用link.exe連接程序?qū)δ繕?biāo)程序進行連接形成可執(zhí)行文件。
   d. 用DEBUG對連接通過的可執(zhí)行程序進行調(diào)試。

  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                     ;顯示未排序之前的數(shù)組
  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指向最后一個數(shù)據(jù)
  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                                           ;不需交換時繼續(xù)比較
  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                               ;顯示排好序后數(shù)據(jù)       
  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內(nèi)容子程序
  70. ;入口參數(shù):AL
  71. ;出口參數(shù):無
  72.         PUSH AX
  73.         PUSH CX
  74.         PUSH DX
  75.         PUSH AX
  76.         MOV CL,4                                   ;處理高位十六進制數(shù)
  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                                  ;處理低位十六進制數(shù)
  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. ;功能:十六進制數(shù)轉(zhuǎn)換為ASCII碼
  95. ;入口參數(shù):AL
  96. ;出口參數(shù):無
  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內(nèi)容子程序
  106. ;入口參數(shù):AX
  107. ;出口參數(shù):無
  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. ;入口參數(shù):AX
  117. ;出口參數(shù):無                       
  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
復(fù)制代碼





匯編2.png (7.46 KB, 下載次數(shù): 128)

匯編2.png

sort.doc

33.5 KB, 下載次數(shù): 6, 下載積分: 黑幣 -5

sort.zip

1016 Bytes, 下載次數(shù): 4, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表