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

📄 49_dwordmul_2.asm

📁 汇编语言 参考书 包含作业与答案 从入门到精通 通俗易懂
💻 ASM
字号:
.model small

stack	segment	para	stack
	DW	100 DUP(?)
stack	ends

data	segment	para
	x1	WORD	0Ffffh
		WORD	0Ffffh
	x2	WORD	0Ffffh
		WORD	0Ffffh
	x3	WORD	4 DUP(0)
	result	BYTE	5 dup(?),'$'
data 	ends

code	segment	para
	assume CS:code,DS:data,SS:stack
;----------------------------------------------------
main	PROC	FAR
	mov	ax,data
	mov	ds,ax

	mov	ax,x1		;低字乘*低字
	mul	x2
	mov	x3,ax
	mov	x3+2,dx

	mov	ax,x1		;低字乘*高字
	mul	x2+2
	add	x3+2,ax
	adc	x3+4,dx
	adc	x3+6,0		;加进位

	mov	ax,x1+2		;高字乘*低字
	mul	x2
	add	x3+2,ax
	adc	x3+4,dx
	adc	x3+6,0		;加进位

	mov	ax,x1+2		;高字乘*高字
	mul	x2+2
	add	x3+4,ax
	adc	x3+6,dx

	call	display16
	
	mov	DL,0AH
	MOV	AH,2
	INT	21H

	CALL	DISPLAY10
	
	mov	ax,4c00h
	INT 21H
main	ENDP
;----------------------------------------------------
display16	PROC	NEAR
	mov	CX,4
	LEA	SI,X3+6
LP:
	PUSH	CX
	MOV     BX,[SI]
        MOV     CX,4
LP1:
	PUSH    CX
        MOV     CL,4
        ROL     BX,CL
        MOV     AL,BL
        AND     AL,0FH
        or      AL,30H
        CMP     AL,39H
        JBE     DISP
        ADD     AL,'A'-'9'-1
DISP:
	MOV     DL,AL
        MOV     AH,2
        INT     21H
        
        POP     CX
        LOOP    LP1

	DEC	SI
	DEC	SI
	POP	CX
	LOOP	LP
	
        RET        
display16 ENDP
;----------------------------------------------------
display10	PROC	NEAR
	mov	CX,4
	LEA	SI,X3+6
LP:	
	PUSH	CX
        
        MOV     CX,5
        MOV     AX,[SI]
        MOV     BX,10
        MOV     DI,OFFSET RESULT+4

LP1:    XOR     DX,DX
        DIV     BX
        OR      DL,30H
        MOV     BYTE PTR [DI],DL
        DEC     DI
        LOOP    LP1

        MOV     DX,OFFSET RESULT
        MOV     AH,9
        INT     21H

	DEC	SI
	DEC	SI
	POP	CX
	LOOP	LP

        RET        
display10 ENDP
;------------------------------------------------------
code	ENDS
	END	main

⌨️ 快捷键说明

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