第5章汇编语言程序设计.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章汇编语言程序设计剖析

第5章 汇编语言程序设计;5.1.1 程序结构 例5-1 给出一个完整的汇编语言程序,完成两个字节数据相加,将运算结果存放于另外一个变量中。 DATA SEGMENT ;定义DATA段 BUF1 DB 34H ;定义第1个数据 BUF2 DB 2AH ;定义第2个数据 SUM DB ? ;定义数据和单元 DATA ENDS ;DATA段结束 STACK SEGMENT PARA STACK ‘STACK’ ;定义STACK段 DW 200 DUP(0) STACK ENDS ;STACK段结束 CODE SEGMENT ;定义CODE段 ASSUME CS:CODE,DS:DATA,SS:STACK ;段分配;START: MOV AX, DATA MOV DS, AX ;填装数据段寄存器DS MOV AL, BUF1 ;取第1个加数 ADD AL, BUF2 ;和第2个加数相加 MOV SUM, AL ;存放结果 MOV AH, 4CH INT 21H ;返回DOS状态 CODE ENDS ;CODE段结束 END START ;整个源程序结束; 从例5-1中可以看出,汇编语言源程序一般包括了数据段、堆栈段和代码段,即程序由段结构组成。由开始语句“SEGMENT”和结束语句“ENDS”来定义一个段。每个段都有一个段名,段名可根据命名规则选取。如数据段的段名为“DATA”, 堆栈段的段名为“STACK”, 代码段的段名为“CODE”。 ; 数据段、堆栈段和代码段的作用各不相同。数据段用于存放程序运行所需要的数据和运行结果;堆栈段用于执行数据的压栈和弹栈操作,以及程序中的数据保护;代码段则是存放所编写程序的代码。各个段都由一系列语句组成。语句包括指令语句和伪指令语句。指令语句(Instruction Statements)产生对应的机器代码,指定CPU做什么操作,而伪指令语句(Directive Statements)并不产生机器代码,仅仅起控制汇编过程的作用,它指定汇编器(Assembler)作何种操作。; 汇编器是专门把汇编语言源程序汇编成机器语言的工具软件。它通过伪指令来了解诸如“变量名列表”、“变量所在位置”、“过程名”等信息。在上面的程序中,SEGMENT/ENDS、DB、ASSUME、END等都是伪指令。 5.1.2 汇编语言语句格式 从上面的分析可以看出,汇编语言语句根据它们汇编阶段和执行阶段的作用不同,将它们分成指令性语句和伪指令语句,其作用及格式如下:; 指令语句是由8086/8088CPU指令形成的语句,汇编时翻译成二进制机器代码的语句。程序运行时完成相应的功能。 [标号:] 操作码 [操作数,[操作数]][;注释] 伪指令语句也叫指示性语句,它只是为汇编程序在翻译汇编语言源程序时提供相关信息,并不翻译成机器代码。 [名字] 伪指令助记符 操作数 [;注释] 指令语句和伪指令语句在格式上稍有区别,指令语句的标号后有冒号“:”,而伪指令语句的名字后则没有冒号。 ;1. 名字 名字也就是由用户按一定规则定义的标识符,它由字母开头,可由下列符号组成:大小写英文字母(A~Z,a~z)、数字(0~9)以及特殊符号(?、@、_等)。名字的定义要满足如下规则: (1)数字不能作为名字的第一个符号; (2)单独的问号(?)不能作为名字; (3)最大有效长度为31位; (4)汇编语言中有特定含义的保留字(如操作码、寄存器名等),不能作为名字使用。为了便于记忆,名字的定义应该做到见名知义。如用BUFFER表示缓冲区、SUM表示累加和等。 ;汇编语言中的保留字;2. 标号 标号在代码段中定义。标号经常在转移指令或调用指令的操作数字段出现,用以表示转移的目标地址。标号有三种属性:段属性、偏移属性及类型属性。

文档评论(0)

586334000 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档