- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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、模块定义伪指令
您可能关注的文档
最近下载
- 新探索研究生英语(基础级)读写教程课件unit2-2.pptx VIP
- ZZ058 动漫制作赛题 第3套-2024年全国职业院校技能大赛双数年拟设赛项赛题.pdf VIP
- 财务管理(山东财经大学)智慧树知到期末考试答案2024年.docx VIP
- 中国社科院社会学硕士研究生入学考试真题带答案.docx VIP
- 2025年中国铁路北京局招聘(2124人)笔试参考题库附带答案详解.pdf
- 《已知一个数的几分之几是多少,求这个数》课件.pptx VIP
- 建军大业作文课件.pptx VIP
- 医疗护理员课件.pptx VIP
- 环境管理学课件.pptx VIP
- 【原创】 2021八省联考英语读后续写方法探究.docx VIP
文档评论(0)