- 论坛徽章:
- 0
|
生成的伪汇编大致这样- for (i=0;i<4000;i+=1)
- z[i]+=456;
复制代码- section .code align=4
- bits 32
- global _main
- _main:
- push ebp
- mov ebp, esp
- and esp, 0xFFFFFFF0
- jmp .L0:
- thread_1:
- push ebp
- mov ebp, esp
- mov esi, 0
- jmp .L7
- .L5:
- add [ _z + esi * 4 ], dword 456
- .L6:
- add esi, 1
- .L7:
- cmp esi, 1000
- jb .L5
- .L8:
- mov esp, ebp
- pop ebp
- thread_2:
- push ebp
- mov ebp, esp
- mov esi, 1000
- jmp .L11
- .L9:
- add [ _z + esi * 4 ], dword 456
- .L10:
- add esi, 1
- .L11:
- cmp esi, 2000
- jb .L9
- .L12:
- mov esp, ebp
- pop ebp
- thread_3:
- push ebp
- mov ebp, esp
- mov esi, 2000
- jmp .L15
- .L13:
- add [ _z + esi * 4 ], dword 456
- .L14:
- add esi, 1
- .L15:
- cmp esi, 3000
- jb .L13
- .L16:
- mov esp, ebp
- pop ebp
- thread_4:
- push ebp
- mov ebp, esp
- mov esi, 3000
- jmp .L19
- .L17:
- add [ _z + esi * 4 ], dword 456
- .L18:
- add esi, 1
- .L19:
- cmp esi, 4000
- jb .L17
- .L20:
- mov esp, ebp
- pop ebp
- .L0:
- call __beginthreadex(thread_1)
- call __beginthreadex(thread_2)
- call __beginthreadex(thread_3)
- call __beginthreadex(thread_4)
- call _WaitForMultipleObjects(thread_1,thread_2,thread_3,thread_4)
- mov esp, ebp
- pop ebp
- ret
复制代码 |
|