與程式效能有關的一些東西
前面的code比較慢
後面的code比較快
做optimizing就會碰到裡面的東西
這篇講的算是比較粗淺的部份
--------------------
1.避免AGI延遲
mov ebx,1
mov edi,10000h
mov [edi],eax
mov edi,10000h
mov ebx,1
mov [edi],eax
2.避免先寫後讀(8-bit和16-bit視作同一個)
mov eax,dword ptr [ebp-4]
mov dword ptr [ebp-8],eax
mov ebx,dword ptr [ebp-8]
mov dword ptr [ebp-0ch],ebx
mov edx,dword ptr [ebp-0ch]
mov dword ptr [ebp-4],edx
mov eax,dword ptr [ebp-4]
mov ebx,dword ptr [ebp-8]
mov edx,dword ptr [ebp-0ch]
mov dword ptr [ebp-8],eax
mov dword ptr [ebp-0ch],ebx
mov dword ptr [ebp-4],edx
3.利用cache
mov eax,dword ptr [ebp-14h]
mov eax,dword ptr [ebp-18h]
mov eax,dword ptr [ebp-1ch]
mov eax,dword ptr [ebp-4]
mov dword ptr [ebp-8],eax
mov eax,dword ptr [ebp-8]
mov dword ptr [ebp-0ch],eax
mov eax,dword ptr [ebp-0ch]
mov dword ptr [ebp-4],eax
mov eax,dword ptr [ebp-4]
mov eax,dword ptr [ebp-8]
mov eax,dword ptr [ebp-0ch]
mov eax,dword ptr [ebp-4]
mov dword ptr [ebp-8],eax
mov eax,dword ptr [ebp-8]
mov dword ptr [ebp-0ch],eax
mov eax,dword ptr [ebp-0ch]
mov dword ptr [ebp-4],eax
4.固定週期的multicycle opcode,後面如果是不固定週期的multicycle opcode可加快
CMC
CMC
CMC
XCHG
5.少用帶有prefix的指令
MOV AX,[ebp-4]
MOV BX,[ebp-4]
MOV DX,[ebp-4]
MOV EAX,[ebp-4]
MOV EBX,[ebp-4]
MOV EDX,[ebp-4]
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.134.226.149
※ 編輯: loveflames 來自: 140.134.226.149 (11/30 01:26)
※ 編輯: loveflames 來自: 140.134.226.149 (11/30 01:26)
討論串 (同標題文章)
ASM 近期熱門文章
PTT數位生活區 即時熱門文章