汇编语言课件第五章 上机

上传人:我*** 文档编号:146138748 上传时间:2020-09-26 格式:PPT 页数:45 大小:301KB
返回 下载 相关 举报
汇编语言课件第五章 上机_第1页
第1页 / 共45页
汇编语言课件第五章 上机_第2页
第2页 / 共45页
汇编语言课件第五章 上机_第3页
第3页 / 共45页
汇编语言课件第五章 上机_第4页
第4页 / 共45页
汇编语言课件第五章 上机_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《汇编语言课件第五章 上机》由会员分享,可在线阅读,更多相关《汇编语言课件第五章 上机(45页珍藏版)》请在金锄头文库上搜索。

1、汇编语言的主要应用场合,程序执行占用较短的时间,或者占用较小存储容量的场合。 程序与计算机硬件密切相关,程序直接控制硬件的场合。 需提高大型软件性能的场合。 没有合适的高级语言的场合。,第四章 汇编语言程序设计,汇编语言程序格式 顺序程序 循环程序 分支程序 子程序结构 高级汇编语言技术 DOS功能调用,4.1 汇编语言程序格式,4.1.1 汇编程序功能 4.1.2 伪操作 4.1.3 汇编语言程序格式 4.1.4 汇编语言程序上机过程,4.1.1 汇编程序功能,编辑程序,PROGR.ASM 文件,汇编程序,PROGR.OBJ 文件,连接程序,PROGR.EXE 文件,MASM,LINK,上机

2、运行汇编程序的步骤: 1) 用编辑程序建立ASM源文件,2)用ASM程序把ASM文件转换成OBJ文件,3)用LINK程序把OBJ文件转换成EXE文件,4)用DOS命令直接键入文件名执行程序,4.1.2 伪操作,一个完整的汇编语言源程序。该程序的功能是完成两个字节数据相加。,DATA SEGMENT BUF1 DB 34H BUF2 DB 2AH SUM DB ? DATA ENDS,CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,BUF1 ADD AL,BUF2 MOV SUM,AL MOV AH,

3、4CH INT 21H CODE ENDS END START,由此可以看出,汇编语言程序由若干个语句组成,语句分为如下两类: 1) 指令语句 由8086/8088提供的指令形成,能够被翻译成机器代码, 并完成一定操作功能。它在程序运行期间执行。,2) 伪指令语句 指示性语句,只是为汇编程序在翻译汇编语言源程序时 提供有关信息,并不翻译成机器代码。 BUF1 DB 34H BUF2 DB 2AH SUM DB ?,是伪指令语句。 实际上,汇编语言源程序中还可以出现宏指令语句。宏指令语句就是由若干条指令语句形成的语句体。一条宏指令语句的功能相当于若干条指令语句的功能。,语句格式 指令语句和伪指令

4、语句的格式是类似的,格式如下: 标题: 名字 操作码 操作数 ;注释 1、名字 1)名字的定义规则 名字就是用户按一定规则定义的标识符,可由英文字母(AZ,az),数字(09)和特殊符号(?、_)等组成。,2)名字的主要形式 名字有标号和变量两种主要形式,(1)标号在代码段中定义,后面跟着冒号。标号也可以用 LABLE或EQU伪指令来定义。还可以作为过程名定义。 标号有三种属性:段、偏移和类型属性。 其中类型属性有NEAR(段内)FAR(段间),(2) 变量在数据段、附加段或堆栈段中定义,后面不跟冒 号。变量经常在操作数字段出现。 变量有三种属性:段、偏移和类型属性 其中类型属性为定义该变量所

5、保留的字节数。如BYTE、 WORD、DWORD、DQ、DT,2、操作码 指明操作的性质或功能。指令中的助记符都是操作码。 3、操作数 指定参与操作的数据。 操作数可以是常数和表达式,伪指令 1、定义符号的伪指令 1.1 等值伪指令EQU 格式: EQU,1.2 等号伪指令= =伪指令与EQU相类似,也可以作为赋值操作使用,它们之间的区别是EQU中的表达式名不允许重复定义,而“=”伪指令则允许重复定义。,1.3 解除定义伪指令PURGE 格式: PURGE 功能:解除指定符号的定义,解除符号定义后,可以用 EQU重新定义。,例: EMP=6或 EMP EQU 6都可以,但不允许两者同时使用。

6、若有: EMP=7 EMP=EMP+1 在程序中是允许使用的。,例: Y1 EQU 7 PURGE Y1 Y1 EQU 36,2、定义数据的伪指令 指令的格式: 变量 助记符 操作数,操作数 ;注释 功能:为操作数分配存储单元,并用变量与存储单元建立 联系。 变量用符号地址表示,作用与指令语句前的标号相同,它表 示第一个字节的偏移地址。 助记符有以下几种:,功能:给符号名定义一个值,赋予一个符号名、表达式或助 记符。 例: CONS EQU 256 DATA EQU HEIGHT+12 ;HEIGHT为一标号,地 址表达式赋以符号名 ALPHA EQU 7 BETA EQU ALPHA-2 A

7、DDR EQU VAR+BETA B EQU BP+8 ;变址引用赋以符号名B BDE EQU DS:BP+8 注意:EQU语句的表达式中如果有变量或标号的表达式,则在该语句给出之前先给出它们的定义,DB 定义字节,每个操作数都占1个字节,类型属性为1 DW 定义字,每个操作数都占2个字节,类型属性为2 DD 定义双字,每个操作数都占4个字节,类型属性为4 DQ 定义4个字,每个操作数都占8个字节,类型属性为8 DT 定义10个字节,每个操作数都占10个字节,类型属性为10 例: DATA_BYTE DB 10,4,10H DATA_WORD DW 100,100H,-5 DATA_DW DD

8、 3*20,0FFFDH 汇编程序可以在汇编期间在存储器中存入数据。如图:,例:操作数是字符串,如: MES DB HELLO ADR DB AB DR DW AB 如图:,操作数?可以保留存储空间,但不存入数据。 例: ABC DB 0,?,?,?,0 DFF DW ?,52,? 见下图:,操作数字段还可以使用复制操作符(DUP)来复制操作数。格式为: REPEAT_COUNT DUP(OPERATOR, ,OPERATOR) 例:AR1 DB 2 DUP(0,1,2,?) AR2 DB 100 DUP(?) 汇编后的存储情况如图:,DUP 格式可以嵌套 如: AR3 DB 100 DUP(

9、0,2 DUP(1,2),3),汇编后如图:,PTR操作符 指定操作数的类型属性,它优先于隐含的类型属性 格式: TYPE PTR 变量或表达式 例: OPER1 DB 1,2 OPER2 DW 1234H,5678H . MOV AX , OPER1+1 ;类型属性不同 MOV AL , OPER2 ;类型属性不同 汇编时出错. 修改: MOV AX , WORD PTR OPER1+1 MOV AL , BYTE PTR OPER2,3、段定义伪操作 汇编程序在把源程序转换为目标程序时,必须确定标号和变量的偏移地址,并且需要把有关信息通过目标模块传送给连接程序,以便连接程序把不同的段和模块

10、连接在一起形成一个可执行程序。因此,需要用段定义操作。 格式: 段名 SEGMENT 段名 ENDS 此外,还必须明确段和段寄存器的关系,用ASSUME伪操作来实现,格式为: ASSUME 段寄存器名:段名,例:DATA1 SEGMENT DATA1 ENDS DATA2 SEGMENT DATA2 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA1,ES:DATA2 START: MOV AX,DATA1 MOV DS ,AX MOV AX, DATA2,MOV ES ,AX CODE ENDS END START ASSUME伪操作只是指定某个段分配给哪个段

11、寄存器,并不能把段地址装入段寄存器中。 SEGMENT伪操作还可以增加类型及属性的说明 格式: 段名 SEGMENT 定位类型 组合类型 类别 其中常用的是定位类型,它包含:,PARA 指定段的起始地址必须从小段边界开始,即段地址的 最低的16进制数位必须为(可被16整除) 如: 00000H 0000FH 00010H 0001FH BYTE 段可以从任何地方开始 WORD 段必须从字的边界开始,即段地址必须为偶数 PAGE 段必须从页的边界开始,即段地址的最低两个16进制 数位必须为0(可被256整除),4、对准伪操作 EVEN 使下一个字节地址成为偶数。一个字的地址最好从 偶地址开始。

12、例如: DATA SEGMENT EVEN WAR DW 100 DUP(?) DATA ENDS,5、ORG 常数表达式 功能:使下一个字节的地址成为常数表达式的值。,例如: VET SEGMENT ORG 10 ECT1 DW 47A5H ORG 20 ECT2 DW 0C596H VET ENDS 则ECT1的偏移地址为0AH,而ECT2的偏移地址值为14H。,7、基数控制伪操作 汇编程序中默认的是十进制数,当使用其他基数表示的常数时,要专门标记,如下: 二进制后加B 十进制数加D 十六进制数加H 八进制数加O或Q,4.1.3 汇编语言程序格式,汇编语句中的操作数项有一个或多个表达式构成

13、。它可以是常数、寄存器、标号、变量或表达式组成。表达式中包含操作符。常用的操作符有算术操作符、逻辑操作符、关系操作符、数值回送操作符和属性操作符。,1、数值回送操作符 TYPE 格式: TYPE 变量或标号 功能:若是变量,则汇编程序将回送该变量的以字节数表 示的类型:DB为1,DW为2,DD为4,DQ为8, DT为10;,若是标号,则汇编程序将回送代表该标号类型的数值:NEAR为-1,FAR为-2 。,例: FEES DW 100 DUP(0) 对于指令 MOV CX, LENGTH FEES,LENGTH 格式:LENGTH 变量 功能:对于变量中使用DUP的情况,汇编程序将回送分配 给该

14、变量的单元数;对于其他情况则回送1。,例:有 ARRAY DW 1,2,3 指令 ADD SI,TYPE ARRAY 汇编程序将其形成为: ADD SI, 2,汇编程序将使其形成为: MOV CX,100 例: ARRAY DW 1,2,3 对于指令 MOV CX,LENGTH ARRAY,汇编程序将使其形成为: MOV CX,1,对于指令 MOV CX,LENGTH TABLE,汇编程序将使其形成为: MOV CX, 1 TABLE DB ABCD,SIZE 格式: SIZE 变量 功能:汇编程序应回送分配给该变量的字节数,但是,此值 是LENGTH值和TYPE值的乘积。,例: 根据上例有

15、MOV CX,SIZE FEES 将使其形成为: MOV CX,200 MOV CX, SIZE ARRAY 将使其形成为: MOV CX,2 MOV CX,SIZE TABLE 将使其形成为: MOV CX,1,OFFSET 格式: OFFSET 变量或标号 功能: 汇编程序将回送变量或标号的偏移地址值。,SEG 格式: SEG 变量或标号 功能: 汇编程序将回送变量或标号的段地址值,例: MOV BX,OFFSET OPER 则汇编程序将OPER的偏移地址作为立即数回送给指令,而在 执行时则将该偏移地址装入BX寄存器中。 与 LEA BX,OPER 等价,例:如果DATA_SEG是从存储器的05000H地址开始的

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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