- 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章汇编语言程序结构1一、汇编语言源程序的基本结构
二、汇编语言源程序中的语句
三、常量、变量、标号与表达式
四、伪指令
五、操作符
六、汇编语言上机过程教学重点:①指令语句格式和伪指令语句格式;②汇编语言程序格式;③汇编语言的上机过程教学难点:①伪指令的应用;②运算符、操作符的应用;③伪指令存储器分配技术
2DATASEGMENTSTRDB0DH,0AH,’Howareyou!$DATAENDSSTACKSEGMENTSTACKDB100DUP(0)STACKENDSCODESEGMENTASSUMEDS:DATA,CS:CODE,SS:STACKBEGIN:MOVAX,DATAMOVDS,AXLEADX,STRMOVAH,9INT21HMOVAH,4CHINT21HCODEENDSENDBEGIN汇编语言的一个实例P81
一、汇编语言源程序的基本结构3完整的汇编语言源程序由段(代码段、数据段、附加段或堆栈段)组成;一个汇编语言源程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点。数据段、堆栈段和附加段视情况而定。01每个段由若干语句行组成。语句行是汇编的编程基础。所有的指令必须位于某一个代码段内,伪指令可根据需要位于任一段内。02段以“SEGMENT”开始,以“ENDS”结束。段由用户定义。03
二、汇编语言源程序中的语句4语句的分类语句的格式
1、汇编源程序中语句的分类5指令性语句(指令/硬指令)指示性语句(伪指令)宏指令(第5章)使CPU产生动作、并在程序执行时才处理的语句,就是第3章学习的处理器指令。不使CPU产生动作、在程序执行前由汇编程序处理的说明性语句,例如,数据说明、变量定义等等。
不同点:2、汇编源程序中语句的格式6在形式上:带不带冒号,是否可转向它。在本质上:汇编时能否形成对应的机器码。指令的格式:[标号:]操作码操作数[;注释]伪指令的格式:[名字] 伪指令 操作数 [;注释]共同点:每一语句行都由4部分组成,各部分之间至少要用一个空格作为间隔。
三、常量、变量、标号与表达式(续)7常量数值常量数值常量字符常量符号常量
字符串形式的常量8字符串常量是用单引号或双引号引起来的一个或多个字符。字符串常量是以各字符的ASCⅡ码表示的。如‘A’用41H表示,字符串‘A1B2’用41H,31H,42H,32H表示。对经常使用的数值常量可以先为它定义一个名字,然后在语句中用名字来表示该常量。符号常量需要用等价伪指令EQU和等号伪指令“=”来定义。符号常量三、常量、变量、标号与表达式(续)
三、常量、变量、标号与表达式(续)9变量:变量是一个存放数据的存储单元的名字,用变量名来表示,变量名由用户自定义。变量实际上表示数据初值表首元素的地址;用这个变量名表示,常称为符号地址,在程序中作为存储器操作数来使用。如例子中BLOCK、BUFF。一般在数据段中定义。由于汇编语言中存储单元是分段使用的,所以变量具有三种属性:①段值(SEGMENT)—变量定义所在段的段地址。②偏移量(OFFSET)—变量所指的单元地址与段起始地址之间的位移量。③类型(TYPE)—有字节(byte)、字(word)和双字(doubleword)等。提示:每一个变量定义后都具有此三种属性,设置变量名是为了方便存取它指示的存储单元。
三、常量、变量、标号与表达式(续)10标号是一条指令语句的符号地址。在汇编源程序中,只有在需要转向一条指令语句时,才为该指令语句设置标号,以便在转移类指令(含子程序调用指令)中直接引用这个标号。因此,标号可作为转移类指令的操作数,即转移地址。标号也有三种属性:①段值:所在段的段地址,总是在CS段寄存器中;②偏移量:与变量相同,所在段的段内偏移地址;③类型:分NEAR和FAR两种。其中:NEAR—表示标号所在语句与转移指令或调用指令在同一码段内,只需改变IP即可。FAR—标号所在语句与转移指令或调用指令不在同一码段内。若没有对类型进行说明,默认为NEAR。
TEST11例:测试为0或1若要检测AL中的最低位是否为1,若为1则转移。testal,01h ;测试AL的最低位D0jnzthere ;标志ZF=0,即D0=1 ;则程序转移到there... ;否则ZF=1,即D0=0,顺序执行there:...
三、常量、变量、标号与表达式(续)12表达式是由运算符(操作符)将常数、寄存器、标号、变量组合起来的式子,分数值表达式和地址表达
文档评论(0)