汇编语言基础知识.ppt

上传人:za****8 文档编号:15895991 上传时间:2020-09-13 格式:PPT 页数:34 大小:248.52KB
返回 下载 相关 举报
汇编语言基础知识.ppt_第1页
第1页 / 共34页
汇编语言基础知识.ppt_第2页
第2页 / 共34页
汇编语言基础知识.ppt_第3页
第3页 / 共34页
点击查看更多>>
资源描述
1,第一章,基础知识,封面,2,1.1数据表示与运算,1.1.1 数制 1.1.2 编码 1.1.3 有符号数的表示方法 1.1.4 二进制运算,返回第一章,3,1.1.1 数制,数制涉及三个问题:计数符号 基数和权 计数规则 (1)计数符号 这是用于书写数值的符号,所有计数符号的集合称作数符集。k进制的数符集中必然包含k个符号。比如: 二进制的数符集中有两个符号:0和1; 八进制的数符集中有8个符号:0,1,2,3,4,5,6,7; 十进制的数符集中有10个符号:0,1,2,3,4,5,6, 7,8,9; 十六进制的数符集中有16个符号:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。,4,数制的三个问题: 1. 二进制数,(2)基数和权 如果把用k进制书写的一个整数从右往左依次记作第0位、第1位、第n位,则第i位上的数符ai所代表的含义是aiki。在此,我们把k称为一个数制的基数,而把ki称为k进制数第i位的权。(如888,每个8的位权都不相同) (3)计数规则 简单地说,就是“逢k进1,借1当k”。 . 1. 二进制数 1 1 0 1 1 0 1 1 . 1 0 1 B= 1x27+126+025+124+123+022+121+1 20+12-1+02-2+12-3 二进制数是计算机内部采用的,并唯一能够直接被计算机识别的数。,5,2. 十六进制数,2. 十六进制数 8a0f.6bH=8163+10 162+0 161+15 160+6 16-1+11 16-2 引入十六进制数的目的是为了描述二进制数。 数的书写方法: 1)二进制数尾部加B(b)。 2)十六进制数尾部加H(h);如记数符号a,b,c, d,e,f打头,头部应加0,如0A8F5H;记数符号 a,b,c,d,e,f 不区别大小写,与ABCDEF等效。 3)十进制数尾部加D(d),但通常可以省略。,6,3.数制间转换,3.数制间转换 1)十进制数转换二进制数; 2)十进制数转换十六进制数; 3)二进制数十六进制数互相转换;,返回1.,7,1.1.23 数制转换:十进制二进制(整数),将整数部分不断除以2,记下每次得到的余数,直到商为零;余数倒排,即最后得到的余数排在最高位,第一个余数排在最低位。例如将十进制数13转换成二进制数: 2 1 3 余数 2 6 1 2 3 0 2 1 1 0 1 13D=1101B,8,1.1.23 数制转换:十进制二进制(小数),小数部分转换:乘2取整,顺序排列得到的整数。例如将0.8125转换成二进制数: 0.8125 整数 2 1 .6250 2 1 .25 2 0 .50 2 1 .00 0.8125D=0.1101B(有时会有转换误差 ,如0.3D),返回数制转换,9,1.1.23 数制转换:十进制十六进制,十进制数转换成十六进制数,方法同十进制数转换成二进制数,只不过“除2取余”变为“除16取余”,“乘2取整” 变为“乘16取整”。同理,如果要将十进制数转换为其它数制的数(如八进制数),也采用同样的方法。 二进制数、十六进制数转换成十进制数教材未介绍,只要将二进制数、十六进制数按位权展开相加即可,如将8A.B5H转换成十进制数: 8A.B5H=8161101601116-1+516-2 =128100.68750.0195=138.707D,返回数制转换,10,二进制数互相转换十六进制数,返回数制转换,5 A.5 H,11,1.1.3 编码,计算机中的数采用二进制数,字母、符号等也只能采用二进制代码(0,1)的排列组合表示(编码)。(两种编码:BCD码、ASCII码) 1. BCD 码(8421码、二十进制数) 解决十进制数在计算机内部如何表示。BCD码规定用四位二进制数表示一位十进制数。 对多位十进制数,只要把每一位十进制数分别表示为四位二进制数即可。,十进制 BCD码 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001,十进制 BCD码 28 0010 1000 956 1001 0101 0110,12,2. ASCII码,2. ASCII码 解决字母、符号在计算机内部如何表示。 基本ASCII码(标准ASCII码)用七位二进 制数表示一个符号(共128个); 书写:用两位十六进制数书写,如41H-A; 种类:1)控制字符(前32个和最后一个): 0D- 回车,0A- 换行; 2)其他为打印字符(可显示字符); 应记住的ASCII码:30H39H,41H,61H 扩展ASCII码用八位二进制数表示一个符号(共256个)。,返回1.2,13,1.1.4 有符号数表示方法,0.无符号数、有符号数、机器数、真值 1.原码 正数原码:符号位为0,数值位照抄。 负数原码:符号位为1,数值位照抄。 例:X=+25=+00011001B X原=00011001B X= -25= -00011001B X原=10011001B 2.反码 正数反码:符号位为0,数值位照抄。 负数反码:符号位为1,数值位取反。 例: X=+25=+00011001B X反=00011001B X= -25= -00011001B X反=11100110B 原码和反码表数范围相同,都是-127+127。,14,3. 补码,3. 补码 为了将减法运算变成加法来做,有符号数在计算机内一律采用补码表示。 正数补码:符号位为0,数值位照抄。 负数补码:符号位为1,数值位取反加一。 例:X=+25=+00011001B X补=00011001B X= -25= -00011001B X反=11100110B X补=11100111B 下面是原码、反码和补码的小结。,原码、反码、补码总结: 1)正数的原码反码补码相同;负数的原码反码补码各不相同,但符号位都是1。 2)设字长为八位,原码反码的表数范围为-127+127,补码的表数范围为-128+127。 3)已知某负数的补码,求该负数的真值,方法如下: 符号位不动,其余位求反加一,得到的是该负数的原码; 根据原码即可写出该负数的真值。 例:X补=11111100B X原=10000011B+1=10000100B X= -0000100= - 4,返回1.2,15,1.1.5二进制运算(含十六进制运算),1.算术运算 与十进制运算相同,只不过是逢2进1,借1当2。 加法 减法 乘法 0+0=0 00=000=0 0+1=1 01=101=0 1+0=1 10=110=0 1+1=10 11=011=1 2.十六进制算术运算:与十进制运算相同,但 逢16进1,借1当16; 注意运算结果如为A,B,C,D,E,F,不能写成10,11,12,13,14,15。,16,3.逻辑运算,3.逻辑运算 与运算(AND;): 10=011=100=001=0 或运算(OR;): 10=111=100=001=1 非运算(NOT; 或 ): 0=1( 0 =1) 1= 0 ( 1= 0) 异或运算(XOR;) 10=111=000=001=1 注意:逻辑运算是按位运算。,17,4.用补码作减法(补充讲义),我们用实例说明计算机在执行减法指令时,是如何把减法变成加法来做的(设字长为8位)。 例1:(+5)(+4)即(+00000101)(+00000100) 机器中+5和+4都用补码表示。 对减数求补(求反加一),得到(-4)的补码:11111100 (+5)的补码加(-4)的补码: 0 0 0 0 0 1 0 1 + 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 1 将结果00000001看作补码,其真值即为+1。,进位被自动舍弃,18,用补码作减法(2),例2 (+5)(-4) 即(+0000101)(-0000100) 机器中+5和- 4都用补码表示。(-4)补=11111100 对减数求补,得到的是+4的补码:00000100 将+5的补码加+4的补码 0 0 0 0 0 1 0 1 + 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 将结果看成补码,其真值即为正确结果+9。 例3:(- 5)-(+4)和 (- 5)-(- 4)步骤同上。总之:被减数和减数都用补码表示; 机器对减数先求补,而后做加; 将计算结果看作补码。,返回第一章,19,例2 (+5)(-4) 即(+0000101)(-0000100) 机器中+5和- 4都用补码表示。(-4)补=11111100 对减数求补,得到的是+4的补码:00000100 将+5的补码加+4的补码 0 0 0 0 0 1 0 1 + 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 将结果看成补码,其真值即为正确结果+9。 例3:(- 5)-(+4)和 (- 5)-(- 4)步骤同上。总之:被减数和减数都用补码表示; 机器对减数先求补,而后做加; 将计算结果看作补码。,返回第一章,20,1.2 8086微处理器,1.2.1 8086的内部结构 1.2.2 8086的寄存器组 1.2.3 8086CPU引脚功能,返回第一章,21,1.2.1 8086的内部结构,指令译码,总线接口单元,执行单元,ABUS DBUS CBUS,内部数据总线,内部数据总线,返回1.5,22,1.2.2 8086寄存器组,寄存器是CPU内部临时存放数据的部件。 8个通用寄存器,4个段寄存器,1个指令指针寄存器,1个标志寄存器。以上寄存器均为16位寄存器。 1. 8086通用寄存器 (1) AX累加器。 (2) BX基地址寄存器。 (3) CX计数寄存器。 (4) DX数据寄存器。 (5) SI源变址寄存器。 (6) DI目的变址寄存器。 (7) BP栈基地址寄存器。 (8) SP栈顶指针。 (9) IP指令指针寄存器(专用寄存器)。,通用寄存器中的 4 个数据寄 存器可以分成8个8位寄存器使用: AXAH,AL BX BH,BL CXCH,CL DX DH,DL,23,标志寄存器,2.标志寄存器 标志寄存器又称作程序状态字(Program Status Word,简记作PSW),共16位,一般把每一位分别使用,8086/8088使用其中的9位,用于存放当前程序执行的状况和运算结果的特征,各标志位的分布如图2.3所示。 D15 d14 d13 d12 d11 d10 d9 d8,24,标志寄存器,9个标志位可分为两组:状态标志(条件标志),记载算术运算或者逻辑运算结果的特征;另一组是控制标志位,记载CPU当前工作状态(控制CPU执行指令的方式),包括TF、IF、DF等3个标志位。 1状态标志(条件标志) (1)CF进位标志。 (2)ZF零标志。 (3)SF符号标志。 (4)OF溢出标志。(设置,与CF的区别) (5)PF奇偶标志。(低8位,偶数时为1) (6)AF辅助进位标志。,25,控制标志位,2控制标志位 (1)TF单步中断允许标志。 (2)I F外部可屏蔽中断允许 标志。 (3)DF方向标志。,返回1.5目录,26,1.2.3 8086微处理器的引脚功能,8086微处理器采用DIP40封装,40个引脚 引脚按功能可分4部分:地址总线、数据总线、控制总线、电源及时钟 引脚的类型有:双向、三态、输入、输出等 双功能引脚 分时复用引脚 工作方式不同功能不同引脚,27,1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20,40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21,GAD AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GAD,VCC AD15 AD16 / S3 AD17 / S4 AD18 / S5 AD19 / S6 SS0 (HIGH) MN / MX RD HOLD (RQ / GT) HLDA (RQ /GT) WR (LOCK) M / IO ( S3 ) DT / R ( S3 DEN ( S3 ALE INTA TEST READY RESET,8086,8086/8088引脚信号,28,引脚说明,地址总线和数据总线 AD15AD0:地址数据线,双向、三态 分时复用 每个总线周期T1时刻为地址,其他时刻为数据 A19A16/S6S3:地址状态线,输出、三态 分时复用 每个总线周期T1时刻为地址,其他时刻为状态 S6恒为低,S5反映标志寄存器IF位的状态,29,S4、S3表示CPU正在使用哪个段寄存器,BHE/S7:数据总线高允许/状态S7信号 输出、三态。分时复用做BHE时低电平有效,S7为备用状态线,在DMA时为高阻,30,1.3计算机的程序设计语言,1.机器语言 低级语言 2.汇编语言 程序设计语言 3.高级语言 C/C+、JAVA、 DELPHI,31,1.机器语言,指令机器指令; 机器指令的组成:操作码、操作数; 指令系统; 机器语言:指令系统及使用指令系统编写程序的规则。 机器语言特点:计算机唯一能够直接识别的语言。 目标程序:用机器语言描述的程序。 机器语言的致命缺点:难以使用。如100+256 8086机器语言程序:B8 64 00 05 00 01 A3 00 20,32,2.汇编语言,汇编指令:用便于记忆、并能描述指令功能的符号表示机器指令汇编指令(符号指令)。 助记符:表示指令操作码的符号,一般用英语单词或缩写。指令的操作数也用符号表示。 汇编语言:汇编指令及使用汇编指令编写程序的规则。(其他语言要素第三章介绍) 汇编语言(源)程序:使用汇编语言编写的程序。 汇编语言的特点:汇编指令与机器指令一一对应,但相对机器语言易于理解、掌握,当我们用低级语言编写程序时使用汇编语言而不用机器语言。 汇编和汇编程序:翻译过程 翻译程序。,33,3.高级语言,机器语言和汇编语言以外的程序设计语言统称高级语言。其特点是更加接近自然语言和惯用的数学表达形式,与计算机硬件结构无关,因而便于使用,便于交流和推广。 总之,高级语言编程效率高,但运行效率低。 高级语言可分成编译型和解释型高级语言,分别使用编译程序和解释程序将源程序翻译成机器语言程序,然后交计算机执行。,34,4.汇编语言程序设计的意义,学习汇编语言的意义: 1)与硬件密切相关,是学习硬件类课程的先行课和基础课。 2)有利于理解计算机的工作原理。 3)可直接而有效地控制硬件。 4)执行效率高,占用空间小。 5)特殊应用只能使用汇编语言,如加密解密等。 应该指出的是:在计算机速度大大提高和存储器容量大大增加的今天,高级语言的使用更为广泛和普遍(特别是编写大型程序)。,返回第一章,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!