|
原帖由 罗菜鸟 于 2006-12-16 13:36 发表
就是8个通用寄存器,其中只有EAX/RAX可以做算术,ECX/RCX可以做循环记数。指令又长,发热量又大。只适合做“游戏机”,游戏机是什么?玩具!X86就是玩具
谁说只有EAX/RAX可以做算术?
add ebx,ecx
fmul st(1)
paddsw mm1,mm2
mulsd xmm1,xmm2
可以算术的寄存器多着呢。
循环计数,用其他的寄存器也可以
例如
yinshu1,yinshu2是两个double型浮点数组,共2n个浮点数需要处理
ji 是存放积的数组
mov esi, yinshu1
mov edi, yinshu2
mov ebx,j
loopstart:
movpd xmm1,OWORD PTR [esi]
movpd xmm2,OWORD PTR [edi]
mulpd xmm1,xmm2
movpd OWORD PTR [ebx],xmm1
add esi,16
add ebx,16
cmp esi,n*16+yinshu1
je loopstart |
|