lmul.s,v

来自「用TCPIP进行网际互联源码」· S,V 代码 · 共 63 行

S,V
63
字号
head	1.1;access;symbols;locks	dls:1.1; strict;comment	@# @;1.1date	97.09.21.19.27.40;	author dls;	state Dist;branches;next	;desc@@1.1log@pre-3e code@text@|J. Test	1/81|signed long multiply: c = a * b	.globl	lmul	.textlmul:	link	a6,#0	moveml	#0x3800,sp@@-	|save d2,d3,d4	movl	#1,d4		|sign of result	movl	a6@@(8),d2	|d2 = a	bge	1$	negl	d2	negl	d41$:	movl	a6@@(12),d3	|d3 = b	bge	2$	negl	d3	negl	d42$:	clrl	d0	movw	d2,d0		|d0 = alo, unsigned	mulu	d3,d0		|d0 = blo*alo, unsigned	movw	d2,d1		|d1 = alo	swap	d2		|swap alo-ahi	mulu	d3,d2		|d2 = blo*ahi, unsigned	swap	d3		|swap blo-bhi	mulu	d3,d1		|d1 = bhi*alo, unsigned	addl	d2,d1		|d1 = (ahi*blo + alo*bhi)	swap	d1		|d1 =	clrw	d1		|   (ahi*blo + alo*bhi)*(2**16)	addl	d1,d0		|d0 = alo*blo + (ahi*blo + alo*bhi)*(2**16)	tstl	d4		|sign of result	bge	3$	negl	d03$:	moveml	sp@@+,#0x1C	|restore d2,d3,d4	unlk	a6	rts@

⌨️ 快捷键说明

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