汇编语言程序设计第一讲.ppt

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 计算机语言有多种分类方法,按照是否面向机器可以分成面向机器的语言和非面向机器的语言。面向机器的语言又分为机器语言和汇编语言,面向机器的语言也称作计算机低级语言。其他计算机语言均为非面向机器的语言。非面向机器的语言又有多种分类方法,按照翻译方式可以分成编译型语言和解释型语言;按照其用途又可以分成各种用途的语言,例如数据库管理语言、算法语言、人工智能语言等;相对于低级语言,又可以分成高级语言、中级语言;按照程序设计方法又可以分成结构型语言、面向对象语言等。 * 实际操作演示这一例 * 实际操作演示这一例 * 实际操作演示这一例 * 实际操作演示这一例 * 实际操作演示这一例 * 汇编语言程序归纳起来大概有以下几个主要特性。 1. 与机器的相关性 汇编指令是机器指令的一种符号表示,汇编语言程序与机器语言都是面向机器的计算机低级语言。 除了同系列、不同型号CPU之间的汇编语言程序有一定程度的兼容性之外,其他不同类型(如小型机和微机等)CPU之间的汇编语言程序是无法兼容的。也就是说,汇编语言程序的通用性和可移植性要比高级语言程序低。 2. 执行的高效率 正因为汇编语言有“与机器相关性”的特性,程序员用汇编语言编写程序时,可充分发挥自己的聪明才智,对机器内部的各种资源进行合理的安排,让它们始终处于最佳的使用状态。这样做的最终效果就是程序的执行代码短,执行速度快。但这是一把双刃剑,程序的效率将直接取决于程序员的编程水平及对于硬件的理解程度。 现在,高级语言的编译程序也都有一定程度的优化,但由于所使用的“优化策略”要适应各种不同的情况,所以这些优化策略只能在宏观上,不可能在微观上、细节上进行优化。而用汇编语言编写程序几乎是程序员直接在写执行代码,程序员可以在程序的每个具体细节上进行优化,这也是汇编语言程序执行高效率的原因之一。 3. 编写程序的复杂性 汇编指令与机器指令基本上一一对应,所以汇编指令也同机器指令一样具有功能单一、具体的特点。在编写汇编语言程序时,需要考虑机器资源的限制、汇编指令的细节和限制等。这就使得编写汇编语言程序变得比较繁琐、复杂。一个简单的计算公式或计算方法,也要用一系列汇编指令一步一步来实现。 4. 调试的复杂性 调试汇编语言程序要比调试高级语言程序困难,其主要原因有: (1) 汇编语言指令涉及到机器资源的细节,在调试过程中,要清楚每个资源的变化情况。 (2) 程序员在编写汇编语言程序时,为了提高资源的利用率,可以使用各种实现技巧,而这些技巧完全有可能破坏程序的可读性。因此在调试过程中,除了要知道每条指令的执行功能,还要清楚它在整个解题过程中的作用。 (3) 高级语言几乎不显式地使用“转移语句”,但汇编语言要用到大量的、各类转移指令,这些转移指令增加了调试程序的难度。 (4) 高级语言程序可以在源程序级进行符号跟踪,而汇编语言程序只能跟踪机器指令(不过,现在这方面也有所改善,例如CV(CodeView)、TD(Turbo Debug)等软件也可在源程序级进行符号跟踪)。 5. 对机器内部的依赖性 正是因为汇编语言如同机器语言一样高度依赖机器的内部结构,因此汇编语言程序设计也就为程序设计者提供了一条掌握机器内部结构的最好途径。这是任何一种其他语言都无法做到的。所以可以毫不夸张地说,不学习汇编语言就不能真正了解计算机与计算机科学。 * 人们习惯用十进制计数,这是因为人的双手一共有10根手指头。现代计算机则用物理部件的状态表示数、符号和指令,而两种稳定状态的物理部件最容易实现,因此计算机采用二进制计数。二进制数不但能够表示数,而且能够表示机器指令、符号等。 数的进制本质、二进制数在现代计算机中的地位以及它和十进制数的关系是本节要解决的核心问题。 * 注:所谓位置原理是指同一个0~9的符号出现在不同的位置上作用是不一样的。 * 注:以后在不引起混淆的情况下,叙述中将不再写后面的B。 说明:8位二进制数称一个字节(BYTE)。两个字节称作一个字(WORD)。4个字节称作双字(DWORD)。8086/8088以字节为单位进行编址是指每个单元能存放8位二进制数,即一个字节。20位地址线能对地址0~220-1,共1MB(兆字节)直接寻址。 * 在进行十六进制数计算时务必记住逢十六进一,并且A,B,C,D,E,F分别表示10,11,12,13,14,15。 * 大家从以下例题的推导可以看出二进制数化八进制数的原理:11B= 1×27+0×26+1×25+0×24+1×23+1×22+0×21+1×20+1×2-1+1×2-2 =(1×24+0×23+1×22+0×21+1×20)23+(1×22+0×21+1×20)+(1×2-1+1×2-2+0×2-3) =((1×21+0×20)23+1×22+0×21+

文档评论(0)

xiaofei2001128 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档