汇编语言第2章基础知识.ppt_第1页
汇编语言第2章基础知识.ppt_第2页
汇编语言第2章基础知识.ppt_第3页
汇编语言第2章基础知识.ppt_第4页
汇编语言第2章基础知识.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,汇编语言程序设计,2.1 常用数制及其转换 2.2 数与字符的表示方法 2.3 几种基本逻辑运算,第2章 基础知识,汇编语言程序设计 第2章 基础知识,一、数制 二、数制的转换,2.1 常用数制及其转换,汇编语言程序设计 第2章 基础知识,十进制是人最熟悉、最常用的数制,它的基数为10,数码为09,逢十进一。 二进制是计算机中采用的计数法,它的基数为2,数码个数为0、1,逢二进一。 十六进制是为了书写的方便而采用的计数法,它的基数为16,数码为09和af(或A F),逢十六进一。 基数为r的r进制数的值可以表示为 anrn+an-1rn-1+a0r0+b1r-1+b2r-2+bmr-m,2.1 常用数制及其转换,一、数制,汇编语言程序设计 第2章 基础知识,例2.1 (1234.56)10=1103+2102+3101+4100+510-1+610-2 (101101.11)2=125+123+122+120+12-1+12-2=(45.75)10 (3BF)16=3162+11161+15=(959)10,2.1 常用数制及其转换 一、数制,汇编语言程序设计 第2章 基础知识,1. 二、十六进制数转化为十进制数 按位(权)展开 例2.2 (10101)2=24+22+1=21 101.01B=22+1+2-2=5.25 (71)H=716+1=113 101AH=163+16+10=4122,2.1 常用数制及其转换,注意:数制的下标和后缀表示。,二、数制的转换,汇编语言程序设计 第2章 基础知识,D(十进制数) B(二进制数) H(十六进制数) 缺省为十进制数,2.1 常用数制及其转换 二、数制的转换,在汇编语言中的后缀表示:,234D (十进制数) 10110B(二进制数) 4D9H (十六进制数) 47 (十进制数),例如,说明:前导0可以忽略,不影响取值。,汇编语言程序设计 第2章 基础知识,十进制(D) 二进制(B) 十六进制(H) 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F,2.1 常用数制及其转换 二、数制的转换,基本十六进数与二进制、十进制的关系:,汇编语言程序设计 第2章 基础知识,2. 十进制数转化为二进制、十六进制数 整数部分:除以2或16取余数,直到商为0,余数从右到左排列。 小数部分:乘以2或16取整数,直到指定精度,整数从左到右排列。 例2.3 215D=0D7H=11010111B, 215.3511010111.01011B。,2.1 常用数制及其转换 二、数制的转换,注意:排列方向,下页演算,汇编语言程序设计 第2章 基础知识,2.1 常用数制及其转换 二、数制的转换,汇编语言程序设计 第2章 基础知识,另一种转换方法:降幂法 例2.4 N=73D=1001001B。 小于N的二进制权为:64 32 16 8 4 2 1 对应的二进制数为: 1 0 0 1 0 0 1 又如: N=67D=01000011B N=20D=00010100B,2.1 常用数制及其转换 二、数制的转换,汇编语言程序设计 第2章 基础知识,3. 十六进制数转化为二进制数 十六进制数中的一位对应二进制数的四位。 例2.5 2C1DH=0010 1100 0001 1101B 64H=0110 0100B,2.1 常用数制及其转换 二、数制的转换,汇编语言程序设计 第2章 基础知识,4. 二进制数转化为十六进制数 四位二进制数对应一位十六进制数。 整数部分:从右向左进行分组。 小数部分:从左向右进行分组,不足补0。 例2.6 11 0110 1100 .1101 01B=36C.D4H 3 6 C D 4,2.1 常用数制及其转换 二、数制的转换,汇编语言程序设计 第2章 基础知识,一、二进制数运算 二、十六进制数的运算,(补) 二进制数和十六进制数运算,汇编语言程序设计 第2章 基础知识,加法规则: 乘法规则: 0+0=0 00=0 0+1=1 01=0 1+0=1 10=0 1+1=0(进位1) 11=1,二进制数和十六进制数运算,例2.7 11011001 1101 + 01101010 0101 1 01000011 1101 + 1101 1000001,一、二进制数的运算,汇编语言程序设计 第2章 基础知识,(1) 先转换为十进制,经过运算后再把结果转换为十六进制。 (2) 按照逢十六进一的规则,直接用十六进制数来计算。 (3) 先转换为二进制,经过运算后再把结果转换为十六进制。尤其适用于十六进制乘除。,二进制数和十六进制数运算,二、十六进制数的运算,汇编语言程序设计 第2章 基础知识,例2.8 05C3H 3D28H 05C3H + 3D28H - 05C3H 00ABH 42EBH 3765H 3F61 + 399E 3D941,二进制数和十六进制数运算 二、十六进制数的运算,十六进制数乘除不作要求,汇编语言程序设计 第2章 基础知识,一、数的补码表示 二、补码的加法和减法 三、无符号整数 四、字符表示法,2.2 数与字符的表示方法,汇编语言程序设计 第2章 基础知识,机器数:一个数及其符号在机器中的二进制表示。 真值:机器数所代表的数值。 数值数据分为有符号数和无符号数。无符号数最高位表示数值,而有符号数最高位表示符号。 有符号数有不同的编码方式,常用的是补码。 IBM-PC的整数采用补码表示法。,2.2 数与字符的表示方法,一、数的补码表示,汇编语言程序设计 第2章 基础知识,假定一个数在机器中占用8位,即机器字长为8位。,2.2 数与字符的表示方法 一、数的补码表示,(1) 原码 正数的符号位用0表示,负数的符号位用1表示。 0x, 0x +7:0000 0111 +0:0000 0000 x原= 1|x|,x0 -7:1000 0111 -0:1000 0000,(2) 反码 0x, 0x +7:0000 0111 +0:0000 0000 x反= 1|x|,x0 -7:1111 1000 -0:1111 1111,汇编语言程序设计 第2章 基础知识,2.2 数与字符的表示方法 一、数的补码表示,(3) 补码 0x, 0x +7:00000111 +0:00000000 x补= 1|x|+1,x0 -7:11111001 -0:00000000,补码的表示规则: 以最高位作为符号位(0表示正数,1表示负数)。 正数的补码是其本身。 负数的补码是对其正数“各位求反、末位加1”后形成的。(求补运算),汇编语言程序设计 第2章 基础知识,2.2 数与字符的表示方法 一、数的补码表示,+0补=-0补=00000000。 N位二进制补码数可以表示的带符号数范围为-2N-12N-1 -1。 例如,8位二进制补码的数的表示范围为-128+127,16位二进制补码的数的表示范围为-32768+32767。 1000 00000111 1111 1000 0000 0000 00000111 1111 1111 1111 一个带符号的数由补码表示时,当最高位为0时,后七位是数值位;当最高位为1时,后七位取反加1是数值位。例如: 00010101 +21 10010101 -107,补码的特点:,汇编语言程序设计 第2章 基础知识,2.2 数与字符的表示方法 一、数的补码表示,以8位二进制数为例,其表示范围为0255,即256 = 0。若将其想象为一个环,以0为基点,向顺时针方向移249个单位,则得249。然而,若按逆时针方向移动,则该位置就是-7。即 -7 = 0F9H = 249 因此,在8位二进制表示下,对于负数x(-128-1)来说,存在下列等式: -x = 256 -x 或 -x = 0 -x,补码的物理意义:,汇编语言程序设计 第2章 基础知识,2.2 数与字符的表示方法 一、数的补码表示,在计算机内部,补码减法是通过对减数求补后将减法转换为加法进行的。 一个带符号数在不同位数下,其二进制补码表示可能是不同的。例如,8位数-1的补码表示是0FFH, 16位数-1的补码表示是0FFFFH。,说明:,符号扩展与零扩展 符号扩展是将原符号位填入扩展的每一位,使得在带符号数意义下取值不变。 零扩展是将0填入扩展的每一位,使得在无符号数意义下取值不变。,汇编语言程序设计 第2章 基础知识,求补运算:一个二进制数按位求反后在末位加1的运算。求补就是求相反数。 可以证明补码表示的数具有以下特性: 求补 求补 x补 -x补 x补 利用这一特性,计算机中用对减数求补的方法把减法转化为加法。 补码的加法规则:x+y补=x补+y补 补码的减法规则:x-y补=x补+-y补,2.2 数与字符的表示方法,二、补码的加法和减法,汇编语言程序设计 第2章 基础知识,例2.9 补码的加法 十进制 二进制 32 00100000 + (-25) + 11100111 7 1 00000111 自动丢失 25 00011001 + (-32) + 11100000 -7 11111001,2.2 数与字符的表示方法 二、补码的加法和减法,汇编语言程序设计 第2章 基础知识,例2.10 补码的减法转化为加法 十进制 二进制 25 00011001 - 32 + 11100000 -7 11111001 -25 11100111 - (-32) + 00100000 7 1 00000111 自动丢失 注意:例中由最高位向前的进位自动丢失而不影响运行的结果。,2.2 数与字符的表示方法 二、补码的加法和减法,汇编语言程序设计 第2章 基础知识,溢出 当运算结果超出数的表达范围时,称为溢出。溢出并不取决于最高有效位向高位的进位。 例如: 25 00011001 - (-115) + 01110011 140 10001100 (-116) 没有进位,但溢出 又如: -25 11100111 + 115 + 01110011 90 1 01011010 有进位,但没有溢出,2.2 数与字符的表示方法 二、补码的加法和减法,汇编语言程序设计 第2章 基础知识,计算机自身用“双进位法”判断是否产生“溢出”: 补码最左边2个位上的进位相等,没有溢出,反之有溢出 例如: 25 00 0011001 - (-115) + 00 1110011 140 01 0001100 两2进位不同,溢出 又如: -25 11 1100111 + 115 + 00 1110011 90 1 00 1011010 两相同进位,没有溢出,2.2 数与字符的表示方法 二、补码的加法和减法,汇编语言程序设计 第2章 基础知识,同号数和异号数相加使用相同的规则; 有符号数和无符号数加法使用相同的规则 减法可以用加法实现(对于电子计算机内的开关电路, 求补是十分容易实现的),2.2 数与字符的表示方法,补码运算规则的优点:,上述特性可以用来简化运算器电路,简化指令系统。 计算机内的有符号数一般都用补码表示,除非特别说明。,汇编语言程序设计 第2章 基础知识,把最高有效位也作为数值处理的数,称为无符号整数。 无符号数的数值表达范围与带符号数不同,N位二进制数可以表示的无符号数范围为02N -1。 例如,8位二进制数00H0FFH表示0255,16位二进制数0000H0FFFFH表示065535。 在计算机中常用无符号整数表示地址,应注意无符号数与带符号数在处理时的差别。,2.2 数与字符的表示方法,三、无符号整数,汇编语言程序设计 第2章 基础知识,PC机采用ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)来表示西文字符。 常用字符的ASCII有128个,编码从0到127。 P11表1.3采用7位ASCII值。 其中:控制字符032,127;普通字符94个。,2.2 数与字符的表示方法,四、字符表示法,汇编语言程序设计 第2章 基础知识,09 30H39H 4857 AZ 41H5AH 6590 az 61H7AH 97122 空格 20H 32 CR(回车) 0DH 13 LF(换行) 0AH 0,2.2 数与字符的表示方法,注意回车与换行的差别: CR用来控制光标回到当前行的最左端;LF用来移动光标到下一行,而所在列不变。,常用字符的ASCII码:,汇编语言程序设计 第2章 基础知识,压缩BCD码 以4个二进制位表示1个十进制位,用0000B1001B表示09。 例如,十进制数6429的压缩BCD码表示为 0110 0100 0010 1001 B(即6429H),2.2 数与字符的表示方法,BCD码,BCD(Binary Code Decinal),又称8421码。有压缩型BCD码和非压缩型BCD码之分。,汇编语言程序设计 第2章 基础知识,非压缩BCD码 以8个二进制位表示1个十进制位,低4位与压缩BCD码相同,高4位无意义。 例如,十进制数6429的非压缩BCD码表示为 xxxx0110 xxxx0100 xxxx0010 xxxx1001 B 有时,要求非压缩BCD码的高4位为0,这时,6429的非压缩BCD码为06040209H。 可以看出,数字字符 09 的ASCII码恰好是09的非压缩BCD码。,2.2 数与字符的表示方法,汇编语言程序设计 第2章 基础知识,2.2 数与字符的表示方法,浮点数表示,浮点表示法:小数点的位置不固定,一个浮点数分为阶码和尾数两部分。 设字长为32位,可供选择的一种位数分配形式: 1位 8位 23位 规格化的浮点数:为了提高浮点数表示的精度通常规定其尾数的最高位必须 是非零的有效位,称为浮点数的规格化形式。,汇编语言程序设计 第2章 基础知识,2.2 数与字符的表示方法,IEEE754标准浮点数,单精度:32位, 1+8+23 单精度:64位, 1+11+52 规格化后尾数隐藏一位1 阶码采用移码形式127或1023 例: -12: C1400000 0.25: 3E800000 1.5: 3FC00000 1.5: 3FF8000000000000(双精度),汇编语言程序设计 第2章 基础知识,一、 “与”运算(AND) 二、 “或”运算(OR) 三、 “非”运算(NOT) 四、 “异或”运算(XOR),2.3 几种基本的逻辑运算,汇编语言程序设计 第2章 基础知识,“与”运算又称逻辑乘,其运算规则如下表所示,可以概括为“全1出1”。 a b a AND b 0 0 0 0 1 0 1 0 0 1 1 1,2.3 几种基本的逻辑运算,一、“与”运算(AND),主要用于对二进制数的某些位清0。,汇编语言程序设计 第2章 基础知识,“或”运算又称逻辑加,其运算规则如下表所示,可以概括为“有1出1”。 a b a OR b 0 0 0 0 1 1 1 0 1 1 1 1,2.3 几种基本的逻辑运算,二、 “或”运算(OR),主要用于对二进制数的某些位置1。,汇编语言程序设计 第2章 基础知识,“非”运算的运算规则如下表所示,实际上就是“取反”。 a NOT a 0 1 1 0,2.3 几种基本的逻辑运算,三、 “非”运算(NOT),汇编语言程序设计 第2章 基础知识,“异或”运算的运算规则如下表所示,可以概括为“相反出1”。 a b a OR b 0 0 0 0 1 1 1 0 1 1 1 0,2.3 几种基本的逻辑运算,四、 “异或”运算(XOR),主要用于对二进制数的某些位取

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论