- 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.宏汇编精选
计算机组成原理与汇编语言(汇编语言部分) 北航计算机学院 熊桂喜 Tel 82317634 email:xiongguixi@buaa.edu.cn 第三部分:宏汇编程序格式与伪指令 3.1 宏汇编语言程序的格式 典型的三段式完整程序的例子 ——冒泡排序法的例子 伪指令的基本格式 [符号] 伪指令 操作数1,操作数2,…操作数n ;注释 “符号” ——段名、子程序名、宏名、变量名、常量名等; “伪指令” ——定义或申明用的助记符,经过汇编后,不复存在; “操作数”——伪指令所带的参数,有的没有参数; 伪指令与指令的区分 指令经过汇编后会变为机器码,作为指令系列,会被装入代码段; 伪指令并不是“真”指令,其作用是组织程序、数据,为汇编器提供帮助,经过汇编后,不复存在。 操作符:指令和伪指令中用于指示性的指示符号或运算符号,它出现在指令和伪指令的操作数部分;除属性操作符(ptr,段,short,offset, seg等)外,经汇编后,都不复存在。 3.2 如何定义堆栈段、数据段和代码段(参见EXP41.asm) 定义段(segment)用到的伪操作 SEGMENT与ENDS 【对位】【组合】【’类别‘】三个属性 堆栈段、数据段、代码段——三段式格式 END 标号 ASSUME 设定CS,DS,SS 程序中对SS,SP,DS的初始化 返回DOS的操作(4Ch号DOS功能调用) 五个定义要素,缺一不可 定义子程序(proc)用到的伪操作 PROC与ENDPnear与far属性,决定调用与返回时的指针类型(短—段内,长—段间) ASSUME 伪指令: 宏汇编的另外两种种格式(书上P144) 1. Main proc far PUSH DS ;PSP的DS SUB AX PUSH AX ;程序的返回值 ….. RET ;返回至PSP(有一条INT 20h) Main ENDP 2.参见EXP411.asm(例题的改写).model small.stack .data.code ;4个语句定义了三个段….. mov ax,@data mov ds,ax ;初始化DS,SS,SP? SEGMENT伪指令的进一步分解 格式: segment_name SEGMENT [align] [combine] [‘class’] …… segment_name ENDS 解释 对位align:指明段开始的边界。 通常段为小边界,参数为PARA。 组合combine:指明程序连接时,该段是否和其它的段组合在一起(以后解释),参数为STACK, COMMON, PUBLIC 堆栈段通常定义 segment_name SEGMENT PARA STACK 类别class:指明段的类别 代码段‘code’,数据段‘data’,堆栈段‘stack’ 对位、组合、类别——告诉编译器,代码块之间如何组合。 3.3 如何定义数据(变量和常量) 用到的伪指令DB 定义字节,常用于8位数,字符,字符串DW 定义字,数组 DD 定义双字、逻辑地址、长指针、中断向量EQU 定义常量,求长度 用到的操作符DUP: 定义数组$: 注意不是“$”,代表当前位置的偏移值(地址计数器)?:代表变量未赋初值(实际上由编译器赋初值0)常见的算术运算符号 定义数据的核心(1)画内存图(2)注意在DEBUG下 CS:IP,DS:0,SS:SP—三组值决定了程序的内存映像 数据定义的例子(书上)例4.7至4.17 其他伪指令及伪操作 AT 表达式:指定段的值 ORG伪指令:指定当前的偏移值 LABEL:指定变量的类型(并不改变后面的定义) 注意与XXXX PTR比较 lebel在定义时通过别名改变类型 ptr 在引用时改变类型 都没有改变原来的定义属性 属性:数据——BYTE WORD DWORD 标号——near,far 其他不做要求的伪指令、操作符处理器伪操作类型伪操作操作:DQ,DTEVEN,ALIGN,TYPE,LENGTH,SIZE等(课堂及讲义上未出现的) 3.4 汇编程序的汇编(编译)、连接、调试 MASM在
您可能关注的文档
- 北大考博专家预测教育学原理专业考博真题复习资料-育明考博精选.pdf
- 北大考研-北大行政管理考研复试分数线-复试人数-招生人数-考试内容-出题导师资料信息精选.pdf
- 北大考研-北大行管考研分数线-招生人数-复试人数-复试比例-复试难度精选.pdf
- 北大考研辅导班——中财政府管理学院推免生培养方案(一)精选.pdf
- 北大考研分享-外交学专业考研分数线真题讲解政治学概论考试资料-育明考研精选.pdf
- 北大行政管理专业考研专业课真题参考书解析-育明·斯泰朗考研小陈老师精选.pdf
- 北大行政管理专业考研什么时候开始准备需要准备多长时间-育明·斯泰朗考研小陈老师精选.pdf
- 北大行政管理专业考研公共行政学复习资料笔记出题重点历年考点课程精选.pdf
- 北大行政管理专业考研真题复习经验学长笔记免费指导考试复习资料-育明·斯泰朗考研小陈老师精选.pdf
- 北大行管2008年考研真题及答案详解(第二套)精选.pdf
文档评论(0)