x86汇编中关于代码编辑、汇编器、调试的点滴
环境:VS2019,WIN7
1.ML汇编器报错的时候,经常把一些毫不相干的语句同时报错。所以在汇编报错时,首要的是确定哪条语句错了!要不然把正确的语句改了,不仅没有改善,反而恶化了程序。编码1小时,调试2小时!
2.在语句中间嵌入注释有时要特别小心,特别是过程的头部声明那里,很危险!刚才遇到一个错误,语句没错,注释夹在过程头部的声明中,导致报错!
3.新建inc头文件,老是报大量错误,暂时先手动声明过程吧。
4.在过程中一定要记得保存寄存器,否则程序运行时会出现不可预知的结果。
5.遇到了loop循环内的指令太多,导致超出正负128字节的问题。测试后发现空格、换行、注释不会增加程序代码区内存地址的长度,只有指令会。
6.extern方式组织的多模块程序,enter创建的局部变量,vs不会把这块内存清零,需要手动初始化。进入过程后,很多寄存器也不会自动清零,每次使用前都要手动初始化。脱离了INVOKE和扩展的PROC会让你接触到更多细节。
7.最近调试的时候发现一个规律,写程序的时候规划得很好,注释也非常到位,等一调试全部都乱套了,陷入失控!这说明写程序之前的规划和伪代码没写好,没有做好充分的准备就仓促的写下去了!
8.在loop循环中,如果循环中包含了某种分支,那么常常会犯一个错误:没有考虑到循环会以两种方式结束,从而导致增加调试时间。
9.每一个过程编写完成,都要测试它对寄存器的保存情况,要求每一个过程都保存好相关寄存器的值。