汇编语言编程.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1;3.2 伪指令语句 ; ●段定义伪指令用于将源程序划分成若干段,这些逻辑段按用途可分为代码段(用于存放程序)、数据段(用于存放数据)、堆栈段(用于堆栈操作)和附加段(附加的数据段)。;例: STACK SEGMENT STACK DW 20DUP(?) STACK ENDS;1)定位类型 定位类型规定段的起始地址要求,有如下4种方式(默认方式为PARA): (1)PARA——段地址从小段边界开始,段起始单元20位地址的最低4位必须为0。 (2)BYTE——段地址从字节边界开始,该段可从任意单元开始。 (3)WORD——段地址从字边界开始,段起始单元20位地址的最低1位必须为0。 (4)PAGE——段地址从页边界开始,段起始单元20位地址的最低8位必须为0。;PAGE:页边界 ??? XXXX XXXX XXXX 0000 0000B PARA:节边界???? XXXX XXXX XXXX XXXX 0000B WORD:字边界?? XXXX XXXX XXXX XXXX XXX0B BYTE:字节边界 XXXX XXXX XXXX XXXX XXXXB;2)组合类型 告诉连接程序本段与其他段的关系,有5种(默认NONE): (1)NONE—连接时表示该段与其他段在逻辑上没有关系,即各有各的段地址。 (2)PUBLIC—连接时表示该段可与其他模块中的同名段在满足定位类型前提下,依次连接起来。连接的顺序由连接程序LINK确定。;(3)COMMON—定义该段与其他模块中的同名段,采用覆盖方式在存储器中定位,即它们具有相同的段首地址。通常不同模块采用公用缓冲区时使用这种组合类型。COMMON的连接长度是各分段中的最大长度。 (4)STACK—表示该段是堆栈段,连接方式与PUBLIC段相同。 (5)AT—这种组合类型后面跟一个常数表达式,表达式的值指定了段地址。不能用于代码段。;(6)MEMORY 指定该段将分配在所有其他连接在一起的段的前面(在高地址上), 如果连接时有几个指定MEMORY的段,则遇到的第一段作为MEMORY段,其他则作为COMMON段。;3)字长选择 用于定义段中使用的偏移地址和寄存器的字长;4) 类别名 连接时用于组成段组的名字。 类别名是一个用单引号括起来的字符串,进行连接处理时,LINK程序把类别名相同的所有段放在连续的存储区域内。 同类的各个段连接时,先出现的在前,后出现的在后。 ;3、 段分配伪指令 ;ASSUME语句只是建立当前段与段寄存器之间的联系,但不能把各段的段地址装入相应的段寄存器中,而是通过给段寄存器赋初值的方法来实现。 段寄存器不能用立即寻址方式直接传送,必须借助于通用寄存器???行传递。 对于堆栈段,不仅要将段地址置入SS段寄存器中,而且还要将堆栈栈顶的偏移地址置入堆栈指针寄存器SP中。 ;DATA SEGMENT AA DB 0DH,20H DATA ENDS EXTRA SEGMENT BN DW 3478H EXTRA ENDS ASTACK SEGMENT STACK DW 256 DUP(0) TOP LABEL WORD ASTACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:EXTRA,SS:ASTACK START:MOV AX,DATA ;初始化DS MOV DS,AX MOV AX,EXTRA ;初始化ES MOV ES,AX MOV AX,ASTACK ;初始化SS MOV SS,AX LEA SP,TOP ;初始化SP CODE ENDS END START ;CS和IP装入通常是按照源程序结束伪指令的地址来完成的,格式是: END 起始地址 起始地址是一个标号或表达式,该起始地址是程序装入内存后开始执行的起始点 。;4、置汇编地址计数器伪指令 符号$用来记录正在被汇编程序翻译的语句的地址。 汇编过程中,每个新段都分配一个初值为0的汇编地址计数器,然后再对该段中的语句汇编,且该计数器按语句目标代码的长度增值。 因此,段内定义的所有标号和变量的偏移地址就是当前汇编地址计数器的值。 ;5、指定地址伪指令。 格式: ORG 数值表达式 功能:将汇编地址计数器设置成数值表达式的值。注意:该值为0~65535之间的非负整数。;6、模块定义伪指令

文档评论(0)

kuailelaifenxian + 关注
官方认证
文档贡献者

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

认证主体太仓市沙溪镇牛文库商务信息咨询服务部
IP属地上海
统一社会信用代码/组织机构代码
92320585MA1WRHUU8N

1亿VIP精品文档

相关文档