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

上传人:ji****72 文档编号:50451069 上传时间:2018-08-08 格式:PPT 页数:19 大小:303.50KB
返回 下载 相关 举报
汇编语言4(清华大学沈美明)_第1页
第1页 / 共19页
汇编语言4(清华大学沈美明)_第2页
第2页 / 共19页
汇编语言4(清华大学沈美明)_第3页
第3页 / 共19页
汇编语言4(清华大学沈美明)_第4页
第4页 / 共19页
汇编语言4(清华大学沈美明)_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《汇编语言4(清华大学沈美明)》由会员分享,可在线阅读,更多相关《汇编语言4(清华大学沈美明)(19页珍藏版)》请在金锄头文库上搜索。

1、第4章 汇编语言程序格式第四章 汇编语言14.1、汇编语言的功能 汇编语言是面向机器结构的低级程序设计语言,是把机 器语言符号化。 用汇编语言编的程序称为汇编语言源程序,源程序必须 经过“汇编”,生成目标代码,经过“连接”后生成执行文 件,方可直接运行。 汇编语言源程序结构: 例1:用汇编语言编写:求解Y=2(A+B)-C的程序汇编语言 源程序目标码 程序可执行的目 标码程序编辑程序汇编程序连接程序程序名.asm程序名.obj程序名.exe汇编语言的建立及汇编过程第四章 汇编语言2DATA SEGMENT A DB 25 B DB 43 C DB 76 Y DB ? DATA ENDS STA

2、CK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDSCOSEG SEGMENTASSUME CS:COSEG,DS:DATA,SS :STACK1 START:MOV AX,DATAMOV DS,AXMOV AL,A ADD AL,BSAL AL,1SUB AL,CMOV Y,ALMOV AH,4CHINT 21H COSEG ENDSEND START19 2B 4C 00 B8 XX XX 8E D8 B4 4C CD 21数据段堆栈段代码段第四章 汇编语言34.2、伪操作 汇编语言源程序由汇编语言语句组成: 指令语句:也称可执行语句。每条语句都

3、有对应的 目标代码,代表计算机具有的一个基本能力。 伪指令语句:用于指示汇编程序如何汇编源程序的 语句。部分语句产生目标代码,部分语句不产生目 标代码。 宏指令语句:为提高编程效率而使用的扩展指令。 指令语句与伪指令语句格式:标识符 操作符 操作数 ;注释 标识符:任选段。指令语句为标号,以:结束。 字符个数为131个; 第一个字符必须是字母、“?”、“”、或“”; 不得使用系统保留字。第四章 汇编语言4 指令语句与伪指令语句格式:(续)名字 操作符 操作数 ;注释 操作符:即指令的助记符,指明语句的功能。 操作数:指明指令的操作对象。 注释:任选段。以“;”开始第四章 汇编语言54.2.1、

4、处理器选择伪操作功能:指示汇编程序选择哪一种指令系统主要有:.8086 选择8086指令系统.286 选择80286指令系统.586 选择Pentium指令系统.586P 选择保护方式下的Pentium指令系统第四章 汇编语言64.2.2、段定义伪操作1、完整的段定义伪指令 语句格式:段名 SEGMENT 定位类型组合类型类别名本段语句序列 (指令或数据)段名 ENDS 功能:在内存中设置一个逻辑段。 定位类型:表示某段装入内存时,对段起始边界的要求。 有四种选择: PAGE(页):段从一个“页”的边界开始,256个字节为一页,段起 始地址低8位为0。 PARA(节):隐含值。段从一个“节”的

5、边界开始,16个字节为一节 ,段起始地址低4位为0 。 WORD(字):段从一个偶字节地址开始,段起始地址低1位为0 。 BYTE(字节):段可从任一个地址开始。第四章 汇编语言7 组合类型:说明多个程序块连接时,本模块与其它模块的 同名段如何组合,有6种选择: None/PRIVATE:隐含值,表示本段与其他段无连接关系。 PUBLIC:表示把相同段名、定位类型,组合类型也是PUBLIC的 段连接在一起,共同占用连续的存储单元,形成一个新段,重新 调整偏移量。 COMMON:表示相同段名和组合类型也是COMMON的段是覆盖 的,共享最大的段存储区。 STACK:产生一个堆栈段,并把相同段名的

6、段连接成一个连续段 ,系统自动设置SS为段的起始地址并初始化SP值。 AT 表达式:表示本段的起始单元可定位在表达式所示“节”的边 界上。 MEMORY:表示本段的存储地址在所有段的最高处。 类别名:在链接处理时,LINK把类别相同的段存放在连 续的存储区内。第四章 汇编语言82、段寻址伪指令 语句格式:ASSUME 段寄存器名:段名,段寄存器名:段名, 功能:指定当前段,及当前段的段寄存器名。 取消 ASSUME 设置: ASSUME 段寄存器名 :NOTHING。例9: DS_DATA SEGMENTVAR1 DB 12HDS_DATA ENDSES_DATA SEGMENTVAR2 DB

7、 34HES_DATA ENDSCODE SEGMENTVAR3 DB 56HASSUME CS:CODE,DS:DS_DATA,ES:ES_DATASTART INC VAR1INC VAR2INC VAR3CODE ENDS END STARTASSUME伪指 令没有对段寄 存器赋值第四章 汇编语言93、段寄存器的装入 (1)DS、ES装入:通过程序装入: MOV AX,DATA_DS MOV DS,AX (2)SS装入(SS、SP同时装入): 段定义伪指令组合类型用“STACK”时,系统自动装入 。 程序装入,同(1)。 (3)CS装入:(CS、IP同时装入) 系统用结束伪指令装入。格式

8、 :END 起始地址 通过分支指令修改时装入。如CALL、JMP等。立即数不能直接 传给段寄存器第四章 汇编语言104.2.3、程序的结束使用 END 第四章 汇编语言11汇编语言的数据种类: 常量 变量 标号4.2.4、数据定义及存储器的分配伪指令第四章 汇编语言12变量:实际为内存单元的数据,并为该存储单元取名字。其数据可以改变。 变量的属性:1、段属性:变量所在段址。2、偏移地址属性:所在段的偏移地址。3、类型属性:变量所占的字节数。 第四章 汇编语言13变量名 DB/DW/DD 表达式,表达式, 功能: 为数据分配存储单元,并用变量名作为该存储器的名称。 例:数值变量定义DATA_BY

9、TE DB 10,4,10HDATA_WORD DW 100,100H,-5DATA_DW DD 3*20,0FFFDHT1 DB HELLO0100006410040ADATA_BYTEDATA_WORD01004F4C4C45高48第四章 汇编语言14变量定义伪指令 DB-字符串的定义例2、字符串变量定义:表达式由ASCII码字符组成, 存储数据为ASCII代码。STR1 DB STR,GTSIRG00STR2STRGSTR1STR2 DW ST,RI,GSTR3 DD ST, GT S 00 00 G 00 00 00STR3单元分配原则: 1、DB单个字符串最多255个字符,按顺序存放

10、; 2、DW 单个字符串最多2个字符,按高地址存高 字节代码存放; 3、DD单个字符串最多2个字符,高2位为00,低2 位同DW.第四章 汇编语言15变量定义伪指令 DB-?、DUP ?表达式:只分配存储单元。 带DUP表达式:重复分配存储单元。 格式: 表达式1 DUP(表达式2) 表达式1为重复次数,表达式2为重复数据 内容。 例3: DAB1 DB 8 DUP(?) DAB2 DW 4 DUP(ST) DAB3 DW 4 DUP (4) DAB4 DB 2 DUP (4 DUP(3),8) DAB5 DW 2 DUP (4 DUP (3),8)T S T S T S T SDAB200

11、00 00 00 00 00 00 00DAB14 00 4 00 4 00 4 00DAB33 3 3 3 8 3 3 3 3 8DAB43 0 3 0 3 0 3 0 8 0 3 0 3 0 3 0 3 0 8 0DAB5DAB DB ?,?DAW DW ?DAD DD ?224第四章 汇编语言16常量:表示一个固定的数值。 分类:1、常数:指由2、8、10、16进制表达的数值。默认进制的设置:RADIX n2、字符串:使用单引号或双引号括起来的单个或多个字符,其数值为其所对应的ASCII码。例:D、ASDF 4.2.5、表达式赋值伪指令EQU第四章 汇编语言17 符号定义作用:用符号表示常数或表达式。等值语句 语句格式:符号EQU 表达式 功能:将EQU右边表达式的值赋给符号。注意: 表达式可以为常数、数值表达式、地址表达式、变量或标号。 EQU语句不产生目标代码,不占存储单元。 在同一源程序中,同一符号不能用EQU重新定义。 表达式中如果有变量或标号的表达式,则在语句前先给它们定义第四章 汇编语言18常量符号定义伪指令等号语句 语句格式:符号=表达式 功能: 符号 表达式 例: EMP=7 EMP=EMP+1注意:同EQU的区别在同一源程序中,同一符号可以用等号语句重新定义。第四章 汇编语言19

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号