
清华大学出版社TSINGHUAUNIVERSITYPRESS第5章汇编语言程序设计上一页
第5章 汇编语言程序设计 上一页

清华大学出版社TSINGHUAUNIVERSITYPRESS目录5.1汇编语言的基础知识5.2汇编语言程序设计本章小结上一页
目 录 5.1 汇编语言的基础知识 5.2 汇编语言程序设计 本章小结 上一页

清华大学出版社TSINGHUA UNIVERSITYPRESS5.1汇编语言的基础知识5.1.1汇编语言的基本概念5.1.2汇编语言程序的格式5.1.3伪指令上一页
5.1.1 汇编语言的基本概念 5.1.2 汇编语言程序的格式 5.1.3 伪指令 5.1 汇编语言的基础知识 上一页

清华大学出版社TSINGHUAUNIVERSITYPRESS5.1.1汇编语言的基本概念计算机能直接识别和执行的语言是机器语言,机器语言以二进制数表示,即以“0”和“1”的不同编码组合来表示不同指令的操作码和地址码。汇编语言是一种用助记符表示的程序设计语言,它与机器语言指令有一一对应关系,即汇编语言的一条执行语句,对应一条机器语言指令。用汇编语言编写的程序,称为汇编语言源程序。用汇编语言编写的程序能直接利用计算机的硬件资源的特性,它可以直接访问CPU内的各类寄存器、主存单元和输入输出端口,能直接控制中断系统,能直接使用指令系统中的各种寻址方式。因此,与以高级语言程序相比,汇编语言程序具有占用内存空间少,执行速度快等特点。当然,对于算法的描述,汇编语言程序不如高级语言直观。上一页
• 计算机能直接识别和执行的语言是机器语言,机器语言以 二进制数表示,即以“0”和“1”的不同编码组合来表示不 同指令的操作码和地址码。汇编语言是一种用助记符表示 的程序设计语言,它与机器语言指令有一一对应关系,即 汇编语言的一条执行语句,对应一条机器语言指令。用汇 编语言编写的程序,称为汇编语言源程序。 • 用汇编语言编写的程序能直接利用计算机的硬件资源的特 性,它可以直接访问CPU内的各类寄存器、主存单元和输 入输出端口,能直接控制中断系统,能直接使用指令系统 中的各种寻址方式。因此,与以高级语言程序相比,汇编 语言程序具有占用内存空间少,执行速度快等特点。当然, 对于算法的描述,汇编语言程序不如高级语言直观。 5.1.1 汇编语言的基本概念 上一页

清华大学出版社TSINGHUAUNIVERSITYPRESS汇编语言程序的格式5.1.2 1.语句格式汇编语言程序中的语句分为三种类型:指令语句、伪指令语句和宏指令语句。指令语句经汇编后产生目标代码,它隶属于CPU指令集,可以被CPU执行。伪指令语句不产生目标代码,它主要用于定义段、子程序、常量、变量及给变量分配存储单元。宏指令是用户定义的一个指令集合,宏指令经汇编后在引用的地方展开为相应的指令序列。汇编语言程序中的每个语句可以由四项组成,格式如下:[名字]→助记符→[操作数]→[;注释]上一页
⒈语句格式 汇编语言程序中的语句分为三种类型:指令语句、伪指令语 句和宏指令语句。指令语句经汇编后产生目标代码,它隶 属于CPU指令集,可以被CPU执行。伪指令语句不产生目 标代码,它主要用于定义段、子程序、常量、变量及给变 量分配存储单元。宏指令是用户定义的一个指令集合,宏 指令经汇编后在引用的地方展开为相应的指令序列。 汇编语言程序中的每个语句可以由四项组成,格式如下: [名字]→助记符→[操作数]→[;注释] 5.1.2 汇编语言程序的格式 上一页

清华大学出版社TSINGHUA UNIVERSITYPRESS(续1)5.1.2 汇编语言程序的格式汇编语言语句格式[名字]→助记符→[操作数]→[;注释](1)名字项:用户定义的名字项必须以字母带头的字符集中的字符序列。字符集是汇编语言允许的字母、数字和其他符号的集合。名学项用来标识段名、子程序名、宏指令名、标号、变量名和常量名等。(2)段名:段名代表相应段的段地址(3)子程序名:根据调用指令和被调用子程序所处的代码段的位置,子程序分为近调用子程序和远调用子程序。若调用指令和被调用子程序处于同一代码段,则该子程序为近调用子程序,近调用子程序指示子程序代码并始所处的偏移地址;若调用指令和被调用子程序处于不同的代码段,则该子程序为远调用子程序,远调用子程序指示子程序代码开始所处的段地址和偏移地址。上一页
[名字]→助记符→[操作数]→[;注释] ⑴名字项:用户定义的名字项必须以字母带头的字符集中 的字符序列。字符集是汇编语言允许的字母、数字和其 他符号的集合 。名字项用来标识段名、子程序名、宏指 令名、标号、变量名和常量名等。 ⑵段名:段名代表相应段的段地址, ⑶子程序名:根据调用指令和被调用子程序所处的代码段 的位置,子程序分为近调用子程序和远调用子程序。若 调用指令和被调用子程序处于同一代码段,则该子程序 为近调用子程序,近调用子程序指示子程序代码开始所 处的偏移地址;若调用指令和被调用子程序处于不同的 代码段,则该子程序为远调用子程序,远调用子程序指 示子程序代码开始所处的段地址和偏移地址。 汇编语言语句格式 上一页 5.1.2 汇编语言程序的格式(续1)

清华大学出版社TSINGHUA UNIVERSITYPRESS(续2)汇编语言程序的格式5.1.2汇编语言语句格式(4)标号:标号是一个用“:”引入的名字,代表所标识语句对应指令的开始地址,用来标识程序的转移目标。(5)常量名:常量名是用符号标识的常量,它用作指令中立即数、存储器操作数的部分偏移地址及初值。常量名通过伪指令定义。(6)变量名:变量名是存储器中一个数据或数据区的符号表示,代表数据或数据区的起始地址。变量名通过伪指令定义,它具有段、偏移地址和类型三个基本属性,上一页
⑷标号:标号是一个用“ : ”引入的名字,代表所标识语 句对应指令的开始地址,用来标识程序的转移目标。 ⑸常量名:常量名是用符号标识的常量,它用作指令中立 即数、存储器操作数的部分偏移地址及初值。常量名通 过伪指令定义。 ⑹变量名:变量名是存储器中一个数据或数据区的符号表 示,代表数据或数据区的起始地址。变量名通过伪指令 定义,它具有段、偏移地址和类型三个基本属性。 上一页 5.1.2 汇编语言程序的格式(续2) 汇编语言语句格式

清华大学出版社TSINGHUA UNIVERSITYPRESS(续3)汇编语言程序的格式5.1.2等值定义语句区2.程序格式:汇外部说明语句区编语言程序的堆栈段名SEGMENT逻辑堆機段用变量定义预置的堆栈空间基本格式如右ENDS堆栈段名图:逻辐数据段数据段名SEGVENT用变量定义和预置的数据空间一个汇编语言程序至数据段名ENDS少有一个代码段,整个程序必须以一--条END伪指令结束其他定义区域根据代码段名 SEGMENT需要设置,可有可逻辑代码段ASSUIVE定义的寻址关系无。程序体上一页代码段名ENDSEND程序体起始标号
⒉程序格式 :汇 编语言程序的 基本格式如右 图: 5.1.2 汇编语言程序的格式 (续3) 上一页 一个汇编语言程序至 少有一个代码段, 整个程序必须以一 条END伪指令结束。 其他定义区域根据 需要设置,可有可 无

清华大学出版社TSINGHUAUNIVERSITYPRESS5.1.3伪指令伪指令经汇编后不产生CPU可执行的指令,它是在汇编期间处理的操作,主要用于数据定义、存储器分配、指示程序结束等指示性功能。1.等值定义:在编写程序时,有时会在多处出现同一个表达式,为了方便起见,我们可以用等值定义伪指令定义一个名字来表示这个表达式。等值定义伪指令的格式为:名字EQU数值表达式或符号名上一页
伪指令经汇编后不产生CPU可执行的指令,它是在汇 编期间处理的操作,主要用于数据定义、存储器分配、 指示程序结束等指示性功能。 ⒈等值定义:在编写程序时,有时会在多处出现同一 个表达式,为了方便起见,我们可以用等值定义伪指令 定义一个名字来表示这个表达式。 等值定义伪指令的格式为: 名字 EQU 数值表达式或符号名 5.1.3 伪指令 上一页

清华大学出版社TSINGHUA UNIVERSITYPRESS伪指令(续1)5.1.32.外部说明语句区:外部说明用于解决多模块之间的连接问题实现多模块之间的变量和过程的共享。模块之间的变量的访问涉及PUBLIC和EXTRN两条伪指令。(1)全局标识符说明:当多个程序模块应用同一个标识符时,这个标识符称为全局标识符。在说明这个标识符模块时,应用PUBLIC伪指令加以说明。PUBLIC的格式为:标识符NPUBLIC标识符1I,标识符2,(2)外部标识符说明伪指令:当一个模块要引用其他模块说明的标识符时,应用EXTRN伪指令说明。EXTRN的格式为:EXTRN标识符1:类型[,标识符2:类型,....,标识符N:类型说明语句中各标识符的类型,必须和该标识符说明时的类型一致。上一页
⒉外部说明语句区:外部说明用于解决多模块之间的连接问题, 实现多模块之间的变量和过程的共享。模块之间的变量的访问涉及 PUBLIC和EXTRN两条伪指令。 ⑴全局标识符说明:当多个程序模块应用同一个标识符时,这个 标识符称为全局标识符。在说明这个标识符模块时,应用PUBLIC 伪指令加以说明。 PUBLIC的格式为: PUBLIC 标识符1[,标识符2,.,标识符N] ⑵外部标识符说明伪指令:当一个模块要引用其他模块说明的标 识符时,应用EXTRN伪指令说明。 EXTRN的格式为: EXTRN 标识符1:类型[,标识符2:类型,.,标识符N:类型] 说明语句中各标识符的类型,必须和该标识符说明时的类型一致。 5.1.3 伪指令(续1) 上一页