前面十章的学习过程中,犯了不少错误,有的错误还不止犯了一次,有必要总结一下。
一、语法错误
直接用立即数给段寄存器赋值
两个操作数之间漏写逗号
十六进制数没有加H
首位是字母的十六进制数没有加0
没有添加段结束和程序结束指令
将寄存器di误写为bi
忘记加标号
二、逻辑错误
在call和ret之间入栈的数没有完全出栈,导致ret返回错误
在子程序中用到的寄存器没有保存,导致返回后改变原寄存器的值
在反复使用一个寄存器时,没有用栈或其他寄存器保存该寄存器的值,导致原来的值丢失
使用pop取值时命令时,没有注意到栈顶数据的变化,导致取到错误的值
在复杂和循环和跳转中,没有细致分析,导致指令执行顺序或执行次数错误,导致必须用debug来单步检查,严重浪费时间。
- [younggay] 20? 那个20? 01/21 15:05
- [martian] 博主辛苦了! 11/24 13:43
- [acool] 先存下 看看O(∩_∩)O哈哈~ 11/22 12:30
- [acool] 不错,踩踩;) 11/22 12:27
- [tomato] 收藏一下,好好看看,扫扫盲。 11/21 20:01
- [younggay] 程序正确固然重要,必要的地方写注释也是很必要的。要不看的人脑袋可就大了。呵呵 fighting ! 11/21 14:47
- [younggay] 就提一点要求: 哥儿们,加点注释把,(*^__^*)...嘻嘻 11/21 14:37
- [lwbfq] 有点糊涂。 11/21 14:26
- [lwbfq] 有点糊涂。 11/21 14:26
- [younggay] 嗯。不错,不过要是关键代码部分加上注释就更好了。而且加注释也是一个成熟的编程人员的良好习惯。 11/21 14:23
- [h.goood] 汇编作业在哪里做?我怎么没找到? 11/24 12:32
[ 游客 发表于 2008-11-14 15:02 ]
顶!