- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]第7章_1微型计算机的汇编语言及汇编程序
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 在指令中引用上述定义的符号时,必须考虑符号命的类型,否则会出现错误。 D1 DB 3 DUP (12H) 例如: MOV AX,D1 ;D1 类型错误 MOV AX,WORD PTR D1 ;正确 3. 段定义伪指令 存储器在逻辑上是分段的,各段的定义由伪指令实现。 格式: 〈段名〉SEGMENT[定位方式][连接方式][‘类别名’] … 〈段名〉ENDS 段定义伪指令为程序的汇编和连接说明了段名、分段的各种属性以及分段的开始和结束。段名是自定义符,开始的段名与结束的段名必须相同。段的长度不超过64KB。SEGMENT后面的参数是可选项。 例如: data SEGMENT …… data ENDS (1) 定位方式(定位类型): 定位方式指定段的起始地址边界,方式有4种。 PAGE——指定起始地址的低8位是0,即其值能被256整除(称为页边界)。 PARA——指定起始地址的低4位是0,即其值能被16整除(称为段边界)。这是系统隐含定位方式。 WORD——指定起始地址的最低位是0,即其值能被2整除(称为字边界)。 BYTE——指定起始地址是任意值。 以上4种边界如下所示: ×××× ×××× ×××× 0 0 0 0 0 0 0 0 PAGE ×××× ×××× ×××× ×××× 0 0 0 0 PARA ×××× ×××× ×××× ×××× ××× 0 WORD ×××× ×××× ×××× ×××× ×××× BYTE 段寄存器说明伪指令 ASSUME 段寄存器:段定义名1[,段寄存器:段定义名2,…] 该伪指令告诉汇编程序在汇编时,段寄存器CS:,DS:,SS:和ES:应具有的符号段基址,以便汇编指令时确定段和建立错误信息。但是段寄存器实际值(CS除外)还要由传送指令在执行程序时赋值。 例如:ASSUME CS:CODE, DS: DATA 5. 过程(子程序)定义伪指令 格式: 〈过程名〉PROC[NEAR](或[FAR]) 〈过程名〉ENDP 过程名是自定义符。定义过程是为实现子程序调用而设的。调用格式为: CALL〈过程名〉 过程由RET指令返回,它可以不是最后一条指令,它在过程中可以设多点返回。 过程起始名和终止名必须相同。类型NEAR和FAR默认时系统约定是近过程,当选NEAR时,过程是段内调用,过程中的RET是段内返回。当选FAR时,过程是段间调用,过程中的RET是段间返回。 例如:STAR PROC FAR ……… STAR ENDP 6. 模块开始伪指令 格式: NAME 模块名 该伪指令指明程序模块的开始,并指出模块名。模块名是自定义符,它不能是系统保留字,每次汇编只能出现一次。若该伪指令默认,则取TITLE语句中的页标题前6个字符;若没有TITLE语句,则取源程序文件名为模块名。 例如 : NAME EX1 7. 模块结束伪指令 格式: END[启动标号或过程名] 该伪指令告诉汇编程序源文件结束,并给出执行程序的入口位置。启动地址只有在主模块才有意义。 例如 :… END 8. 定位伪指令 格式: ORG〈表达式〉 该伪指令把以下语句定义的内存数据或程序,从表达式指定的起点(偏移地址)开始连续存放,直至遇到新的ORG指令。表达式的值是一个无符号数。 例如 :DATA SEGMENT A1 DB 12H ORG 1000H A2 DB 24H DATA ENDS 9. 列表伪指令 (1) 建立标题 格式: TITLE标题 为列表文件每页第一行定义大标题。 (2) 建立小标题 格式: SUBTTL小标题 为列表文件每页定义小标题,输出在大标题之后。 (3) 自动排版(行数、列数) 格式: PAGE行数,行字数 为列表文件定义每页行数(10~255)和每行字符数(60~132),默认值是66行,80列。 为了简化汇编语言源程序的书写,把一些频繁出现的程序段定义为“宏指令”,当程序中遇到这个程序段时,只需用一条宏调用语句,这样有效地缩短了源程序的长度,使源程序易读,也减少了由于重复书写而引起的错误。从某种意义上讲,它与前述的“过程”有相似之处,也可以将构成一条宏指令的程序段定义为一个“过程
文档评论(0)