em_fif8.s

来自「操作系统源代码」· S 代码 · 共 38 行

S
38
字号
.sect .text; .sect .rom; .sect .data; .sect .bss.define .fif8	.sect .text.fif8:	mov	bx,sp	fldd	8(bx)	fmuld	16(bx)		! multiply	fld	st		! and copy result	ftst			! test sign; handle negative separately	fstsw	ax	wait	sahf			! result of test in condition codes	jb	1f	frndint			! this one rounds (?)	fcom	st(1)		! compare with original; if <=, then OK	fstsw	ax	wait	sahf	jbe	2f	fisubs	(one)		! else subtract 1	jmp	2f1:				! here, negative case	frndint			! this one rounds (?)	fcom	st(1)		! compare with original; if >=, then OK	fstsw	ax	wait	sahf	jae	2f	fiadds	(one)		! else add 12:	fsub	st(1),st	! subtract integer part	mov	bx,4(bx)	fstpd	(bx)	fstpd	8(bx)	wait	ret

⌨️ 快捷键说明

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