语言课程论文简析.doc

汇编语言程序设计 摘要 汇编语言是面向机器的程序设计语言。在汇编语合中,用助记符代替操作码,用地址符号或标号代替地址码。这样用指令的助记符、符号地址、标号、伪指令等符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器上能执行的机器语言的过程称为汇编。 [关键词]:汇编语言、程序设计、指令系统 目录 第1章 汇编语言概况 1 第2章 汇编语言的基本元素 1 2.1 汇编语言的语句格式 1 2.2 汇编语言的运算符 1 2.3表达式 2 2.4 汇编语言程序汇编步骤 4 第3章 伪指令 5 3.1 定义数据伪指令 5 3.2 符号定义伪指令EQU、=、及PURGE 5 3.3段定义伪指令SEGMENT和ENDS 5 3.4 设定段寄存器伪指令ASSUME 6 3.5定义过程的伪指令PROC和ENDP 6 3.6 宏指令 6 3.7 ORG 伪指令 6 3.8 汇编结束伪指令END 6 第4章 汇编程序设计 7 4.1 简单程序设计 7 4.2分支程序设计 7 4.3循环程序设计 7 4.4 子程序设计 7 第5章 汇编语言的优点与缺点 8 第6章 汇编语言的特点 8 第7章 汇编语言的应用 9 总结 10 参考文献 11 致谢词 11 第1章 汇编语言概况 汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。 大多数情况下Linux程序员不需要使用汇编语言,因为即便是硬件驱动这样的底层程序在Linux操作系统中也可以用完全用C语言来实现,再加上GCC这一优秀的编译器目前已经能够对最终生成的代码进行很好的优化,的确有足够的理由让我们可以暂时将汇编语言抛在一边了。但实际情况是Linux程序员有时还是需要使用汇编,或者不得不使用汇编,理由很简单:精简、高效和libc无关性。假设要移植Linux到某一特定的嵌入式硬件环境下,首先必然面临如何减少系统大小、提高执行效率等问题,此时或许只有汇编语言能帮上忙了。 第2章 汇编语言的基本元素 2.1 汇编语言的语句格式 由汇编语言编写的源程序是由许多语句(也可称为汇编指令)组成的。每个语句由1~4个部分组成,其格式是: [标识符] 指令助记符 [操作数][;注解] 其中用方括号括起来的部分可有可无。每部分之间用空格(至少一个)分开,一行最多可有132个字符。 2.2 汇编语言的运算符 1.算术运算符、逻辑运算符和关系运算符 算术运算符可以应用于数字操作数,结果也是数字。而应用于存储器操作数时,只有+、- 运算符有意义。 2.取值运算符SEG、OFFSET、TYPE、SIZE和LENGTH · SEG和OFFSET分别给出一个变量或标号的段地址和偏移量。 · TYPE操作符返回一个表示存储器操作数类型的数值。各种存储器地址操作数类型部分的值如表3-1所示。 表3-1 存储器操作数的类型属性及返回值 字节 1 字 2 双字 4 NEAR -1 FAR -2 · LENGTH和SIZE操作符只应用于数据存储器操作数。(用DB/DW/DD且用DUP等定义的操作数) LENGTH返回一个与存储器地址操作数相联系的基本数据个数, SIZE操作数返回一个为存储器操作数分配的字节数(即单元数)。 3.属性运算符 属性运算符用来给指令中的操作数指定一个临时属性,而暂时忽略当前的属性。常用的有: (1) 合成运算符PTR 它作用于操作数时,则忽略了操作数当前的类型(字节或字)及属性(NEAR或FAR),而给出一个临时的类型或属性, 一般格式:类型 PTR 表达式 功能:建立一个存储器地址操作数,它与其后的存储器地址操作数有相同的段地址偏移量,但有不同的类型。 例如:

文档评论(0)

1亿VIP精品文档

相关文档