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

📄 testfp.asm

📁 汇编编程艺术
💻 ASM
📖 第 1 页 / 共 4 页
字号:
		puts
		putcr
		putcr
		free
;
;
;-----
;
		print
		db	"Testing LEFPOL:",cr,lf,0
;
		lefpol
		dt	1.0
		XAccOp
		print
		db	"       1.0 =",0
		mov	ax, 20bh
		ftoam
		puts
		putcr
		free
;
		lefpol
		dt	-10.25
		XAccOp
		print
		db	"    -10.25 =",0
		mov	ax, 20bh
		ftoam
		puts
		putcr
		free
;
		lefpol
		dt	100.50
		XAccOp
		print
		db	"    100.50 =",0
		mov	ax, 20bh
		ftoam
		puts
		putcr
		free
;
		lefpol
		dt	-1000.75
		XAccOp
		print
		db	"  -1000.75 =",0
		mov	ax, 20bh
		ftoam
		puts
		putcr
		free
;
		lefpol
		dt	10000.22
		XAccOp
		print
		db	"  10000.22 =",0
		mov	ax, 20bh
		ftoam
		puts
		putcr
		free
;
		lefpol
		dt	-100000.44
		XAccOp
		print
		db	" -100000.44 =",0
		mov	ax, 20bh
		ftoam
		puts
		putcr
		free
;
		lefpol
		dt	123456789012345678901.66
		XAccOp
		print
		db	"123456789012345678901.66 =",0
		mov	ax, 219h
		ftoam
		puts
		print
		db	"  Note: only 17 sig. digits.",cr,lf,0
		free
;
		lefpol
		dt	-123456.88
		XAccOp
		print
		db	"-123456.88 =",0
		mov	ax, 20bh
		ftoam
		puts
		putcr
		free
;
		lefpol
		dt	65432.11
		XAccOp
		print
		db	"  65432.11 =",0
		mov	ax, 20bh
		ftoam
		puts
		putcr
		free
;
		lefpol
		dt	-9876.33
		XAccOp
		print
		db	"  -9876.33 =",0
		mov	ax, 20bh
		ftoam
		puts
		putcr
		free
;
		lefpol
		dt	192.55
		XAccOp
		print
		db	"    192.55 =",0
		mov	ax, 20bh
		ftoam
		puts
		putcr
		free
;
		lefpol
		dt	-38.77
		XAccOp
		print
		db	"    -38.77 =",0
		mov	ax, 20bh
		ftoam
		puts
		putcr
		free
;
		lefpol
		dt	9.99
		XAccOp
		print
		db	"      9.99 =",0
		mov	ax, 20bh
		ftoam
		puts
		putcr
		putcr
		free
;
;
;-----
;
;
;
;
;
; Test the arithmetic operations:
;
		print
		db	"Testing addition",cr,lf,0
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.9999999999999999999
		lefpol
		dt	0.0000000000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.999999999999999999
		lefpol
		dt	0.000000000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.99999999999999999
		lefpol
		dt	0.00000000000000001
		fpadd
		mov	ax, 20bh
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.9999999999999999
		lefpol
		dt	0.0000000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.999999999999999
		lefpol
		dt	0.000000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.99999999999999
		lefpol
		dt	0.00000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.9999999999999
		lefpol
		dt	0.0000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.999999999999
		lefpol
		dt	0.000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.99999999999
		lefpol
		dt	0.00000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.9999999999
		lefpol
		dt	0.0000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.999999999
		lefpol
		dt	0.000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.99999999
		lefpol
		dt	0.00000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.9999999
		lefpol
		dt	0.0000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.999999
		lefpol
		dt	0.000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.99999
		lefpol
		dt	0.00001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.9999
		lefpol
		dt	0.0001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.999
		lefpol
		dt	0.001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.99
		lefpol
		dt	0.01
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	1.9
		lefpol
		dt	0.1
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
		putcr
;
;---------
;
		print
		db	"More addition:",cr,lf,lf,0
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.9999999999999999999
		lefpol
		dt	-0.0000000000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.999999999999999999
		lefpol
		dt	-0.000000000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.99999999999999999
		lefpol
		dt	-0.00000000000000001
		fpadd
		mov	ax, 20bh
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.9999999999999999
		lefpol
		dt	-0.0000000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.999999999999999
		lefpol
		dt	-0.000000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.99999999999999
		lefpol
		dt	-0.00000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.9999999999999
		lefpol
		dt	-0.0000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.999999999999
		lefpol
		dt	-0.000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.99999999999
		lefpol
		dt	-0.00000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.9999999999
		lefpol
		dt	-0.0000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.999999999
		lefpol
		dt	-0.000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.99999999
		lefpol
		dt	-0.00000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.9999999
		lefpol
		dt	-0.0000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.999999
		lefpol
		dt	-0.000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.99999
		lefpol
		dt	-0.00001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.9999
		lefpol
		dt	-0.0001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.999
		lefpol
		dt	-0.001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.99
		lefpol
		dt	-0.01
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"-2.0 = ",0
		lefpal
		dt	-1.9
		lefpol
		dt	-0.1
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
		putcr
;
;----
;
		print
		db	"Yet more addition:",cr,lf,lf,0
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.0000000000000000001
		lefpol
		dt	-0.0000000000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.000000000000000001
		lefpol
		dt	-0.000000000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.00000000000000001
		lefpol
		dt	-0.00000000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.0000000000000001
		lefpol
		dt	-0.0000000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.000000000000001
		lefpol
		dt	-0.000000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.00000000000001
		lefpol
		dt	-0.00000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.0000000000001
		lefpol
		dt	-0.0000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.000000000001
		lefpol
		dt	-0.000000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.00000000001
		lefpol
		dt	-0.00000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt       2.0000000001
		lefpol
		dt	-0.0000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.000000001
		lefpol
		dt	-0.000000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.00000001
		lefpol
		dt	-0.00000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.0000001
		lefpol
		dt	-0.0000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.000001
		lefpol
		dt	-0.000001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.00001
		lefpol
		dt	-0.00001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.0001
		lefpol
		dt	-0.0001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.001
		lefpol
		dt	-0.001
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.01
		lefpol
		dt	-0.01
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
;
		print
		db	"2.0 = ",0
		lefpal
		dt	 2.1
		lefpol
		dt	-0.1
		fpadd
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
		putcr
;
;-----
;
		print
		db	"Simple subtraction test (sub is same as add)"
		db	cr,lf,lf,0
;
		print
		db	"2.9.. - 1.9.. = ",0
		lefpal
		dt	2.99999999999999999
		lefpol
		dt	1.99999999999999999
		fpsub
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
		print
		db	"1.9.. - 2.9.. = ",0
		lefpal
		dt	1.99999999999999999
		lefpol
		dt	2.99999999999999999
		fpsub
		mov	ax, 1418h
		ftoam
		puts
		free
		call	PutFPAcc
		putcr
		putcr
;
;----
;
		print
		db	"Testing Multiply...",cr,lf,lf,0
;
		mov	cx, 20
		lefpal
		dt	1.0
MultLoop:	lefpol
		dt	-10.0
		fpmul
		mov	ax, 24h
		etoam
		puts
		free
		call	PutFPAcc
		putcr
		loop	MultLoop
		putcr
;
;---
;
		print
		db	"More multiply tests...",cr,lf,lf,0
;
		lefpal
		dt	0.0000000000000000001
		mov	cx, 20
MultLoop2:	lefpol
		dt	-10.0
		fpmul
		mov	ax, 24h
		etoam
		puts
		free
		call	PutFPAcc
		putcr
		loop	MultLoop2
		putcr
;
;
;-----
;
		print
		db	"Some Division Tests:",cr,lf,lf,0
;
		mov	cx, 20
		lefpal
		dt	1.0e+15
DivLoop:	lefpol
		dt	-10.0
		fpdiv
		mov	ax, 24
		etoam
		puts
		free
		call	PutFPAcc
		putcr
		loop	DivLoop
		putcr
;
;
;---
;
		print
		db	"More Division Tests...",cr,lf,lf,0
;
		lefpal
		dt	1.0e-15
		mov	cx, 20
DivLoop2:	lefpol
		dt	-1.0e-1
		fpdiv
		mov	ax, 24
		etoam
		puts
		free
		call	PutFPAcc
		putcr
		loop	DivLoop2
		putcr
;
;
;------
;
		print
		db	"Testing FPCMP...",cr,lf,0
;
		lefpal
		dt	0.0
		lefpol
		dt	0.0
		fpcmp
		pushf
		print
		db	"AX = ",0
		puti
		popf
		je	TheyreEql0
		print
		db	" 0.0 <> 0.0",cr,lf,0
		jmp	EndTest0
;
TheyreEql0:	print
		db	" 0.0 = 0.0",cr,lf,0
EndTest0:
;
		lefpal
		dt	1.0
		lefpol
		dt	0.0
		fpcmp
		pushf
		print
		db	"AX = ",0
		puti
		popf
		je	TheyreEql1
		print
		db	" 1.0 <> 0.0",cr,lf,0
		jmp	EndTest1
;
TheyreEql1:	print
		db	" 1.0 = 0.0",cr,lf,0
EndTest1:
;
		lefpal
		dt	0.0
		lefpol
		dt	1.0
		fpcmp
		pushf
		print
		db	"AX = ",0
		puti
		popf
		je	TheyreEql2
		print
		db	" 0.0 <> 1.0",cr,lf,0
		jmp	EndTest2
;
TheyreEql2:	print
		db	" 0.0 = 1.0",cr,lf,0
EndTest2:
;
		lefpal
		dt	-1.0
		lefpol
		dt	0.0

⌨️ 快捷键说明

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