Technologia MMX
Dariusz Chaberski
§ MMX Technology Execution Environment
2
§ MMX Register Set
3
§ Mapping of MMX Registers to Floating-Point Registers
4
§ Data Types Introduced with the MMX Technology
5
§ SIMD Execution Model
6
§ Data Range Limits for Saturation
7
§ MMX Instruction Set Summary
8
9
§ narzędzia
+ fasm - flat assembler
3 asemblacja, plik obiektowy
· fasm mmx01.asm
+ gnu gcc
3 linkowanie, plik wykonywalny
· gcc mmx01.o -o mmx01
10
§ program źródłowy (eksport oraz import funkcji)
public main
extrn printf
extrn scanf
main:
...
ret
scanf:
ccall scanf, sft, sf
sft db "%x",0
sf dd 0
printf:
mov edi, sf
mov eax, [edi]
...
ccall printf, pft, eax,
paddb, ebx, ecx
pft db "%08x %s %08x = %08x",0xA,0
paddb db "PADDB", 0
11
§ program źródłowy (instrukcje MMX)
movd mm1,eax
movd mm2, ebx
paddb mm1,mm2
movd ecx, mm1
movd mm1,eax
movd mm2,ebx
pmullw mm1, mm2
movd ecx, mm1
mov edi, sfa
movq mm1, [edi]
mov edi, sfb
movq mm2, [edi]
sfa dd 0, 0
12
§ program źródłowy (printf 64 bity - long long int)
ccall printf, pft, [sfa], [sfa+4],
paddd, [sfb], [sfb+4], [sfc], [sfc+4]
pft db "%016llx %s %016llx = %016llx", 0xA, 0
sfa dd 0, 0
sfb dd 0, 0
sfc dd 0, 0
paddd db "PADDD ", 0
§ program źródłowy (scanf 64 bity - long long int)
ccall scanf, sft, sfa
sft db "%llx", 0
sfa dd 0, 0
więcej przykładów w archiwum 24 technologia MMX.zip
13