⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 order.asm

📁 输入20个十进制数(两位或三位)
💻 ASM
字号:
      STACK1  SEGMENT   PARA STACK
              DW        32 DUP(0)
      STACK1  ENDS
        DATA  SEGMENT
        IBUF  DB        255,0,255 DUP(0)
        PLUS  DW        255 DUP(0)
       MINUS  DW        255 DUP(0)
       PLUSC  DB        0
      MINUSC  DB        0
        DATA  ENDS
        CODE  SEGMENT
              ASSUME    CS:CODE,DS:DATA
       BEGIN  PROC      FAR
              PUSH      DS
              MOV       AX,0
              PUSH      AX
              MOV       AX,DATA
              MOV       DS,AX
              MOV       DX,OFFSET IBUF
              MOV       AH,10
              INT       21H
              MOV       AH,2
              MOV       DL,0AH
              INT       21H
              MOV       PLUSC,0
              MOV       MINUSC,0
              MOV       SI,OFFSET PLUS
              MOV       DI,OFFSET MINUS
              MOV       BX,2
      AGAIN:  CMP       IBUF[BX],'-'
              JE        GMINUS
              INC       PLUSC
              CALL      DACB
              MOV       [SI],DX
              ADD       SI,2
              JMP       PMCOM
     GMINUS:  INC       BX
              INC       MINUSC
              CALL      DACB
              MOV       [DI],DX
              ADD       DI,2
      PMCOM:  INC       BX
              CMP       IBUF[BX-1],0DH
              JNE       AGAIN
              MOV       SI,OFFSET PLUS
              MOV       DL,PLUSC
              MOV       AH,0
              DEC       DX
     OUTSID:  MOV       CX,DX
              PUSH      SI
              MOV       AX,[SI]
     INSIDE:  ADD       SI,2
              CMP       AX,[SI]
              JC        NEXCHG
              XCHG      [SI],AX
     NEXCHG:  LOOP      INSIDE
              POP       SI
              MOV       [SI],AX
              ADD       SI,2
              DEC       DX
              JNZ       OUTSID
              MOV       SI,OFFSET MINUS
              MOV       DL,MINUSC
              MOV       DH,0
              DEC       DX
     OUTSDE:  MOV       CX,DX
              PUSH      SI
              MOV       AX,[SI]
      INSDE:  ADD       SI,2
              CMP       AX,[SI]
              JNC       NEXCH
              XCHG      [SI],AX
      NEXCH:  LOOP      INSDE
              POP       SI
              MOV       [SI],AX
              ADD       SI,2
              DEC       DX
              JNZ       OUTSDE
     OUTPUT:  DEC       BX
              MOV       IBUF[BX],'$'
              MOV       CL,PLUSC
              MOV       CH,0
              MOV       DI,CX
              XCHG      CH,CL
              SHL       DI,1
        PAG:  SUB       DI,2
              AND       CH,CH
              JZ        PDONE
              MOV       DX,PLUS[DI]
              CALL      BCDA
              DEC       BX
              MOV       IBUF[BX],','
              DEC       CH
              JMP       PAG
      PDONE:  MOV       CL,MINUSC
              MOV       DI,CX
              MOV       CH,CL
              SHL       DI,1
        MAG:  SUB       DI,2
              AND       CH,CH
              JZ        MDONE
              MOV       DX,MINUS[DI]
              CALL      BCDA
              DEC       BX
              MOV       IBUF[BX],'-'
              DEC       BX
              MOV       IBUF[BX],','
              DEC       CH
              JMP       MAG
      MDONE:  MOV       DX,OFFSET IBUF+2
              MOV       AH,9
              INT       21H
              RET
       BEGIN  ENDP
        DACB  PROC
              XOR       DX,DX
              MOV       CL,4
      DACB1:  SHL       DX,CL
              MOV       CH,IBUF[BX]
              AND       CH,0FH
              OR        DL,CH
              INC       BX
              CMP       IBUF[BX],0DH
              JE        DONE
              CMP       IBUF[BX],','
              JNE       DACB1
       DONE:  RET
        DACB  ENDP
        BCDA  PROC
              MOV       CL,4
      BCDA1:  MOV       AL,DL
              AND       AL,0FH
              ADD       AL,30H
              DEC       BX
              MOV       IBUF[BX],AL
              SHR       DX,CL
              AND       DX,DX
              JNE       BCDA1
              RET
        BCDA  ENDP
        CODE  ENDS
              END       BEGIN
















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -