论文部分内容阅读
汇编语言是一种应用于计算机专业和通信相关专业的可能。其被广泛应用于涉及硬件实现的程序设计中,虽然其不属于高级语言,但是和高级语言一样,都是程序设计所使用的工具,都具有非常鲜明的优点,因此在一些基础语法和基础程序设计思想方面他们都具有相同的内涵和实现机制。当然,我们应该清晰地认识到,汇编语言作为一种底层语言,其与一些高级语言之间仍然存在一定的区别。高级语言的语句功能比汇编语言的指令或伪指令集要强大许多、智能许多;在程序结构、数据处理、实现流程等方面,汇编语言与高级语言之间也存在着不小的差异。
本文就数据的存储与访问、数据的运算以及数据流程三方面对比较教学法进行了讨论。
一、在数据存储与访问中的对比教学
程序设计的主要目的是对数据进行处理,在数据处理前首先需要做的就是如何对数据进行有效存储,并设定合适的访问模式。具体而言,主要包括三个方面的内容:数据所被安排的空间位置;数据的空间长度;数据的存储类型和访问类型。
如果与C语言进行对比,可以发现,高级语言类的数据存储类型基本是直接面向应用的,如整型、浮点型、字符型等,其中不同的存储类型还有细分,如长整型、短整型、单精度浮点数、双精度浮点数、有符号数、无符号数等。利用这种面向应用的存储设置格式,基本实现了对数据空间长度和存储类型特点的确认。在存储空间位置中,C语言提供了四种存储位置,即:auto、static、register、extern,分别表示内存空间、内存空间、寄存器空间等。Extern属于一种全局变量声明,其空间存储类型较为特殊,可以另行讨论。对于访问类型而言,C语言就包含上述全局性的,或者局部周期的,甚至是根据生命周期确定的其他类型。
而汇编语言属于一种机器语言,其基本类型如MASM中的有DB、DD、DW、DT、DQ等,这些定义只具有长度属性,存储空间都在内存中。另一不同的地方在于汇编语言可以非常方便的直接调用寄存器单元,且其寄存器空间大小确定,不如C语言灵活,相当于C语言中的寄存器变量。也就是说,汇编语言的数据更注重空间位置和数据长度,没有更多的数据类型之分。
二、数据运算中的对比教学
本文的数据运算包括输入输出、运算符、堆栈运算三方面内容。
仍旧以学生最为熟悉的C语言为例,高级语言可以直接提供面向对象的相关的输入输出语句、函数和过程,供编程人员根据使用情况调用,这些函数基本涵盖了面向应用所需的各种类型的数据的输入与输出。
但是汇编语言的输入与输出是面向系统的、通过中断调用的方式实现的。如在MASM中的由DOS提供的21H类的中断服务功能等。这是一个不同的教学重点。
在进行逻辑运算时,C语言提供了直接的算数运算符和逻辑运算符等,汇编语言虽然不如C语言强大,但是也能够提供算术运算符,知识其逻辑运算符无法直接用像型运算符表示,且其功能实现上,相对比较繁琐。更为突出的一点是,在高级语言中的运算符可以处理常量和变量等各种数据,但是汇编语言只能进行常量的处理,变量处理仍然需要通过相应的指令来实现。
在堆栈中,高级语言的栈抽象数据类型依赖于后进先出的操作算法,出栈入栈可以不考虑数据类型。但是汇编语言的栈属于运行时栈,由硬件直接支持,在系统层面进行子程序调用实现,编程人员需要考虑数据的类型和栈空指针等问题。
三、数据流程的对比教学
在高级语言中,程序控制基本分为三种结构:顺序结构、条件判断结构和循环结构。
仍旧以C语言为例,其可以提供if、for、switch、while或do-while、case、repeat等控制语句,当然,在高级语言中,循环和分支区分不是非常明显,上述不同语句也可以通过具体语义实现不同的控制。另外,还有特殊的跳转语句如goto等。
但是在汇编语言中,控制流程通过控制类指令具体实现,如在MASM中的无条件转移指令如JMP、条件转移指令如JGE等、循环控制指令如LOOP等。除此之外,汇编语言也具有在子程序或者中断程序中的返回或调用指令,如RET、CALL等。需要注意的是,中断服务程序概念应该是汇编语言所独有的。
上述数据流程中,两者的区别之处在于,高级语言的数据流程控制是通过子程序调用、函数名调用等方式实现的,而汇编语言的实现方式为利用专门的控制指令进行跳转和实现。
四、总结
本文通过几种较为典型的对比分析了如何帮助学生更好的理解两种语言的差异,理清基本学习思路,在实际应用中,还有许多其他的内容也可以通过对比的方式进行实践教学。通过这种教学方式,可以帮助学生领悟不同语言之间的区别和联系,增强学生的应用能力,实现课堂教学的有效性和高效性。
本文就数据的存储与访问、数据的运算以及数据流程三方面对比较教学法进行了讨论。
一、在数据存储与访问中的对比教学
程序设计的主要目的是对数据进行处理,在数据处理前首先需要做的就是如何对数据进行有效存储,并设定合适的访问模式。具体而言,主要包括三个方面的内容:数据所被安排的空间位置;数据的空间长度;数据的存储类型和访问类型。
如果与C语言进行对比,可以发现,高级语言类的数据存储类型基本是直接面向应用的,如整型、浮点型、字符型等,其中不同的存储类型还有细分,如长整型、短整型、单精度浮点数、双精度浮点数、有符号数、无符号数等。利用这种面向应用的存储设置格式,基本实现了对数据空间长度和存储类型特点的确认。在存储空间位置中,C语言提供了四种存储位置,即:auto、static、register、extern,分别表示内存空间、内存空间、寄存器空间等。Extern属于一种全局变量声明,其空间存储类型较为特殊,可以另行讨论。对于访问类型而言,C语言就包含上述全局性的,或者局部周期的,甚至是根据生命周期确定的其他类型。
而汇编语言属于一种机器语言,其基本类型如MASM中的有DB、DD、DW、DT、DQ等,这些定义只具有长度属性,存储空间都在内存中。另一不同的地方在于汇编语言可以非常方便的直接调用寄存器单元,且其寄存器空间大小确定,不如C语言灵活,相当于C语言中的寄存器变量。也就是说,汇编语言的数据更注重空间位置和数据长度,没有更多的数据类型之分。
二、数据运算中的对比教学
本文的数据运算包括输入输出、运算符、堆栈运算三方面内容。
仍旧以学生最为熟悉的C语言为例,高级语言可以直接提供面向对象的相关的输入输出语句、函数和过程,供编程人员根据使用情况调用,这些函数基本涵盖了面向应用所需的各种类型的数据的输入与输出。
但是汇编语言的输入与输出是面向系统的、通过中断调用的方式实现的。如在MASM中的由DOS提供的21H类的中断服务功能等。这是一个不同的教学重点。
在进行逻辑运算时,C语言提供了直接的算数运算符和逻辑运算符等,汇编语言虽然不如C语言强大,但是也能够提供算术运算符,知识其逻辑运算符无法直接用像型运算符表示,且其功能实现上,相对比较繁琐。更为突出的一点是,在高级语言中的运算符可以处理常量和变量等各种数据,但是汇编语言只能进行常量的处理,变量处理仍然需要通过相应的指令来实现。
在堆栈中,高级语言的栈抽象数据类型依赖于后进先出的操作算法,出栈入栈可以不考虑数据类型。但是汇编语言的栈属于运行时栈,由硬件直接支持,在系统层面进行子程序调用实现,编程人员需要考虑数据的类型和栈空指针等问题。
三、数据流程的对比教学
在高级语言中,程序控制基本分为三种结构:顺序结构、条件判断结构和循环结构。
仍旧以C语言为例,其可以提供if、for、switch、while或do-while、case、repeat等控制语句,当然,在高级语言中,循环和分支区分不是非常明显,上述不同语句也可以通过具体语义实现不同的控制。另外,还有特殊的跳转语句如goto等。
但是在汇编语言中,控制流程通过控制类指令具体实现,如在MASM中的无条件转移指令如JMP、条件转移指令如JGE等、循环控制指令如LOOP等。除此之外,汇编语言也具有在子程序或者中断程序中的返回或调用指令,如RET、CALL等。需要注意的是,中断服务程序概念应该是汇编语言所独有的。
上述数据流程中,两者的区别之处在于,高级语言的数据流程控制是通过子程序调用、函数名调用等方式实现的,而汇编语言的实现方式为利用专门的控制指令进行跳转和实现。
四、总结
本文通过几种较为典型的对比分析了如何帮助学生更好的理解两种语言的差异,理清基本学习思路,在实际应用中,还有许多其他的内容也可以通过对比的方式进行实践教学。通过这种教学方式,可以帮助学生领悟不同语言之间的区别和联系,增强学生的应用能力,实现课堂教学的有效性和高效性。