网站大量收购闲置独家精品文档,联系QQ:2885784924

微机原理与接口技术课件作者周鹏第5章节汇编语言及其程序设计.ppt

微机原理与接口技术课件作者周鹏第5章节汇编语言及其程序设计.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
再转向目标地址处执行子程序。 根据是段内调用还是段间调用(这一点依据子程序名来得知,子程序在定义时指定了类型NEAR或FAR),具体的执行过程又有所不同,如下: ① 段内调用 先将指令指针IP入栈保护,然后改变IP使之指向子程序的起始位置。 ② 段间调用 先将当前CS入栈,再将当前IP入栈,然后改变CS和IP使之指向子程序的起始位置。 (2).子程序的返回指令RET 格式:RET 功能:子程序执行完后,通过本指令返回主程序。 执行操作: 对段内调用,栈顶一个字→IP(同时SP+2→SP),从而返回到主程序中CALL指令的下条指令处。 尚辅网 / 第5章 汇编语言及其程序设计 5.1汇编语言语句种类与格式 5.1.1 汇编语言语句的种类 汇编语言源程序可以使用如下三类语句: 1.指令性语句 2.伪指令语句 3.宏指令语句 5.1.2 汇编语言语句的格式 由于宏指令实质上不是一类语句,故我们主要分析指令性语句和伪指令语句的格式。 指令性语句的格式为: [标号:] 指令助记符 [操作数 [,操作数]][;注释] 伪指令语句的格式为: [名字] 伪指令定义符 [参数,…,参数] [;注释] 1.标号、名字 指令或数据的符号地址。 开始 2.助记符、定义符 规定指令或伪指令的功能。 3.参数 参数可分为三类,如下: (1).数值表达式 ⊙ 常数 宏汇编中允许使用如下几种常数: ①二进制常数、②十进制常数、③十六进制常数、④八进制常数、⑤串常数、⑤十进制科学计数法、⑦十六进制实数 ⊙ 算术运算符 算术运算符有+、-、*、/、MOD。 (2) ⊙ 逻辑运算符 逻辑运算符有NOT、AND、OR、XOR、SHR和SHL。 ⊙ 关系运算符 关系运算符有:EQ、NE、LT、LE、GT、GE。 (2).寄存器操作数 寄存器操作数就是寄存器的名字,常用于指令性语句中。 (3).存储器操作数 存储器操作数即存储器的地址,常以一个表达式的形式给出,称为地址表达式。单个的变量、标号或有方括号的基址或变址寄存器是地址表达式的特例。 4.注释 注释项必须以分号开头。 5.2 常用伪指令 5.2.1 符号定义伪指令 1.等值语句EQU 格式:变量名 EQU 表达式 功能:EQU伪指令告知汇编程序,指令左右的二个量相等,并且用右边表达式的值定义左边的符号。表达式可以是常数、变量、标号、指令助记符、数值表达式、地址表达式。2.等号伪指令 格式:变量名=表达式 功能:“=”伪指令用来为右边的表达式定义一个替代符号, 且只能是数值表达式,不能为字符串或地址表达式, “=”伪指令定义的符号允许重复定义。 5.2.2 数据定义伪指令与变量 1.数据定义语句 数据定义语句有5条,其格式相同,如下: 变量名 DB 初值表达式 变量名 DW 初值表达式 变量名 DD 初值表达式 变量名 DQ 初值表达式 变量名 DT 初值表达式 功能: 让汇编程序在内存中划出指定个数的存储单元,然后将这些存储单元与变量名联系起来,并在存储单元中预置初值。 DB伪指令定义字节类型变量,其每个初值都占一个字节的存储空间。 DW伪指令用来定义字类型变量,其每个初值都占一个字的存储空间。 DD伪指令用来定义双字类型变量,其每个初值都占二个字的存储空间。 DQ伪指令用来定义四字类型变量,其每个初值都占四个字的存储空间。 DT伪指令用来定义十字节类型变量,其每个初值都占五个字的存储空间。 初值表达式: 初值表达式决定变量初值的个数,定义变量时可以指定多个初值,从而占据较多的存储空间。多个初值时各个初值间用逗号隔开。初值表达式中可以有常数或常数表达式、字符串、?和带DUP的表达式。 例如: B0 DB 2 B1 DB 3,5,?,9 B2 DW 10H,2 DUP(1234H,?) B3 DD 1,2 B4 DB 0,2 DUP(?,1,2 DUP(7) 这5个变量分配内存情况如图5-1(a)~(f)所示(见下页)。 图5-1 DB DW DD 初值示意图 说明: (1)表达式中也可以有用引号引起来的字符串,它表 示将字符的ASCII码作为初值。 例如: C1 DB ‘ABCD’ C2 DW ‘AB’,‘B’ C3 DD ‘AB’ 这三个变量在内存中的存放情况如图5-2(a)~(c)所示. 图5-2 DB DW DD初值示意图 (2)

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档