|
发表于 2022-12-20 20:32:56
|
显示全部楼层
本帖最后由 jhq999 于 2022-12-20 21:00 编辑
除非考试不建议死扣这玩意儿,可能不同编译器结果不一样,建议编程时尽量分解
例如这个可以分解成
(*q)++;
q++;
- 00E31428 mov eax,dword ptr [q] ;先解引用把指针q赋给eax
- 00E3142B mov ecx,dword ptr [eax] //把指针q所指向的内存里的值赋给ecx
- 00E3142D add ecx,1 ;ecx加一
- 00E31430 mov edx,dword ptr [q] ;指针p赋给edx
- 00E31433 mov dword ptr [edx],ecx ;把加一后的值赋给指针q所指向的内存
- 00E31435 mov eax,dword ptr [q] ;把指针q赋给eax
- 00E31438 add eax,4 ;eax加一,因为int是4个字节,所以汇编加4
- 00E3143B mov dword ptr [q],eax ;把加一后的eax赋给q
- 00E3143E jmp f+27h (0E31417h)
复制代码 |
|