汇编语言基础知识大全

上传人:aa****6 文档编号:57477227 上传时间:2018-10-22 格式:PPT 页数:69 大小:596.50KB
返回 下载 相关 举报
汇编语言基础知识大全_第1页
第1页 / 共69页
汇编语言基础知识大全_第2页
第2页 / 共69页
汇编语言基础知识大全_第3页
第3页 / 共69页
汇编语言基础知识大全_第4页
第4页 / 共69页
汇编语言基础知识大全_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《汇编语言基础知识大全》由会员分享,可在线阅读,更多相关《汇编语言基础知识大全(69页珍藏版)》请在金锄头文库上搜索。

1、第1章 汇编语言基础知识,1.1 汇编语言概述 1.2 进位计数制及其转换 1.3 计算机中数与字符的表示方法 习题1,1.1 汇编语言概述,1.1.1 汇编语言的基本概念汇编语言是机器语言的符号表示形式。在汇编语言出现之前,计算机使用机器语言来控制计算机的各种动作。所谓机器语言,就是用“0”和“1”所组成的一串二进制数所表示的命令或数据,机器的硬件可以直接识别和执行,不需要进行翻译。机器语言的特点是命令代码效率高,但不容易记忆,不利于推广和使用;,程序员借助机器语言编程时,要用数值表示指令和地址,不但费时费力,而且容易出错。汇编语言将机器语言指令和地址符号化,程序员只需要记住符号名并用其编程

2、,汇编器负责把汇编程序翻译成机器指令和正确的地址数值。,大多数程序应该也可以用高级语言编写,但是在某些情况下汇编语言也是必不可少的。汇编语言可以访问计算机的所有指令,可以利用计算机的所有特性,而高级语言就没有这样的能力,高级语言能做的事情汇编语言都能做,而汇编语言能做的高级语言不一定能做到。例如,如果计算机有一个溢出位,汇编程序可以测试它,而一个JAVA程序就不能直接测试溢出位。汇编语言可以直接访问寄存器,而高级语言则不一定能访问。,1.1.2 汇编语言的特点汇编语言相对机器语言而言好记好用,但远不如高级语言方便、实用,而且编写同样的程序,使用汇编语言比使用高级语言花费的时间更多,调试和维护更

3、困难。既然如此,为什么还要使用汇编语言呢?主要有两个原因:性能和对计算机的完全控制。一般而言,汇编语言具有如下特点:,1) 执行速度快一个汇编语言程序,要比高级语言程序执行得更快。程序的执行速度对于某些应用来说是至关重要的。对于这些应用,单纯使用高级语言往往达不到要求,单纯使用汇编语言编写程序也并不是最好的方案,许多成功的大型应用程序往往使用的是混合编程。首先使用高级语言编写整个程序,然后测试程序的执行时间,再使用汇编语言重写其中最费时间的部分。这样做的依据是在实际使用中,通常程序的大部分执行时间都花费在一小部分代码上。,2) 程序短小一个汇编语言程序,要比高级语言程序更小。在某些情况下,设备

4、中的嵌入式处理器往往只有很少的内存,使用汇编语言可能是惟一的方法。如智能卡中有CPU,但是智能卡中很难有1 MB以上的内存,也不可能有带分页的硬盘,但智能卡又必须执行复杂的加密解密计算。个人数字助理(PDA)和其他使用电池作为能源的无线电子设备,为了节省电池的电力,往往也只有很少的内存,它们也需要使用短小精悍而且具有高效率的机器代码。,3) 可以直接控制硬件某些应用程序要求能够完全控制计算机硬件,这也必须使用汇编语言。如操作系统中的低级中断和陷阱处理程序,以及许多嵌入式实时系统中的设备控制程序都属于这一类应用。4) 可以方便地编译编译器可以产生供编程者使用的汇编程序或者自己执行汇编过程。因此,

5、为了理解编译器的工作原理,必须首先理解汇编语言。,5) 辅助计算机工作者掌握计算机体系结构研究汇编语言可以使人们清楚实际计算机结构。特别是对于学习计算机体系结构的学生,编写汇编语言是在结构层理解计算机的惟一途径。,1.1.2计算机的程序设计语言,1.机器语言低级语言2.汇编语言 程序设计语言3.高级语言 C/C+、JAVA、 DELPHI,1.1 机器语言,机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。,1.1 机器语言,指令:01010000 (PUSH AX)电平脉冲:,1.1 机器语言,程序员们将 0、1 数字编程的程序代码打在纸带或卡片上,1打孔,0不打孔,

6、再将程序通过纸带机或卡片机输入计算机,进行运算。示例应用8086CPU完成运算:S = 768 + 12288 1280,1.1 机器语言,S = 768 + 12288 - 1280机器码: 101100000000000000000011000001010000000000110000001011010000000000000101假如将程序错写成以下这样,请找处错误:101100000000000000000011000001010000000000110000000101101000000000000101,1.1 机器语言,在显示器上输出“welcome to masm”。机器码看到

7、这样的程序,你会有什么感想? 如果程序里有一个“ 1 ”被误写为“ 0 ”,又如何去查找呢?,1.2 汇编语言的产生,汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。汇编指令是机器指令的助记符。,1.2 汇编语言的产生,机器指令: 1000100111011000操作:寄存器BX的内容送到AX中汇编指令:MOV AX,BX这样的写法与人类语言接近,便于阅读和记忆。,寄存器,寄存器:简单的讲是CPU中可以存储数据的器件,一个CPU中有多个寄存器。 AX是其中一个寄存器的代号, BX是另一个寄存器的代号。更详细的内容我们在以后的课程中将

8、会讲到。,1.2 汇编语言的产生,计算机能读懂的只有机器指令,那么如何让计算机执行程序员用汇编指令编写的程序呢?,用汇编语言编写程序的工作过程,1.3 汇编语言的组成,汇编语言由以下3类组成: 1、汇编指令(机器码的助记符) 2、伪指令 (由编译器执行) 3、其它符号(由编译器识别)汇编语言的核心是汇编指令,它决定了汇编语言的特性。,3.高级语言,机器语言和汇编语言以外的程序设计语言统称高级语言。其特点是更加接近自然语言和惯用的数学表达形式,与计算机硬件结构无关,因而便于使用,便于交流和推广。 总之,高级语言编程效率高,但运行效率低。 高级语言可分成编译型和解释型高级语言,分别使用编译程序和解

9、释程序将源程序翻译成机器语言程序,然后交计算机执行。,1.2 进位计数制及其转换,计算机内部的信息分为两大类:控制信息和数据信息。 控制信息是一系列的控制命令,用于指挥计算机如何操作; 数据信息是计算机操作的对象,一般又可分为数值数据和非数值数据。 数值数据用于表示数量的大小,它有确定的数值; 非数值数据没有确定的数值,它主要包括字符、汉字和逻辑数据等等。,1.2.1 计算机中的数据 1. 计算机中数的单位 1)位(bit):计算机最小的数据单位 ,用缩写b来表示。 2)字节(Byte):一个字节为8位,即1B=8bit,它是存储空间的基本计量单位 。 3)字:通常由一个或若干个字节组成。 4

10、)数据的换算关系1Byte=8bit1KB=1024B1MB=1024KB1GB=1024MB,2. 进位计数制在计算机中,二进制并不符合人们的习惯,但是计算机内部却采用二进制表示信息,其主要原因有如下四点:电路简单:逻辑电路的通、断只有两个状态。 工作可靠 简化运算 逻辑性强:正好代表逻辑代数中的“真”与“假”,1.4.2 计算机中常用的几种计数制在计算机的数制中,要掌握3个概念,即数码、基数和位权。 数码:一个数制中表示基本数值大小的不同数字符号。八进制有8个数码:0、1、2、3、4、5、6、7。 基数:一个数值所使用数码的个数。八进制的基数为8。 位权:一个数值中某一位上的1所表示数值的

11、大小。八进制的123,1的位权是64,2的位权是8,3的位权是1。,1. 十进制(Decimal notation)十进制的特点如下: 有10个数码:0、1、2、3、4、5、6、7、8、9 基数:10 逢十进一(加法运算),借一当十(减法运算) 按权展开式 例:将十进制数456.24写成按权展开式形式为:,2. 二进制(Binary notation)二进制有如下特点: 有两个数码:0、1。 基数为:2。 逢二进一(加法运算),借一当二(减法运算)。 按权展开式。例如:把 写成展开式,它表示的十进制数为:,3. 八进制(Octal notation)八进制的特点如下: 有8个数码:0、1、2、

12、3、4、5、6、7 基数为:8 逢八进一(加法运算),借一当八(减法运算) 按权展开式 例如: 相当于十进制数为:,4. 十六进制(Hexadecimal notation)十六进制有如下特点: 有16个数码:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。 基数:16。 逢十六进一(加法运算),减一当十六(减法运算)。 按权展开式。例如:十六进制数 代表的十进制数为:,选择题:下列四个选项中,哪个不是七进制数 A.256 B.332 C.347 D.123,同理,任意一个二进制数、八进制数和十六进制数也可用位权表示。例如: (101.11)2=122+021+120+121+

13、122 (124.36)8=182+281+480+381+682 (AC.B5)16=A161+C160+B161+5162 据上述概念,可推广出表示任意进制数的通式:,表1-1 几种常用进制之间的对照关系,1.4.3 常用计数制之间的转换1.(2、8、16进制数十进制数) 二进制数十进制数:以2为基数按权展开并相加 八进制数十进制数:以8为基数按权展开并相加。 十六进制数十进制数:以16为基数按权展开并相加。,2. 十进制转换为二进制数 1)整数部分的转换整数部分的转换采用的是除2取余法。2)小数部分的转换小数部分的转换采用乘2取整法。,十进制转换成二进制,除2取余法,余数,0,(125)

14、10 = (1111101)2,例:将十进制数(0.534)10转换成相应的二进制数。,结果为:(0.534)10(0.10001)2,十进制转换成八进制,除8取余法,余数,0,(125)10 = (175)8,十进制转换成十六进制,除16取余法,300,16,余数,12(C),(300)10 = (12C)16,18,16,1,16,0,3. 八进制与二进制数之间的转换 1)八进制转换为二进制数八进制数转换成二进制数所使用的转换原则是“一位拆三位”,即把一位八进制数对应于三位二进制数,然后按顺序连接即可。2)二进制数转换成八进制数二进制数转换成八进制数可概括为“三位并一位”,即从小数点开始向

15、左右两边以每三位为一组,不足三位时补,然后每组改成等值的一位八进制数即可。,“一位拆三位”,“三位并一位”,4. 二进制数与十六进制数的相互转换 1)二进制数转换成十六进制数二进制数转换成十六进制数的转换原则是:“四位并一位”,即以小数点为界,整数部分从右向左每4位为一组,若最后一组不足4位,则在最高位前面添0补足4位,然后从左边第一组起,将每组中的二进制数按权数相加得到对应的十六进制数,并依次写出即可;小数部分从左向右每4位为一组,最后一组不足4位时,尾部用0补足4位,然后按顺序写出每组二进制数对应的十六进制数。2)十六进制数转换成二进制数十六进制数转换成二进制数的转换原则是:“一位拆四位”

16、,即把1位十六进制数写成对应的4位二进制数,然后按顺序连接即可。,“四位并一位”,“一位拆四位”,(10101.11)2转换成十进制 (10101.11)2 =1X24+0X23+1X22+0X21+1X20+1X2-1+1X2-2 =16+0+4+0+1+0.5+0.25 =21.75 (100101)2分别转换成八进制和十六进制 转换成八进制: 100101=100 101 = (45)8 转换成十六进制: 100101=0010 0101 = (25)16,(10101.11)2 =1X24+0X23+1X22+0X21+1X20+1X2-1+1X2-2 =16+0+4+0+1+0.5+0.25 =21.75,100101=100 101 = (45)8,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号