问答题 把A单元起三个单元中的无符号数,按递增顺序重新排序,并放回原存储单元中。
【正确答案】DATA  SEGMENT
     A  DB  35,26,29
   DATA  ENDS
   CODE  SEGMENT
     ASSUME  CS:CODE,DS:DATA
   START:MOV  AX,DATA
          MOV  DS,AX
   LP:    MOV  AL,A    ;取第一个操作数
          CMP  AL,A+1   ;比较第一个操作数和第二个操作数
          JC   AB    ;第1个数小于第2个数时不交换
          XCHG AL,A+1   ;否则交换
          MOV  A,AL    ;将AL中的数存入A
   AB:    CMP  AL,A+2
          JC   CA    ;A中为最小数
          XCHG AL,A+2
          MOV  A,AL    ;经过2次比较,A中为最小数
   CA:    MOV  AL,A+1   ;比较剩余的两数,完成排序
          CMP  AL,A+2
          JC   AA
          XCHG AL,A+2
          MOV  A+1,AL
   AA:    MOV  AH,4CH
          INT  21H
   CODE   ENDS
   END    START
【答案解析】排序一般采用多重循环,由于本题只有3个数进行排序,因此使用2次比较和1次循环指令就能完成。