初学汇编认识到的一些小玩意
- sp尽量64字节对齐,不然一些window api 直接报c05错误
;sp对齐方式 |
在调用WindowsApi时,有时候会用到xmm0,ymm0,zmm0等这些寄存器。其中的一些指令是需要内存对齐的。假如sp没有对齐,就会导致内存访问错误。
- 调试时,假如出现错误但总找不到错误原因时,那可能错误原因在指令上。
有些指令的调用是需要一定条件的
- 64位调用WindowsApi时,需要预留一些栈空间。(32位不清楚)
调试时发现,调用WindowsApi时,会在开辟栈空间前,使用部分原有的栈空间。
也就是说,假如call了WindowsApi,调用完后发现[sp]里面的数据已经变了。