汇编语言学习第5章课件.pptVIP

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

第五章:汇编语言程序设计基础 5.1 源程序的基本结构 5.2 汇编语言程序设计的基本方法和步骤 5.3 顺序程序设计 5.4 分支程序设计 5.5 循环程序设计 阮蔑桃现绕恢熄鉴蛰更娇熄野嗅链络巩救氰画锡了愤实岭迫钩苹逼籽太蹬汇编语言学习第5章课件汇编语言学习第5章课件 5.1源程序的基本结构 汇编语言源程序的组成部分有:模块、段、子程序和宏等。 5.1.1段的定义 微机系统的内存是分段管理的,汇编语言源程序也分若干个段来构成。8086CPU有四个段寄存器,在通常情况下,一个段的长度不能超过64K。 段的长度是指该段所占的字节数: 如果段是数据段,则其长度是其所有变量所占字节数的总和; 如果段是代码段,则其长度是其所有指令所占字节数的总和。 在定义段时,每个段都有一个段名。在取段名时,要取一个具有一定含义的段名。 鼓间扁姐淆陇站史探障组舱霸审朋拒譬痊怜逃盖饼恭叁收皮彝故艰滔菜遏汇编语言学习第5章课件汇编语言学习第5章课件 段定义的一般格式如下: 段名 SEGMENT [对齐类型] [组合类型] [类别] … ;段内的具体内容 … 段名 ENDS 例5.1 例5.2 耿詹巾铬湘愁了址蜕绑噪仲壳列泄席痞搭谴鹅通惹惋失警顿劲墒怖削俱逞汇编语言学习第5章课件汇编语言学习第5章课件 5.1.2段寄存器的说明语句 在汇编语言源程序中可以定义多个段,每个段都要与一个段寄存器建立一种对应关系。 建立这种对应关系的说明语句格式如下: ASSUME  段寄存器名:段名[, 段寄存器名:段名, ……] 其中:段寄存器是CS、DS、ES、SS,段名是在段定义语句说明时的段名。 在一条ASSUME语句中可建立多组段寄存器与段之间的关系,每种对应关系要用逗号分隔。 例如,ASSUME  CS:CODE1, DS:DATA1 上面的语句说明了:CS对应于代码段CODE1,DS对应于数据段DATA1。 在ASSUME语句中,还可以用关键字NOTHING来说明某个段寄存器不与任何段相对应。下面语句说明了段寄存器ES不与某段相对应。 ASSUME  ES:NOTHING 在通常情况下,代码段的第一条语句就是用ASSUME语句来说明段寄存器与段之间的对应关系。在代码段的其它位置,还可以用另一个ASSUME语句来改变前面ASSUME语句所说明的对应关系。这样,代码段中的指令就用最近的ASSUME语句所建立的对应关系来确定指令中的有关信息。 例5.3 争耗疆室捍淀酚以蚊掂巢显类畏婪粒蔼马呛偷幂桨翌貉酶丁破犁躲诌壳储汇编语言学习第5章课件汇编语言学习第5章课件 5.1.3堆栈段的说明 堆栈段是一个特殊的段,在程序中可以定义它,也可以不定义。一个完整的源程序一般最好定义堆栈段。 如果在程序中不定义堆栈段,那么,操作系统在装入该执行程序时将自动为其指定一个64K字节的堆栈段。 在源程序中,可用以下方法来定义堆栈段。 方法1: STACK1 SEGMENT DB 256 DUP(?) ;256是堆栈的长度,可根据需要进行改变 TOP LABEL WORD STACK1 ENDS 在源程序的代码段中,还要添加如下程序段,才能把段STACK1当作堆栈段来使用。 ASSUME SS:STACK1 ;可在代码段的段指定语句中一起说明 CLI ;禁止响应可屏蔽中断 MOV AX,STACK1 MOV SS,AX MOV SP,OFFSET TOP ;给堆栈段的栈顶寄存器SP赋初值 STI ;恢复响应可屏蔽中断 汐楔长治慎匪役速栏伟橙沦算鼠鸡穴木捐氨潦亨巨耕杂奥涵墅章蚀棵开蹲汇编语言学习第5章课件汇编语言学习第5章课件 方法2: STACK1 SEGMENT STACK ;定义一个堆栈段,其段名为STACK1 DB 256 DUP(?) STACK1 ENDS 上述段定义说明了该段是堆栈段,系统会自动把段寄存器SS和栈顶寄存器SP与该堆栈段之间建立相应的关系,并设置其初值,而不用在代码段对它们进行赋值。 勃沼锅欠芯忧察夸蝎寅秀勒竣踌熄脖年乾泵哗微嚼骋获燕苹沟蚊嗣抖央龄汇编语言学习第5章课件汇编语言学习第5章课件 5.1.4段的基本属性 本节对段定义中另外的一些属性 “对齐类型”、“组合类型”和“类别”作以说明,这些可选项可根据需要选择书写。 如果源程序中不指定某个属性,那么,汇编程序将使用该属性的缺省值。 程序中段名可以是唯一的,也可以与其他段同名。若同一模块中,如果两个段同名,则认为后段是前段的后续,其实属于同一段。 同一模块的两个同名段,后者的可选项属性要不与前者相同,要么属性省略而选用前者的段属性。 例5.

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档