- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 汇编语言程序格式;3.1 汇编程序功能;汇编语言程序的建立及开发过程;汇编程序的主要功能;汇编语言语句实例
MOV CX,0 ;传送指令,具有2个操作数
DELAY: NOP
;空操作指令,没有操作数,带有标号
LOOP DELAY
;循环指令,标号DELAY说明转移位置
BUFFER DB 1,2,3,4,5,6,7
;数据定义伪指令,在主存中开辟7个连续的字节单元,初值依次为1~7,BUFFER表示首地址
;3.2.1 段定义伪操作;完整段定义由SEGMENT和ENDS这一对伪指令实现,SEGMENT伪指令定义一个逻辑段的开始,ENDS伪指令表示一个段的结束
???定义指令后的4个关键字用于确定段的各种属性,堆栈段要采用stack组合类型,代码段应具有‘code’类别,其他为可选属性参数
如果不指定,则采用默认参数;但如果指定,注意要按照上列次序。
;(1)定位类型:指定逻辑段在主存储器中的边界,可为:
BYTE 该段可以从任何地址开始,这样偏移地址可能不是0
WORD 该段必须从字的边界开始,即段起始地址必须为偶数
DWORD 该段必须从双字的边界开始,即段起始地址的最低两个十六进制数位必须为4的倍数
PARA 该段的起始地址必须从小段边界开始,即段起始地址的最低16进制数必须为0
; PAGE 该段必须从页的边界开始,即段的起始地址的最低两个十六进制数位必须为0
简化段定义伪指令的代码和数据段默认采用WORD定位,堆栈段默认采用PARA定位
完整段定义伪指令的默认定位属性是PARA,其低4位已经是0,所以默认情况下数据段的偏移地址从0开始
;(2)组合类型说明程序连接时的段合并方法,即指定多个逻辑段之间的关系,可为:
PRIVATE 本段为私有段,与其他段没有逻辑关系,在连接时不与其他段合并,每段都有自己的段地址。这是完整段定义伪指令默认的段组合方式
PUBLIC 连接程序把本段与所有同名同类型的其他段相邻地连接在一起,然后为所有这些段指定一个共同的段地址,也就是合成一个物理段。这是简化段定义伪指令默认的段组合
STACK 本段是堆栈的一部分,连接程序将所有STACK段按照与PUBLIC段的同样方式进行合并。这是堆栈段必须具有的段组合;(3)使用类型是支持32位段而设置的属性,用来说明使用16位寻址方式还是32位寻址方式
对于16位x86 CPU来说,它默认是16位段,即USE16
而对于汇编32位x86 CPU指令时,它默认采用32位段,即USE32;但可以使用USE16指定标准的16位段
编写运行于实地址方式(8086工作方式)的汇编语言程序,必须采用16位段
;(4)类别在引号中给出连接时组成段组的类型名。当连接程序组织段时,并不能把相同类别的段合并起来,但可将所有的同类别段相邻分配
段类别可以是任意名称,但必须位于单引号中
大多数MASM程序使用 code、data和stack’来分别指名代码段、数据段和堆栈段,以保持所有代码和数据的连续; 此外,必须明确段与段寄存器的关系,可用ASSUME伪操作来实现。格式:
ASSUME 段寄存器:段名 [,段寄存器名:段名, ...]
作用:
通知MASM用指定的段寄存器来寻址对应的逻辑段,即建立段寄存器与段的缺省关系
在明确了程序中各段与段寄存器之间的关系后,汇编程序会根据数据所在的逻辑段,在需要时自动插入段超越前缀。这是ASSUME伪指令的主要功能。;ASSUME伪指令并不为段寄存器设定初值,所以在代码段中还必须把段地址装入相应的段寄存器中。例如:定义数据段段名为DATA,则需使用MOV指令对DS段寄存器进行赋值。
MOV AX, DATA
MOV DS, AX
如果程序中有堆栈段,也需要把地址装入SS中
代码段不需要这样做,代码段的这一操作是在程序初始化时完成的。
;例:完整的段定义伪操作
data_1 segment
…
data_1 ends
data_2 segment
…
data_2 ends
code segment
assume cs:code,ds:data_1,es:data_2
start:
mov ax,data_1
mov ds,ax
mov ax,data_2
mov es,ax
…
code ends
end start;2.存储模型与简化段定义伪操作
(1)M
您可能关注的文档
- 第15章基本放大电路教学教材.ppt
- 第15章页面CSS技巧运用实例电子教案.ppt
- 第16章--国民收入的决定总需求--总供给模型教学文稿.ppt
- 第16章配置管理课件知识讲解.ppt
- 第16章数模和模数转换讲课教案.ppt
- 第17课解放战争的胜利讲课教案.ppt
- 第17课科技巨著与史学巨著讲解材料.ppt
- 第18部分BC4JJSP程序设计方案培训讲学.ppt
- 第18讲 隐性语义索引Latent Semantic Indexing 1讲解学习.pptx
- 第18讲电力系统防雷保护教学提纲.ppt
- 关于天嘉交运集团党组织和党员中深入开展创先争优活动的实施方案.docx
- 关于入城洗车场规划选址的调研报告.docx
- 2024-2025学年福建省南平市建阳区九年级下学期期中道德与法治试题.doc
- 2024-2025学年重庆市万州第三中学八年级下学期期中道德与法治试题.doc
- 2024-2025学年陕西省西安市西咸新区八年级下学期期中道德与法治试题.doc
- 2024-2025学年福建省厦门市第一中学九年级3月月考道德与法治试题.doc
- 2025年云南省云南师范大学实验中学中考三模道德与法治试题.doc
- 2025年四川省南充市中考道德与法治真题变式题-主观题篇.doc
- 2025年四川省广安市华蓥市中考二模道德与法治试题.doc
- 2025年天津市中考道德与法治真题.doc
最近下载
- CQI-8分层审核检查表(2020).xlsx VIP
- 呼吸内科入科教育.pptx VIP
- 防水施工合同简单范本.docx VIP
- 第二单元+第一节+《确定主题+精搜索》课件2024-2025学年川教版(2024)初中信息科技七年级上册.pptx VIP
- 消防设备采购供货投标方案技术标460页.doc VIP
- 呼吸科入科教育.pptx VIP
- 农村公路混凝土路面施工质量控制要点.doc VIP
- (正式版)-B 9706.225-2021 医用电气设备 第2-25部分:心电图机的基本安全和基本性能专用要求.docx VIP
- 大模型技术深度赋能保险行业白皮书(2024).docx
- 人音版九年级音乐下册第二单元天鹅湖音乐赏析 课件(共21张PPT内嵌音视频).pptx VIP
文档评论(0)