资源目录
压缩包内文档预览:
编号:21836146
类型:共享资源
大小:11.91MB
格式:ZIP
上传时间:2019-09-06
上传人:QQ24****1780
认证信息
个人认证
王**(实名认证)
浙江
IP属地:浙江
25
积分
- 关 键 词:
-
大学
汇编
语言程序设计
相伟
课件
ppt
- 资源描述:
-
大学汇编语言程序设计-相伟-课件PPT,大学,汇编,语言程序设计,相伟,课件,ppt
- 内容简介:
-
21世纪高等院校规划教材汇编语言程序设计相 伟 主编徐小平 李珍香 副主编中国水利水电出版社第1章微型计算机概述本章学习目标通过本章学习,读者应该掌握以下内容:微型计算机的发展过程微型计算机的组成结构数据编码方法及运算8086/8088CPU的内部结构8086/8088CPU的存储器分段管理技术1.1微型计算机的发展过程与组成结构1.1.1微型计算机的发展过程1电子计算机概述 1946年,世界上第一台电子数字计算机ENIAC(Electronic Numerical Integrator And Calculator )在美国宾夕法尼亚大学研制成功,标志着计算机时代的到来,随着计算机技术和集成电路技术的发展,计算机的制造成本逐渐降低,而性能、可靠性越来越高。特别是在1970年以后,随着大规模集成电路(LSI)研制成功,出现了微型计算机。 在微型计算机出现之前,电子计算机一般是根据体积、性能、价格划分为巨型机、大型机、中型机、小型机。 但从计算机的硬件发展水平而言,计算机的发展经历了电子管时代、晶体管时代、中小规模集成电路时代、大规模和超大规模集成电路时代,目前已进入巨大规模的集成电路时代。 尽管计算机发展很快,但微型计算机与巨型机、大型机、中型机、小型机在系统结构和工作原理上并没有本质上的区别,都是依据著名的美籍匈牙利数学家冯诺依曼(Johaan Von Neumann,19031957)提出的存储程序(Stored Program)原理工作的,即将由指令组成的程序和指令操作的数据以二进制形式存储在存储器里,通过使计算机自动从存储器中取出程序执行,完成程序赋予的功能。 根据程序存储原理,计算机硬件应由五个基本部分组成,即:运算器、控制器、存储器、输入设备和输出设备。运算器是计算机执行各种算术运算和逻辑运算的功能部件。控制器用于控制组成计算机的各个功能部件协调一致的工作。存储器用于存储计算机运行的程序、程序处理的数据、程序运算结果。输入设备用于将程序和数据输入计算机,存储在存储器中。输出设备用于输出存储器中的程序、原始数据和运算结果。2微型计算机的发展过程(1)4位微处理器 1971年,Intel公司推出了第一片4位微处理器Intel4004,它在4.2mm*3.2mm的硅片上,集成了2250个晶体管,工作频率为108KHz,寻址空间640字节,以其为核心组成了一台高级袖珍计算器。随后Intel公司在Intel4004的基础上,经过改进,推出了Intel4040,它是第一片通用的4位微处理器。4位微处理器指令系统简单,运算功能较弱。(2)8位微处理器 1972年,Intel公司推出8位微处理器Intel8008,集成度约2000个晶体管,时钟频率为1MHz。Intel8008的运算能力是4004的2倍。 1974年,Intel公司又推出8位微处理器Intel8080,集成度约6000个晶体管,时钟频率为2MHz。 1976年,Intel公司推出功能最强的8位微处理器Intel8085,集成度约1万个晶体管,时钟频率达到4MHz。(3)16位微处理器 1978年,Intel公司推出16位处理器Intel8086,集成度约2.9万个晶体管,时钟频率为5MHz、8MHz、10MHz。Intel8086的内部和外部数据线都是16位,地址线为20位,可直接访问1MB内存单元。Intel8086首次采用了流水线技术,并在CPU内部设置了6个字节的指令队列,存放预取的指令,减少了CPU取指令的时间。(4)32位处理器1985年,Intel公司推出了32位处理器Intel80386,集成度约27万个晶体管,时钟频率为2040MHz,该芯片的数据线及地址线都是32位,可直接访问4GB内存,并支持分页机制。Intel80386与Intel8086向上兼容,具有三种工作方式:实地址模式、保护虚地址模式和虚拟Intel8086模式。所谓虚拟Intel8086模式是指可以在操作系统控制下模拟多个Intel8086同时工作。(5)64位微处理器2003年,AMD公司率先推出了64位微处理器Athlon 64,该微处理器的推出使AMD公司在个人计算机处理器的竞争中首次领先于Intel公司。Athlon 64 处理器既可确保当前的32位应用程序能够发挥出卓越的性能,也可支持下一代的64位应用程序。64位微处理器的诞生,标志着计算技术迈进了一个新的时代。1.1.2微型计算机的组成结构1微型计算机的组成微型计算机的典型组成结构如图1-1所示。 从图1-1中可以看出,微型计算机由微处理器CPU、内存ROM和RAM、I/O接口电路以及系统总线组成,其中CPU是整个微型计算机的核心部件。CPU是微型计算机的核心部件,它是采用超大规模集成电路技术制作的芯片,芯片内集成了运算器和控制器的功能,并集成了少量的被称为寄存器的高速存储单元。 (2)内存微型计算机的工作就是执行程序,即不断地取指令并执行指令,而不论指令还是指令处理的数据都是存放在存储器中。存储器由内存和外存两部分组成 。(3)I/O接口I/O(InputOutput)接口电路是外设与微型计算机之间的连接电路。外设是外部设备的简称,用来实现程序和数据的输入/输出。由于外设多数是机电设备,传输数据的速度远低于计算机,而且接收数据的信息格式、信号电平也不一定符合微型计算机的要求,故外设需要接口电路与计算机相连接。I/O接口的作用是在CPU和外设之间进行信息交换时,起缓冲、信息格式转换及时序匹配等作用。(4)系统总线系统总线是CPU与其它各功能部件之间进行信息传输的通道,它是一组并行的导线。按照系统总线上所传送信息的不同类型,系统总线可以分为数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus)。2微型计算机系统的组成3. 微型计算机的性能指标(1)主频(2)运算速度(3)字长(4)存储容量各个存储容量的单位之间的关系如下:1KB=1024B1MB=1024KB1GB =1024MB 1TB =1024GB4. 微型计算机的主要应用(1)科学计算(2)数据处理(3)计算机辅助应用系统(4)过程控制和仪器仪表智能化1.2数据编码与运算在日常生活中我们常用十进制数,但在计算机系统中,数据的存储及处理均采用二进制数,所有计算机处理的数据,包括字母、符号等都要用二进制编码来表示。1.2.1数据编码与运算1各种进位计数制 2数制的转换3. 数据运算1各种进位计数制 (1)十进制计数 在十进制计数中,采用数字0、1、2、3、4、5、6、7、8、9共10个数码来计数。通过这10个数码来表示任意大小的数值,同一个数码在数值的不同位置上有不同权。在个位的位置上,数码的权是100;在十位的位置上,数码的权是101;在百位的位置上,数码的权是102;在千位的位置上,数码的权是103,依次类推。例如(5178)10 = 5103110271018100(795.412)10 = 710291015100410-1110-2210-3(2)二进制数(10110011)2 = 127026125124023022121120(11.1001)2 = 12112012-102-202-312-4(3)十六进制数(9A7C)16 = 9163A1627161C160(B56.D7)16 = B16251616160D16-1716-22数制的转换在汇编语言程序设计中,既可以使用二进制表示的数,也可以使用十进制表示的数或使用十六进制表示的数。因此,应该熟练掌握各种计数值及各种计数值之间的相互转换。(1) 十进制数与二进制数之间的相互转换例1-1 将十进制数 76.425转换成二进制数。转换方法:将数分成整数部分和小数部分分别进行转换。转换结果为:76.425 = 1001100.011011B 商 余数762=380382=190192=9 192=4 142=2 022=1 012=0 1 乘积 整数0.4252=0.850 00.852=1.70 10.72=1.4 10.42=0.8 00.82=1.6 10.62=1.2 1例1-2 将二进制数11.1001B转换成十进制数。11.1001B = 12112012-102-202-312-4= 210.5000.0625= 3.5625(2)将十进制数与十六进制数之间的相互转换例1-3 将十进制数 76.125转换成十六进制数。 商余数7616=4 C416=0 4 乘积整数部分0.12516=2.0 2转换结果为:76.125 = 4C.2H例1-4 将十六进制数B56.D7H转换成十进制数。B56.D7H = B16251616160D16-1716-2= 28168060.81250.027344= 2902.839844(3)二进制数与十六进制数的相互转换例1-5 将二进制数101111010 . 0111001B转换成十六进制数。101111010 . 0111001B= 0001 0111 1010 . 0111 0010B= 17A.72H例1-6 将十六进制数B56.D7H转换成二进制数。B56.D7H = 1011 0101 0110 . 1101 0111B3. 数据运算(1)二进制加法运算二进制加法运算规则:逢2进1。即 :000011101110 产生进位1例1-7 计算两个数据9759具体计算过程如下: 0 1 1 0 0 0 0 1 B 0 0 1 1 1 0 1 1 B1 0 0 1 1 1 0 0 B(2)二进制减法运算二进制减法运算规则:借1作2。即 :000011产生借位1101110 例1-8 计算两个数据9759 具体计算过程如下: 0 1 1 0 0 0 0 1 B0 0 1 1 1 0 1 1 B0 0 1 0 0 1 1 0 B(3) 二进制乘法运算二进制乘法运算与十进制乘法运算类似即 :000010100111 例1-10 计算1 0 1 1 B 1 0 0 1 B。 1 0 1 1 B 1 0 0 1 B 1 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 1 1(4) 二进制除法运算例1-11 计算1 0 1 1 0 0 11 B 1 0 0 1 B。 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 01.2.2 带符号数的编码及运算对于用一个字节来表示的带符号数,D7位表示符号位,其余位表示数据位。对于用一个字来表示的带符号数,D15位表示符号位,其余位表示数据位。1原码编码法原码编码的规则是:最高位代表符号位,正数的符号位用0表示,负数的符号位用1表示,数值部分按照“除2取余”的方法直接转换成二进制数。例如: 75的原码用字节表示为:0 0 1 0 0 1 0 1 1 B 75的原码用字节表示为:1 0 1 0 0 1 0 1 1 B 31785的原码用字表示为: 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 B 31785的原码用字表示为: 1 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 B 0的原码用字节表示为:0 0 0 0 0 0 0 0 B 0的原码用字节表示为:1 0 0 0 0 0 0 0 B8位原码所能表示的数据范围是: (271)M(271)或127M127或7FHM7FH16位原码所能表示的数据范围是: (2151)M(2151)或32767M32767或7FFFHM7FFFH2补码编码法及其运算补码编码的规则是:正数的补码等于原码,负数的补码可先求对应正数的原码,再对原码进行取反加1(包括符号位)。例如 75的补码用字节表示为:0 0 1 0 0 1 0 1 1 B 75的补码用字节表示为:1 1 0 1 1 0 1 0 1 B 31785的补码用字表示为: 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 B 31785的补码用字表示为: 1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 B 0的补码用字节表示为:0 0 0 0 0 0 0 0 B 0的补码用字节表示为:0 0 0 0 0 0 0 0 B 例1-12 对两个带符号数75和43进行加法运算。 0 1 0 0 1 0 1 1 B 1 1 0 1 0 1 0 1 B 1 0 0 1 0 0 0 0 0 B运算结果:(75)(43)0 0 1 0 0 0 0 0 B例1-13 对两个带符号数75和43进行减法运算。 0 1 0 0 1 0 1 1 B 1 1 0 1 0 1 0 1 B 0 1 1 1 0 1 1 0 B运算结果:(75)(43)0 1 1 1 0 1 1 0 B8位补码所能表示的数据范围是: 27M(271) 或128M127或80HM7FH16位补码所能表示的数据范围是: 215M(2151)或32768M32767或8000HM7FFFH1.2.3 数的定点表示法和浮点表示法 在计算机中,不仅可以存储和处理整数,也可以存储和处理实数,即带小数点的数据。根据小数点的位置是否固定,实数在计算机中的表示分为定点表示法和浮点表示法。1定点表示法纯小数形式的定点表示法如下:整数形式的定点表示法如下:2. 浮点表示法浮点数的编码格式如下:1.2.4 BCD码和ASCII码 1BCD码BCD码的编码方法是将一位十进制数字用4位二进制数表示。其中,最常使用的BCD码是8421码。在8421码中,数字09分别用4位二进制数00001001表示,其中8、4、2、1表示4位二进制数中每一位的权分别是108、104、102、101。例如: 十进制数9386用压缩的BCD码表示为:1 0 0 0 0 1 1 01 0 0 1 0 0 1 1用非压缩的BCD码表示为:0 0 0 0 0 1 1 00 0 0 0 1 0 0 00 0 0 0 0 0 1 10 0 0 0 1 0 0 11.48086/8088CPU的存储器管理8086/8088CPU有20位地址信号线,可直接寻址1MB的内存空间,但8086/8008CPU内部的所有通用寄存器都是16位的,16位的寄存器只能寻址64KB的内存空间,所以为了寻址1MB的内存空间,8086/8088CPU采用了存储器分段管理技术。 1.4.1存储器的分段管理8086/8088CPU在BIU单元中设置了4个段寄存器,即数据段寄存器CS、附加数据段寄存器ES、代码段寄存器CS、堆栈段寄存器SS。 2. ASCII码ASCII码(American Standard Code for Information Interchange:美国标准信息交换码) ASCII码使用7位二进制编码表示一个字符,在计算机中用一个字节存储,最高位一般取0。在有些情况下,最高位用做奇偶校验位,用来校验字符代码在传输过程中是否发生错误。常用字符的ASCII码如下:10个数字字符的ASCII码为:30H39H。26个大写字母的ASCII码为:41H5AH。26个小写字母的ASCII码为:61H7AH。空格字符(SP)的ASCII码为:20H。回车字符(CR)的ASCII码为:0DH。换行字符(LF)的ASCII码为:0AH。1.38086/8088CPU 8086CPU是Intel公司于1978年推出的16位微处理器,时钟频率为5MHz,有16位数据信号线,20位地址信号线,可寻址的内存地址空间为1MB。8088CPU是Intel公司于1979年推出的准16位微处理器,时钟频率为4.77MHz,有8位数据信号线,20位地址信号线,可寻址的地址空间为1MB。1.3.1 8086/8088CPU的内部结构1总线接口部件BIUBIU由20位地址加法器、4个16位段寄存器(CS、DS、 ES、SS)、一个16位的指令指针IP和一个指令队列所组成的。其中,8088CPU的指令队列有4字节,8086CPU的指令队列有6字节。CS:Code Segment,存放当前代码段的段地址。DS: Data Segment,存放当前数据段的段地址。ES:Extra Segment,存放当前附加数据段的地址。SS:Stack Segment,存放当前堆栈段的段地址。 IP:Instruction Pointer,存放下一条要执行的指令的偏移地址。2执行部件EU8个16位的通用寄存器一个16位的算术逻辑单元ALU(Arithmetic Logical Unit)一个16位标志寄存器FlagsEU控制电路组成。AX:Accumulator,累加器BX:Base,基址寄存器CX:Count,计数器DX:Data,数据寄存器SP:Stack Pointer,堆栈指针寄存器,BP:Base Pointer,基址指针寄存器SI:Source Index,源变址寄存器,DI:Destination Index,目的变址寄存器1.3.2 CPU的内部寄存器1通用寄存器2标志寄存器Flags 8086/8088CPU的各个标志位,根据功能可以分为两类:状态标志和控制标志。(1) 状态标志 符号标志SF(Sign Flag) 零标志ZF(Zero Flag) 奇/偶标志PF(Parity Flag) 进位标志CF(Carry Flag) 辅助进位标志AF(Auxiliary carry Flag) 溢出标志OF(Overflow Flag)例1-14 判断两个数相加之后,各个状态标志位的设置。MOV AX,0A365HADD AX,7259H 1010 0011 0110 0101 0111 0010 0101 1001 10001 0101 1011 1110 各个状态标志位的设置如下:SF=0、ZF=0、PF=1、CF=1、AF=0、OF =0例1-15 判断上例中的两个数相减之后,各个状态标志位的设置。MOV AX,0A365H SUB AX,7259H 1010 0011 0110 0101 0111 0010 0101 1001 0011 0001 0000 1100 各个状态标志位的设置如下:SF=0、ZF=0、PF=1、CF=0、AF=1、OF =11.48086/8088CPU的存储器管理8086/8088CPU有20位地址信号线,可直接寻址1MB的内存空间,但8086/8008CPU内部的所有通用寄存器都是16位的,16位的寄存器只能寻址64KB的内存空间,所以为了寻址1MB的内存空间,8086/8088CPU采用了存储器分段管理技术。 1.4.1存储器的分段管理逻辑地址 一个存储单元的段地址和偏移地址称为该存储单元的逻辑地址,逻辑地址又称为有效地址EA(Effective Address)。 逻辑地址的形式为:段地址:偏移地址物理地址 8086/8088CPU对存储器中某一个存储单元的访问,需要根据逻辑地址计算出该存储单元的20位地址,这个20位地址称为该存储单元的物理地址,物理地址记做PA。 物理地址=段寄存器的值16+偏移地址。1.4.2 CPU对存储器的寻址1取指令指令存放在代码区,取指令时使用的段地址只能由CS提供,偏移地址由IP提供,IP指示CPU要执行的下一条指令的偏移地址。2堆栈操作堆栈是按先进后出的的原则在内存中组织的一个存储区域,该区域一端固定,称为堆栈的栈底,另一端活动,称为堆栈的栈顶。堆栈指针SP始终指向栈顶,初始时栈顶和栈底是一个位置,而堆栈段寄存器SS则指明了堆栈段的起始位置。 堆栈操作指令:PUSH和POP。 入栈指令PUSH格式:PUSH sr
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。