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

📄 matrix.asm

📁 用汇编写的矩阵乘法和IEEE浮点数转换
💻 ASM
字号:
MYDATA SEGMENT
	   LEN  DW 0,'$'
	   MA   DB 16
	        DB ?
	        DB 16 DUP(0)
	        DB 0DH,0AH,'$'
	   MB   DB 16
	        DB ?
	        DB 16 DUP(0)
	        DB 0DH,0AH,'$'
       INFO DB 'Mutiply two matrix.'
            DB 0DH,0AH,'Now input the ranks of the matrix:$'
       INFOA  DB 0DH,0AH,'Now input the first matrix in a line:$'
       INFOB  DB 0DH,0AH,'Input the second matrix:$'
       RESULT DB 0DH,0AH,'The result is:$'
       ANS	  DB 32 DUP(0),0DH,0AH,'$'
       TEMP DW 0
       A1   DW 0
       A2   DW 0       
MYDATA ENDS

EDATA	SEGMENT
	
EDATA	ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:MYDATA,SS:STACKS
START:
    MOV AX,MYDATA
    MOV DS,AX
    MOV	AX,EDATA
	MOV	ES,AX
    
    LEA DX,INFO
	MOV AH,09H
	INT 21H     ;print the information
	;LEA DX,LEN
	MOV AH,01H
	INT 21H     ;receive the rank
	MOV SI,OFFSET LEN
	;MOV AX,[SI]
	SUB AL,30H
	MOV [SI],AL  ;save the rank
	
	LEA DX,INFOA
	MOV AH,09H
	INT 21H  
	LEA DX,MA
	MOV AH,0AH
	INT 21H 
    MOV SI,OFFSET MA
	INC SI
	XOR CX,CX
    MOV CL,[SI]
    INC SI
AGAIN:  MOV AL,[SI]
        SUB AL,30H 
        MOV [SI],AL
        INC SI
        LOOP AGAIN     ;store first matrix
	
	LEA DX,INFOB
	MOV AH,09H
	INT 21H  
	LEA DX,MB
	MOV AH,0AH
	INT 21H 
	MOV SI,OFFSET MB
	INC SI
	XOR CX,CX
    MOV CL,[SI]
    INC SI
LOP:  MOV AL,[SI]
        SUB AL,30H
        MOV [SI],AL
        INC SI 
        LOOP LOP       ;store second matrix
 
      MOV BP,OFFSET ANS    
      MOV SI,OFFSET MA
      ADD SI,2
      MOV A1,SI
      MOV DI,OFFSET MB
      ADD DI,2
      MOV A2,DI
      
LOP1: MOV BX,0
LOP2: MOV DX,0
      MOV CX,LEN
LOP3: MOV AL,[SI]
      INC SI
      MOV AH,[DI]
      ADD DI,LEN
      MUL AH 
      ADD DX,AX 
    LOOP LOP3
B2A:  SUB DL,10
      JS NEXT
      INC DH
      JMP B2A
NEXT: ADD DL,10
      ADD DH,30H
      MOV [BP],DH
      INC BP
      ADD DL,30H
      MOV [BP],DL
      INC BP
      MOV SI,A1
      MOV DI,A2
      INC BX
      ADD DI,BX
      CMP BX,LEN
    JS LOP2
      MOV AX,LEN
      ADD A1,AX
      MOV SI,A1
      MOV DI,A2
      ADD TEMP,1
      MOV AX,TEMP
      CMP AX,LEN
    JS LOP1  
        
    LEA DX,RESULT     ;print the result
	MOV AH,09H
	INT 21H
	LEA DX,ANS
	MOV AH,09H
	INT 21H
        
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

⌨️ 快捷键说明

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