第四讲汇编语言.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

语句的组成—操作数 如果一个表达式中同时具有多个运算符,那么按照以下规则进行运算:优先级高的先运算,优先级低的后运算;同一优先级按表达式中从左到右的顺序进行运算;圆括号可提升运算优先级,圆括号内的运算符总是在其任何相邻的运算之前进行。 各种运算符的优先级顺序如下页图表所示。表中同一行的运算符具有同等优先级。第30页,共76页,星期日,2025年,2月5日语句的组成—操作数优先级运算符优先级运算符1LENGTH,SIZE,WIDTH,MASK,(),[],8+,-(二元运算符)2·(结构变量名后面的运算符)9EQ,NE,LT,LE,GT,GE3:(段超越预算符)10NOT4PTR,OFFSET,SEG,TYPE,THIS11AND5HIGH,LOW12OR,XOR6+,-(一元运算符)13SHORT7*,/,MOD,SHL,SHR高低第31页,共76页,星期日,2025年,2月5日语句的组成—注释注释和其他语言一样,汇编语言中的注释仅用于提高程序的可读性。汇编语言中的注释前面要求加上分号(;)。如果注释内容较多,超过一行,则换行以后前面还要加上分号。注释也可以从一行的最前面开始。汇编程序(masm.exe)对注释不予理会,即注释对汇编后产生的目标程序没有任何影响。第32页,共76页,星期日,2025年,2月5日伪操作指令指示性语句中的伪操作指令,因其表示形式类似于CPU指令,故称其为“伪指令”。伪指令与CPU指令的区别:CPU指令是给CPU的指令,对应CPU的特定操作,如加法运算;而伪指令是给汇编程序(masm.exe)的指令,指示汇编程序进行操作,比如定义段、定义数据。CPU指令在汇编后产生一一对应的目标代码,伪指令不产生与之对应的目标代码。下面列出“Hello例”的汇编源码及其对应的机器码 对比体会伪指令的作用。第33页,共76页,星期日,2025年,2月5日Hello,World!的汇编源代码第34页,共76页,星期日,2025年,2月5日Hello,World!的机器代码第35页,共76页,星期日,2025年,2月5日Hello,World!机器代码的分析可以看到,编译后的机器代码中,伪指令都已经不见了。原来的代码段中每条指令性语句都对应一条机器码。

汇编源代码中的第一句MOVAX,data经编译后变成MOVAX,1449。这是因为编译器(masm.exe)将数据段放在1449:0000的位置。然后将DS:DX指向该位置,通过INT21的09H中断将其显示出来。资料回顾:

功能号09H的int21中断功能描述:输出一个字符串到标准输出设备上。入口参数:AH=09H DS:DX=待输出字符的地址说明:待显示的字符串以’$’作为其结束标志第36页,共76页,星期日,2025年,2月5日Hello,World!机器代码的分析下图使用d1449:0000显示了数据段中的内容:第37页,共76页,星期日,2025年,2月5日伪操作指令宏汇编程序MASM提供了数十种伪操作。 (这里也揭示了操作码和伪操作码的另一个区别:

伪操作码随编译器的不同而不同; 而操作码随CPU的不同而不同。)

根据伪操作的功能,大致可以分为下列几类:第38页,共76页,星期日,2025年,2月5日伪操作指令分类伪操作类型举例处理器方式伪操作.8086、.386数据定义伪操作DB、DW、DD、RECORD符号定义伪操作EQU、=、LABEL段定义伪操作SEGMENT/ENDS、ASSUME过程定义伪操作PROC/ENDP模块定义与连接伪操作NAME、END、PUBLIC宏处理伪操作MACRO/ENDM、PURGE条件伪操作IF、IFE、IFDEF列表伪操作.LIST、TITLE、PAGE其他伪操作COMMENT、.RADIX第39页,共76页,星期日,2025年,2月5日处理器方式伪操作(了解)处理器方式伪操作用于指示汇编编译器使用何种CPU的指令系统。常用的有以下几种: .8086 指示汇编程序只汇编8086/8088的指令系统。程序中若出现80286或80386的指令,则编译会出错。 如果程序中不定义任何处理器方式伪操作,则汇编程序默认即是.8086方式。 .386P 指示汇编程序汇编8086/8088以及所有80286和80386(包括保护方式和非保护方式)的指令。第40页,共76页,星期日,2025年,2月5日

文档评论(0)

xiaolan118 + 关注
实名认证
文档贡献者

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档