阅读186 返回首页    go 阿里云 go 技术社区[云栖]


汇编语言测试:到底是加快还是乘快?

    在windows中测试机器语言中关于加快还是乘快的问题,这里只是用到了低精度的计时器GetTickCount,测试机器为:

内存:512MB

cpu: AMD Sempron 2400+ 单核2GHz

测试代码如下:

buf dword 256 dup(?)
AddWay	proc

TIMES = 10000000h

AddWay	proc
	mov ecx,TIMES
	xor eax,eax
	.while ecx
		.if eax == 256
			xor eax,eax
		.endif

		mov buf[eax],0aabbccddh
		add eax,4
		dec ecx
	.endw
	ret
AddWay endp

MulWay	proc
	mov ecx,TIMES
	xor eax,eax
	.while ecx
		.if eax == 256
			xor eax,eax
		.endif

		mov buf[eax * 4],0aabbccddh
		dec ecx
	.endw
	ret
MulWay	endp


测试结果为(平均):

AddWay 720

MulWay 810


最后更新:2017-04-03 05:38:54

  上一篇:go ruby中顶层定义的方法究竟放在哪里?
  下一篇:go C语言中如何写一个简单可移植而又足够随机的随机数生成器