wondows程序设计第4章 伪指令、汇编语言程序结构及上机过程.pptVIP

wondows程序设计第4章 伪指令、汇编语言程序结构及上机过程.ppt

  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文档。上传文档
查看更多
wondows程序设计第4章 伪指令、汇编语言程序结构及上机过程

第四章 伪指令、汇编语言源程序结构及上 机过程 4.1 汇编语言中的语句 4.2 伪指令 4.3 源程序结构 4.4 汇编语言的上机过程 4.1 汇编语言中的语句 1.语句种类 (1)指令语句:完成一定的操作,能够翻译成机器代码的语句,第三章介绍的指令所形成的语句. (2)伪指令语句:只是为程序在翻译语言程序时提供有关信息,并不翻译成机器代码的语句. 注:汇编语言中还可以出现宏指令语句(12章)。 2、语句格式 指令语句的一般格式如下: [标号:] 指令 [;注释] 标号:标号是机器指令语句在内存中地址的符号表示,后面必须紧跟冒号“:” 注:如果一条指令作为程序转移的目标,前面应该加标号.例:JMP AGAIN 伪指令格式 具体的伪指令对应具体的格式。 3其它语言要素 指令或伪指令中的操作数可以是: 常量(数值、字符、符号常量),数值常量可以是二、八、十、十六进制,但需注意书写规则。 表达式 表达式有算术表达式、关系表达式、逻辑表达式,其对应的运算符见课本37页。 4.2 伪指令 伪指令是向汇编程序提供诸如:哪个段是数据段。哪个段是代码段,程序何时结束、数据据段中的内存变量等相关信息。 (1)数据定义伪指令 (2)段定义伪指令 (3)假定伪指令ASSUME (4)程序结束伪指令 (5)过程定义伪指令 (6)其它 (1) 数据定义伪指令 常用的数据定义伪指令有DB,DW。 格式:[变量名] 数据定义伪指令 表达式 [,…] 功能:在存储区定义内存变量,变量类型由数据定义伪指令确定,变量初值由表达式给定。 DB:表示为字节型变量 DW:表示为字型变量(16位) 例:SUM DB 12,8 A1 DW 1234H STR DB ‘AB’ 该定义在内存的结果示意如下 说明: (1)这里的SUM,A1,STR其实质为符号地址,不同于高级语言的内存变量,也就是说不能按内存变量一样去访问对应的数据。 (2)定义的16位数在内存存放时,其形式为低8位在低地址,高8位在高地址。 (3)定义的字符数据按其ASCII码存放。 (4)若操作数是“?”,表示此时只分配单元,不定义初值。 例:A2 DB 0,?,?,0 其存储单元分配如下图: (5)操作数用复制操作符DUP,表示操作数重复若干次. 例:BUF1 DB 2 DUP(2,3,4)等价于 BUF1 DB 2,3,4,2,3,4 BUF2 DB 8 DUP(?)等价于 BUF2 DB ?,?,?,?,?,?,?,? (2)段定义伪指令SEGMENT/ENDS 格式如下: segment name SEGMENT segment name ENDS 1.段名 段名是为该段起的名字,用来指出汇编程序为该段分配的存储区起始位置。 (3)假定伪指令ASSUME 格式:ASSUME 段寄存器:段名 [,段寄存器:段名] 功能:建立段寄存器与段之间的对应关系。该伪指令一般出现在代码段中。 例: DATA SEGMENT A DB 1,2,3 DATA ENDS CODE SEGMENT ASSUME DS:DATA1,CS:CODE START: CODE ENDS END START (4)源程序结束伪指令 格式:END [表达式] 功能:该语句标志整个程序的结束,是源程序的最后一条语句。 (5)过程定义伪指令(第7章介绍) (6)其它 等值伪指令:EQU 符号名 EQU 表达式 功能:给符号名定义一个值。 例:D1 EQU 25 OFFSET (标号) 计算出标号的段内偏移地址 例:MOV SI,OFFSET STR PTR 类型 PTR 表达式 给表达式指定一个类型。 例:WORD PTR 5 将5指定为字节类型。 问:MOV [BX],5 指令能通过汇编吗? 不能,改成MOV [BX],BYTE PTR 5便可。 4.3 汇编语言源程序结构 完整段定义结构 例:下面的程序实现两个字节数的相加,下面是完整段定义结构的程序. DATA SEGMENT BUF1 DB 34H BUF2 DB 2AH SUM DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,BUF1 ADD AL,BUF2 MOV SUM ,AL MOV AH,4CH ;

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档