文档详情

汇编语言4(清华大学沈美明).ppt

发布:2016-12-21约5.25千字共19页下载文档
文本预览下载声明
第四章 汇编语言 第4章 汇编语言程序格式 4.1、汇编语言的功能 汇编语言是面向机器结构的低级程序设计语言,是把机器语言符号化。 用汇编语言编的程序称为汇编语言源程序,源程序必须经过“汇编”,生成目标代码,经过“连接”后生成执行文件,方可直接运行。 汇编语言源程序结构: 例1:用汇编语言编写:求解Y=2(A+B)-C的程序 DATA SEGMENT A DB 25 B DB 43 C DB 76 Y DB ? DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDS COSEG SEGMENT ASSUME CS:COSEG, DS:DATA,SS:STACK1 START:MOV AX,DATA MOV DS,AX MOV AL,A ADD AL,B SAL AL,1 SUB AL,C MOV Y,AL MOV AH,4CH INT 21H COSEG ENDS END START 4.2、伪操作 汇编语言源程序由汇编语言语句组成: 指令语句:也称可执行语句。每条语句都有对应的目标代码,代表计算机具有的一个基本能力。 伪指令语句:用于指示汇编程序如何汇编源程序的语句。部分语句产生目标代码,部分语句不产生目标代码。 宏指令语句:为提高编程效率而使用的扩展指令。 指令语句与伪指令语句格式: [标识符] 操作符 操作数 [;注释] 标识符:任选段。指令语句为标号,以:结束。 字符个数为1~31个; 第一个字符必须是字母、“?”、“@”、或“—”; 不得使用系统保留字。 指令语句与伪指令语句格式:(续) [名字] 操作符 操作数 [;注释] 操作符:即指令的助记符,指明语句的功能。 操作数:指明指令的操作对象。 注释:任选段。以“;”开始 4.2.1、处理器选择伪操作 功能:指示汇编程序选择哪一种指令系统 主要有: .8086 选择8086指令系统 .286 选择80286指令系统 .586 选择Pentium指令系统 .586P 选择保护方式下的Pentium指令系统 4.2.2、段定义伪操作 1、完整的段定义伪指令 语句格式: 段名 SEGMENT [定位类型][组合类型][‘类别名’] 本段语句序列 (指令或数据) 段名 ENDS 功能:在内存中设置一个逻辑段。 定位类型:表示某段装入内存时,对段起始边界的要求。 有四种选择: PAGE(页):段从一个“页”的边界开始,256个字节为一页,段起始地址低8位为0。 PARA(节):隐含值。段从一个“节”的边界开始,16个字节为一节,段起始地址低4位为0 。 WORD(字):段从一个偶字节地址开始,段起始地址低1位为0 。 BYTE(字节):段可从任一个地址开始。 组合类型:说明多个程序块连接时,本模块与其它模块的同名段如何组合,有6种选择: None/PRIVATE:隐含值,表示本段与其他段无连接关系。 PUBLIC:表示把相同段名、定位类型,组合类型也是PUBLIC的段连接在一起,共同占用连续的存储单元,形成一个新段,重新调整偏移量。 COMMON:表示相同段名和组合类型也是COMMON的段是覆盖的,共享最大的段存储区。 STACK:产生一个堆栈段,并把相同段名的段连接成一个连续段,系统自动设置SS为段的起始地址并初始化SP值。 AT 表达式:表示本段的起始单元可定位在表达式所示“节”的边界上。 MEMORY:表示本段的存储地址在所有段的最高处。 类别名:在链接处理时,LINK把类别相同的段存放在连续的存储区内。 2、段寻址伪指令 语句格式: ASSUME 段寄存器名:段名,段寄存器名:段名,… 功能:指定当前段,及当前段的段寄存器名。 取消 ASSUME 设置: ASSUME [段寄存器名] :NOTHING。 3、段寄存器的装入 (1)DS、ES装入:通过程序装入: MOV AX,DATA_DS MOV DS,AX (2)SS装入(SS、SP同时装入): 段定义伪指令组合类型用“STACK”时,系统自动装入。 程序装入,同(1)。 (3)
显示全部
相似文档