- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理与接口技术-第5章 汇编程序设计_12课件
第5章 汇编语言程序设计;数据定义伪指令 符号定义伪指令 段定义和段寄存器指定伪指令 过程定义伪指令 结束伪指令;哪些是伪指令?;5.2.1 处理器选择伪操作;5.2.2 数据定义伪指令;例1: DataB DB 10,5,10H DataW DW 100H,-4 DataD DD 汇编后的内存分配情况 如右图所示。;例2:对于字节定义(DB)操作数可以是字符串,例如 STR DB ‘HELLO’ 汇编后的情况如图:;注意下面两个定义的不同之处: DB AB ;A在低字节,B在高字节 DW AB ;B在低字节,A在高字节 DD AB ;; 保留存储单元操作符? 操作数?用来保留存储空间,但不存入数据初值 例: ABC DB 0,1,2,3,4,’OK’,’$’ RSV DW ?,?,?,?,?,?,?,? 复制操作符DUP 重复的数据可以使用复制操作符DUP,如上面RSV亦可写成: RSV DW 8 DUP(?);$ 运算符 —— 地址计数器;例4: TABLE DB 2 DUP(?, 2 DUP(1, 2)) BUFFER DW TABLE, $+3 设TABLE的偏移地址为0080H,则汇编后如下图所示:;例5: 数据定义的综合例子; DataD DD 3CH nAddr DW DataD fAddr DD DataD ;修改属性的运算符;PTR运算符的应用;*;THIS运算符;5.2.3 符号定义伪指令;例:“EQU 和 =” 的例子 FIVE EQU 5 COUNT EQU CX TEN EQU 10 DIST = BYTE PTR[SI+BP] GOTO = JMP … MOV COUNT,TEN ADD DIST, FIVE DIST = WORD PTR[SI+BP+1] ADD DIST, AX GOTO LABEL ;EQU用途;5.2.4 段定义伪指令;*;这两个伪指令总是成对出现,SEGMENT说明了一个段的开始,ENDS说明了一个段的结束。 每个段必须有一个段名,通常选用与本段相关的名字(DATA、STACK、CODE),段开始与结束的段名必须一致。 对数据段和堆栈段,段中的语句一般是变量定义。对代码段则是指令语句。 如: data SEGMENT 数据定义语句 data ENDS ;ASSUME:段约定语句;但要注意,ASSUME伪指令只是告知汇编程序有关段寄存器与段的关系,并没有给段寄存器赋予实际的初值。故下面的语句 MOV AX,DATA ;DATA为段名 MOV DS,AX MOV ES,AX 将段基址装入段寄存器。如果程序中用到堆栈段,则SS也需装入实际的初值。 代码段基地址不需要程序员装入CS寄存器,而由OS负责装入。;SEGMENT语句后可以带有可选参数,用以规定逻辑段的其他一些属性。;;*;3) 类别:确定段的存放区域;例: 在模块1中有段定义: seg1 SEGMENT PARA STACK ‘stack’ … seg1 ENDS 在模块2中有段定义: seg2 SEGMENT PARA STACK ‘stack’ … seg2 ENDS 则连接时这两个段被安排在一起。;ORG规定了段内的指令或数据存放的开始地址(偏移地址的初值),其格式为: ORG 表达式 表达式的值即为开始地址,从此地址起连续存放程序或数据。 例: ABC SEGMENT ORG 100H begin: … … ABC ENDS ;*;*; 过程定义伪指令的格式为 过程名 PROC [类型] … … RET 过程名 ENDP 注意:PROC和ENDP必须成对出现。; 过程的类型有两种: NEAR——(默认类型)表示段内调用 FAR——表示段间调用 调用一个过程的格式为
文档评论(0)