第5章 微机CPU指令系统0.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文档。上传文档
查看更多
第5章 微机CPU指令系统0

——第一个程序与汇编指令;汇编语言程序从编写到执行的过程 源程序的构成 编译、连接源程序 exe文件装入内存执行的原理 对程序执行过程进行跟踪 汇编语言常用汇编指令;1.汇编源程序从编写到执行的过程;...... mov ax,0123H mov bx,0123H add ax,bx …… ;第一步 编写汇编源程序 使用文本编辑器编写汇编源程序,产生一个存储源程序的文本文件。 第二步 对源程序进行编译、连接 使用编译程序对源程序进行编译,产生目标文件; 对目标文件进行连接,生成可执行文件。 可执行文件包括两部分: 程序和数据 相关描述信息 第三步 执行可执行文件 依照描述信息,装入内存,并进行相关初始化工作,然后由CPU执行。;2.源程序的构成;assume cs:codesg codesg segment start: mov ax,0123H mov bx,0D455H add ax,bx add ax, ax mov ax,4C00H int 21H codesg ends end start;汇编语言中包括两种指令 汇编指令 可被编译为对应的机器指令,最终由CPU所执行。 例如:mov,add,int 伪指令 没有对应的机器指令,最终不被CPU所执行。 伪指令是由编译器来执行的指令,根据伪指令来进行相关的编译工作。 前面的代码出现了三种伪指令,都有什么作用?;*;(1) XXX segment … … XXX ends segment和ends是一对成对使用的伪指令,它的功能是定义一个段。segment说明一个段的开始,ends说明一个段的结束。一个段必须有一个名称来标识,XXX代表了某个段名。;*;(2) end end是一个汇编程序的结束标记,编译器在编译汇编程序的过程中,如果碰到了伪指令end,就结束对源程序的编译。 注意: 如果是主程序的话,end后需要加一个主程序首指令的标号。 不要搞混了end和ends, ends是和segment成对使用的,标记一个段的结束。而end的作用是标记整个程序的结束。;*;(3) assume assume cs:codesg 这条伪指令的含义为“假设”。它假设某一段寄存器和程序中的某一个用segment. .. ends定义的段相关联。通过assume说明这种关联,在需要的情况下,编译程序凭借assume将段寄存器和某一个具体的段相联系。;*;汇编源程序中,除了汇编指令和伪指令外,还有一些标号,比如codesg、start。 一个标号指代一个地址。 比如程序中codesg是一个段的名称标号,这个段名最终将被编译,连接程序处理为一个段的段地址,并赋值给段寄存器CS。start也是一个标号,它指向了程序的第一条指令。;我们先定义一个段,起一个名称为abc abc segment … … abc ends;在这个段中写入汇编指令,实现处理任务 abc segment start: mov ax,2 add ax,ax add ax,ax abc ends;然后我们需要指出程序在何处结束 abc segment start: mov ax,2 add ax,ax add ax,ax abc ends end start;abc显然是代码段,我们将cs与段abc联系起来 assume cs:abc abc segment start: mov ax,2 add ax,ax add ax,ax abc ends end start;原先的例子;*;程序返回应该在程序的末尾添加返回的程序段。 mov ax,4C00H int 21H 在目前阶段,我们不必去理解int 21H指令的含义,以及为什么要在这条指令的前面加上指令mov ax,4C00H。我们只要知道,在程序的末尾使用这两条指令就可以实现程序返回。 ;一个完整的程序 assume cs:abc abc segment start: mov ax,2 add ax,ax add ax,ax mov ax,4C00H int 21H abc ends end start 将它保存成一个后缀为asm的文本文件 ;3. 编译、

文档评论(0)

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

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档