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

📄 stone.asm

📁 一个用汇编语言编写的矩阵转置程序
💻 ASM
字号:
.MODEL SMALL
.STACK 200H
.DATA
   ROW     DB  ?
   COLUMN  DB  ?
   ADR     DB  81 DUP(?)
   RST     DB  81 DUP(?)
.CODE
    MAIN PROC FAR
       PUSH DS
       XOR AX,AX
       PUSH AX
       MOV AX,@DATA
       MOV DS,AX
       
;=================================================================
       
       MOV AH,1         ;INPUT M
      INT 21H
      SUB AL,30H
      MOV ROW,AL
;===========================================================
      
      MOV AH,1         ;INPUT N
      INT 21H
      SUB AL,30H
      MOV COLUMN,AL
;===========================================================

      MOV DL,0AH       ;PRINT CR LF
      MOV AH,2
      INT 21H
      MOV DL,0DH
      MOV AH,2
      INT 21H
      
;============================================================
      
      MOV AL,ROW       ;INPUT MATRAX
      MUL COLUMN
      MOV CX,AX
      LEA BX,ADR
   L1:MOV AH,1
      INT 21H
      CMP AL,0DH
      JE  L9
      MOV [BX],AL
      INC BX
      LOOP L1
;============================================================
      
   L9:MOV DL,0AH       ;PRINT CR LF
      MOV AH,2
      INT 21H
      MOV DL,0DH
      MOV AH,2
      INT 21H
      
;===========================================================
      
      MOV CL,ROW        ;SHOW THE MATRAX
      LEA BX,ADR
   L2:MOV CH,COLUMN
   L3:MOV DL,[BX]
      MOV AH,2
      INT 21H
      
      MOV DL,20H
      MOV AH,2
      INT 21H
      
      INC BX
      DEC CH
      CMP CH,0
      JNE L3
      
      MOV DL,0DH
      MOV AH,2
      INT 21H
      MOV DL,0AH
      MOV AH,2
      INT 21H
      
      DEC CL
      CMP CL,0
      JNE L2
      
;===============================================================
      MOV CL,09H     ;PRINT '='
   L4:MOV DL,3DH
      MOV AH,2
      INT 21H
      DEC CL
      CMP CL,0
      JNE L4
      
;================================================================
      
      MOV DL,0AH       ;PRINT CR LF
      MOV AH,2
      INT 21H
      
      MOV DL,0DH
      MOV AH,2
      INT 21H


;================================================================

      MOV CL,COLUMN     ;REVERSE THE MATRAXAND RSERVE TO RST
      LEA SI,RST
   L5:MOV CH,ROW
      LEA BX,ADR
      MOV DX,0
      MOV DL,COLUMN
      ADD BX,DX
      MOV AX,0
      MOV AL,CL
      SUB BX,AX
   L6:MOV AL,[BX]
      MOV [SI],AL
      INC SI
      MOV DL,COLUMN
      ADD BX,DX
      DEC CH
      CMP CH,0
      JNE L6
      DEC CL
      CMP CL,0
      JNE L5
      
;=============================================================
      
      LEA BX,RST      ;SHOW THE RST
      MOV CH,COLUMN
   L7:MOV CL,ROW
   L8:MOV DL,[BX]
      MOV AH,2
      INT 21H
      MOV DL,20H
      MOV AH,2
      INT 21H
      INC BX
      DEC CL
      CMP CL,0
      JNE L8
      MOV DL,0AH
      MOV AH,2
      INT 21H
      MOV DL,0DH
      MOV AH,2
      INT 21H
      DEC CH
      CMP CH,0
      JNE L7
      

;============================================================
      mov ah,1
      int 21h
      
      RET
      MAIN ENDP
        END MAIN
      
      
      

⌨️ 快捷键说明

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