汇编语言的源程序可以直接执行吗
汇编语言三种基本语句?
汇编语言三种基本语句?
一个汇编语言源程序中可以有 3 种语句。
(1)指令语句:汇编时产生一个可供机器执行的目标代码,因此又叫可执行语句。
(2)伪指令语句:汇编时不产生目标代码。这种语句是说明如何对源程序进行汇编的命令语句,也叫非执行语句,上面程序例子中用黑体表示的语句是伪指令语句。
(3)宏指令语句:是通过宏定义,用一个名字代表一段程序,这个名字就是宏指令。
高级语言程序的两种执行方式是什么?
编译执行:把源程序翻译成机器语言(生成可执行文件,比如com或exe文件),然后 执行。(包含汇编和链接两个过程)
解释执行:把一行源程序翻译成机器语言,然后执行;再翻译下一行源程序成机 器语言,然后执行。(翻译一句,执行一次。不生成可执行文件)
什么是debug?
是一个dos实用程序,主要是供程序员来进行调试程序的工具,它可以检查程序中存在的问题,可以精确到每一行代码的正确性,在程序开发中有很大的作用。
debug最主要的功能就是,直接输入,更改,跟踪,运行汇编语言源程序,同时还能够观察操作系统的内容,必要时还可以查看ROM BIOS中的内容。
简单来说,debug就是检查程序错误,并且能够除错的一种工具,能够大大节约程序员的工作时间,提高工作效率,让程序员敲出的代码尽量不会出现bug
为什么高级语言要先编译成汇编再转换成机器语言?
1)其中有一个好处是方便优化和调试,因为编译器也是工具,也是机器,毕竟是机器生成的程序,不可以非常完美的,而汇编是机器指令的助记 符,一个汇编指令就对应一条机器指令(特殊指令除外),调试起来肯定会比机器指令方便的方便,这样优化起来也方便。
2)高级语言只需要编译成汇编代码就可以了,汇编代码到机器码的转换是由硬件实现即可,有必要用软件实现这样分层可以有效地减弱编译器编写的复杂性,提高了效率.就像网络通 讯的实现需要分成很多层一样,主要目的就是为了从人脑可分析的粒度来减弱复杂性。
3)如果把高级语言的源代码直接编译成机器码的话,那要做高级语言到机器码之间的映射,如果这样做的话,每个写编译器的都必须熟练机器码。