当前位置:课程学习>>第三章  8086汇编语言程序设计>>知识讲解>>你问我答



同学们,本栏目是对你们学过的知识和生活中常见问题的归纳。其中,有一些共性问题,也许你会需要哦!

让我来帮你解决常见问题!

1.现在已经有了C/C++语言、Java这样的高级语言为什么还要学习汇编语言?

回答:

首先,从学习的角度,C语言以下更底层的知识,需要通过汇编语言和机器码等才能理解。由于在技术的实施过程中“抽象泄漏”现象不可避免,高一级语言和工具的现象有时与这一级别抽象的预期不符合,只能通过低一级语言解释。这些有时出现的现象,正是区分工程师能力水平的时机。低级语言的学习有利于理解高级语言中的现象。

其次,从工作的角度,有的平台/系统中没有C语言或者Java/.Net这样的高级工具,只有汇编语言,可能可用的系统调用也相当低级,连DOS功能调用或者BIOS调用也没有。此时,作为工程师,你的期待是换个平台。但是出于成本的考虑,特别是在批量的产品中,你的上级可能考虑换个工程师,如果只有你不会在底级环境下工作的话。没有足够的工具支撑,正是你脱颖而出的机会。

再次,特化的需求。有时在特殊的问题中,使用汇编语言优化,直接触及和使用更底层的功能,能得到更优秀的性能和效果。请

2.有这么多汇编指令,怎么记得住啊?

回答:

事实上,无论是机器码、伪指令,还是DOS功能调用和BIOS功能调用,在教材和课程中,只提及了一小部分。更多的内容,还需要同学们在学习的过程中,在阅读他人代码和在实践项目中自行查阅手册。查阅手册(manual)、规范(specification)、文档(docs)、芯片的datasheet,是工程技术人员需要尽早训练的基本技能。

3.为什么示例代码在我的机器上编译会有错误呢?

回答:

请注意示例代码要求的编译和运行环境。

Emu8086、MASM、MASM32、DEBUG、ISIS Proteus这些编译和仿真环境对汇编代码的语法要求略有不同,细节很多,教材和课程未详细给出。不过,示例代码在指定的环境中都通过了编译和运行测试。

进入实践活动