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

📄 a4-3.asm

📁 多位数乘法运算
💻 ASM
字号:
;A4-3.asm
;乘法运算

STACK1  SEGMENT STACK
         DW 256 DUP(?)
STACK1  ENDS

DATA 	SEGMENT
MES1    DB 'The result is:$'
ERRMES  DB 'Error exist!$'
DATA1 	DB 00H,02H,03H,04H,05H
DATA2 	DB 03H
RESULT	DB 06H DUP(0)
DATA ENDS
	
CODE SEGMENT
	ASSUME CS:CODE,DS:DATA
START:  MOV 	AX,DATA
	MOV 	DS,AX
	MOV 	SI,OFFSET DATA2
	MOV 	BL,[SI]
	AND 	BL,0FH
	CMP 	BL,09H
	JNC 	ERROR
	
	MOV 	SI,OFFSET DATA1
	MOV 	DI,OFFSET RESULT
	MOV 	CX,0005H
A1:	MOV 	AL,[SI+04H]
	AND 	AL,0FH
	CMP 	AL,09H
	JNC 	ERROR
	DEC 	SI
	MUL 	BL
	AAM
	ADD 	AL,[DI+05H]
	AAA
	MOV 	[DI+05H],AL
	DEC 	DI
	MOV 	[DI+05H],AH
	LOOP 	A1

	MOV	DX,OFFSET MES1
	MOV	AH,09H
	INT	21H
	MOV 	CX,06H
	MOV 	SI,OFFSET RESULT
A2:	CALL	SHOW
	MOV	DL,20H
	MOV	AH,02H
	INT	21H
	INC	SI
	LOOP	A2
	MOV	AX,4C00H
	INT	21H

ERROR:	MOV	DX,OFFSET ERRMES
	MOV	AH,09H
	INT	21H
	MOV	AX,4C00H
	INT	21H

SHOW	PROC	NEAR
	MOV	AL,DS:[SI]
	AND	AL,0F0H			;取高4位
	SHR	AL,4
	CMP	AL,0AH			;是否是A以上的数
	JB	C2		
	ADD	AL,07H		
C2:	ADD	AL,30H		
	MOV	DL,AL			;show character 
	MOV	AH,02H
	INT	21H
	MOV	AL,DS:[SI]
	AND	AL,0FH			;取低4位
	CMP	AL,0AH
	JB	C3
	ADD 	AL,07H
C3:	ADD	AL,30H
	MOV	DL,AL			;show character 
	MOV	AH,02H
	INT	21H
	RET
	ENDP	
	
CODE 	ENDS
	END	START		

⌨️ 快捷键说明

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