第1章数据格式及其转换_第1页
第1章数据格式及其转换_第2页
第1章数据格式及其转换_第3页
第1章数据格式及其转换_第4页
第1章数据格式及其转换_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、第第1 1页页教材:教材:IBM-PCIBM-PC汇编语言程序设计汇编语言程序设计主讲教师:陈宏主讲教师:陈宏联系方式:联系方式: 汇编语言程序设计汇编语言程序设计 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第2 2页页第第2页页1. 沈美明,沈美明, 温冬婵温冬婵. 80X86汇编语言程序设计汇编语言程序设计M.北京:清华大学出版社北京:清华大学出版社.2. Peter Abel. IBM PC Assembler Language and Programming M. PrenticeHALL, Inc.3.温冬婵温冬婵, 沈美明沈美明. IBM PC 汇编语言

2、与程序设计例题习题集汇编语言与程序设计例题习题集M 北京:清华大学出版社北京:清华大学出版社.4. 王成端王成端. 汇编语言程序设计汇编语言程序设计M. 北京:高等教育出版社北京:高等教育出版社.参考书目参考书目 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第3 3页页第第3页页FORTRANFORTRANBASICBASICCOBOLCOBOLPASCALPASCALC/C+C/C+JAVAJAVA.汇编语言汇编语言高级语言高级语言机器语言机器语言计算机语言的发展计算机语言的发展 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第4 4页页第第

3、4页页 面向机器的低级语言,通常是为特定的计算机或计算机面向机器的低级语言,通常是为特定的计算机或计算机系列系列专门设计的。专门设计的。 保持了机器语言的优点,具有直接和简捷的特点。保持了机器语言的优点,具有直接和简捷的特点。 可有效地访问、控制计算机的各种硬件设备可有效地访问、控制计算机的各种硬件设备, , 如磁盘、如磁盘、存储器、存储器、CPUCPU、I/OI/O端口等。端口等。 目标代码简短,占用内存少,执行速度快,是高效的程目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。序设计语言。 经常与高级语言配合使用,应用十分广泛。经常与高级语言配合使用,应用十分广泛。汇编语言的特点

4、 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第5 5页页第第5页页第第 1 1 章章 数据格式及其转换数据格式及其转换1.1.熟悉数制的基本概念和计算机中常用进位计数制熟悉数制的基本概念和计算机中常用进位计数制, ,掌握掌握R R进进制的表达和相互转换制的表达和相互转换;2.2.了解机器数和带符号数的原码、反码、补码表示,掌握了解机器数和带符号数的原码、反码、补码表示,掌握ASCIIASCII码和码和BCDBCD码的表达及应用;码的表达及应用;本章要求本章要求1.1.计算机中数制基本概念、数制之间相互转换;计算机中数制基本概念、数制之间相互转换;2.2.计算机中的数

5、据表示、数据的基本类型等;计算机中的数据表示、数据的基本类型等;本章主要内容本章主要内容计划学时:计划学时: 2学时学时 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第6 6页页第第6页页 表示一个数值数据要有三个要素:表示一个数值数据要有三个要素: 进位计数制、小数点和数的正负符号进位计数制、小数点和数的正负符号。 按进位方式计数的数制叫做按进位方式计数的数制叫做进位计数制进位计数制,简称,简称进位制进位制。 一个任意的一个任意的R进制数进制数N,都可写成:,都可写成: NKnKn-1K1K0.K-1K-2K-m KnRn+Kn-1Rn-1+K0R0+K-1R-1+

6、K-mR-m 式中式中m、n为正整数;为正整数; Ri是对应位的是对应位的位权位权; R为对应进制的为对应进制的基数基数。1.1 进位计数制进位计数制【例例】: 二进制数二进制数 1101.1B=123+122+021+120+12-1 【例例】: 十进制数十进制数 567.32D=5102+6101+7100+310-1+210-2 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第7 7页页第第7页页进位计数制进位计数制基数基数简写简写数数 码码二进制二进制2B0,1八进制八进制8O0,1,2,3,4,5,6,7十进制十进制10D0,1,2,3,4,5,6,7,8,9

7、十六进制十六进制16H0,1,2,3,4,5,6,7,8,9A,B,C,D,E,F 所谓所谓基数基数,就是指在该计数制中,就是指在该计数制中每个数位每个数位K Ki i可能用到的数字符号的可能用到的数字符号的个数,其系数可为个数,其系数可为0 0(R R1 1) 。每个数位计满。每个数位计满R R后就向高位进位,即后就向高位进位,即“逢逢R R进一进一”,在,在R R进制数中相邻两个数位的权相差进制数中相邻两个数位的权相差R R倍,亦即当小数点向倍,亦即当小数点向左移一位时,数值缩小左移一位时,数值缩小R R倍;而当小数点向右移一位时,数值扩大倍;而当小数点向右移一位时,数值扩大R R倍。倍。

8、常用进位计数制的基数和符号常用进位计数制的基数和符号 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第8 8页页第第8页页 D01234567 B00000001001000110100010101100111 H01234567 D89101112131415 B10001001101010111100110111101111 H89ABCDEF二进制、十进制及十六进制对应关系二进制、十进制及十六进制对应关系二进制、八进制对应关系二进制、八进制对应关系 B000001010011010101110111 O012345671.2 各种数制间的相互转换各种数制间的相互转

9、换 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第9 9页页第第9页页1.2.1 R进制数转换为十进制数进制数转换为十进制数【解解】: 101101.01B=125+123+122+120+12-2=45.2510 权权数码【例例】:把:把101101.01B转换成十进制数。转换成十进制数。【例例】:将十六进制数:将十六进制数3A9.3CH转换成十进制数。转换成十进制数。【解解】:(:(3A9.3C)16=3162+10161+9160+3161+1216-2 =768+160+9+0.1875+0.046875 =(937.234375)10 方法:按权相加方法:按

10、权相加 NKnRn+Kn-1Rn-1+K0R0+K-1R-1+K-mR-m 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第1010页页第第10页页1.2.2 十进制数转换为二进制数十进制数转换为二进制数 降幂法降幂法 转换方法转换方法: 先给出要转换的十进制数,其次写出所有小于此数的各位二进制权值,然后用要转换的十进制数减去与它最相近的二进制权值,如够减则减去并在相应位记1;否则,该位记0并跳过此位;如此反复,直到该数为0为止。 乘(小数)除(整数)法乘(小数)除(整数)法除法除法:把要转换的十进制的整数部分不断除以除以2 2,并记下余数,直到商为0为止。乘法乘法:把

11、要转换的十进制的小数部分不断乘以乘以2 2,并记下其整数部分,直到结果小数部分为0或达到精度要求为止。 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第1111页页第第11页页 降幂法降幂法小于小于117D的二进制权为:的二进制权为: 64 32 16 8 4 2 1转换结果:转换结果:计算过程:计算过程: 117-26=117-64=53 (a6=1)1 53-25= 53-32=21 (a5=1) 53-24= 21-16= 5 (a4=1)11 5-22= 5 4 = 1 (a2=1) 1-20= 1 1 = 0 (a0=1) (a3=0) (a1=0)0101【

12、例例】:把:把N=117D转换成二进制数。转换成二进制数。 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第1212页页第第12页页 除法除法商商 余数余数计算过程计算过程117/2 = 58 (a0=1 ) 58/2 = 29 (a1=0 ) 29/2 = 14 (a2=1 ) 14/2 = 7 (a3=0 ) 7/2 = 3 (a4=1 ) 3/2 = 1 (a5=1 ) 1/2 = 0 (a6=1 )【例例】:把:把N=117D转换成二进制数。转换成二进制数。 N=117D=1110101B。 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第

13、第1313页页第第13页页【例例】: 把把N=48956D 转换为十六进制数。转换为十六进制数。 降幂法降幂法小于小于N的十六进制权值为:的十六进制权值为: 4096 256 16 1计算过程:计算过程: 48956 - 114096 = 3900 3900 - 15256 = 60 60 - 316 = 12 12 - 121 = 0 N = 48956D = BF3CH1.2.3 十进制数转换为十六进制十进制数转换为十六进制转换结果转换结果(H)(H) B F 3 C 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第1414页页第第14页页【例例】: 把把N=489

14、56D 转换为十六进制数。转换为十六进制数。 除法除法计算过程:计算过程: 余余 数数48956 / 16 = 3059 (a0=12 C) 3059 / 16 = 191 (a1= 3 3) 191 / 16 = 11 (a2= 15 F) 11 / 16 = 0 (a3= 11 B) N = 48956D = BF3CH十进制数转换为十六进制十进制数转换为十六进制 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第1515页页第第15页页转换方法转换方法: : (BH) 由于十六进制数是由于十六进制数是2 2的幂的幂, ,所以这两种数制之间的转换十所以这两种数制之间的

15、转换十分容易分容易, ,即即4 4个二进制数表示一个十六进制数。具体方式,以个二进制数表示一个十六进制数。具体方式,以小数点为中心,整数部分从小数点开始小数点为中心,整数部分从小数点开始往左往左,4 4个二进制数个二进制数为一组,不足位补零。小数部分从小数点开始为一组,不足位补零。小数部分从小数点开始往右往右,4 4个二个二进制数为一组,不足为补零。进制数为一组,不足为补零。【例例】: 把把11010110111111.010011B转换成十六进制数。转换成十六进制数。0011,0101,1011,1111. 0100,1100 3 5 B F 4 C 11010110111111.01001

16、1B = 35BF.4CH1.2.4 二进制和十六进制之间的转换二进制和十六进制之间的转换 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第1616页页第第16页页转换方法转换方法: : (HB) 由于十六进制数是由于十六进制数是2 2的幂的幂, ,所以一个十六进制数用所以一个十六进制数用4 4个二个二进制数表示。具体方式,以小数点为中心,整数部分从进制数表示。具体方式,以小数点为中心,整数部分从小数小数点开始往左点开始往左,1 1个十六进制数符用个十六进制数符用4 4个二进制数表示,零不能个二进制数表示,零不能缺省。小数部分从缺省。小数部分从小数点开始往右小数点开始往

17、右, 1 1个十六进制数符用个十六进制数符用4 4个二进制数表示,零不能缺省。转换完成后个二进制数表示,零不能缺省。转换完成后, ,整数部分最高整数部分最高位的零可以省略位的零可以省略, ,小数部分最低位的零也可以省略。小数部分最低位的零也可以省略。【例例】: 把把7A9.64H转换成二进制数。转换成二进制数。 7 A 9 . 6 4 0111 1010 1001 0110 0100 7A9.64H = 11110101001.011001H二进制和十六进制之间的转换二进制和十六进制之间的转换 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第1717页页第第17页页 r

18、 r进制数运算基本规则:进制数运算基本规则: 逢逢r r进一进一即:即: 十进制数:十进制数: 逢十进一逢十进一 二进制数:二进制数: 逢二进一逢二进一 十六进制数:十六进制数: 逢十六进一逢十六进一二进制数运算规则:二进制数运算规则:加法:加法: 0+0=0,0+1=1,1+0=1,1+1=0(进位(进位1)乘法:乘法: 00=0,01=0,10=0,11=1二进制和十六进制数的运算二进制和十六进制数的运算 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第1818页页第第18页页十六进制数运算十六进制数运算例例: 计算计算 199H+51H=? 199H + 51H

19、1EAH例例: 计算计算 5C3H+3D25H=? 05C3H + 3D25H 42E8H例例: 计算计算 3D25H-5C3H=? 3D25H - 05C3H 3762H 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第1919页页第第19页页1.3.1 机器数机器数与真值与真值 在机器中在机器中, ,把一个数连同其符号在内数值化表示的数把一个数连同其符号在内数值化表示的数, ,称为称为机器数机器数。一般用一般用最高有效位最高有效位来表示数的符号(正负),正数用来表示数的符号(正负),正数用“0 0”表示,负数用表示,负数用“1 1”表示。表示。 D0D7最高位最高位

20、机器字长为机器字长为8 8D0D15最高位最高位机器字长为机器字长为16161.3 数的符号表示数的符号表示 机器数常用的码制有机器数常用的码制有原码、反码原码、反码和和补码补码。 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第2020页页第第20页页原码表示法:原码表示法: 符号符号 + + 绝对值绝对值【例例】:设机器字长为:设机器字长为n,若,若n=8,给出,给出+3,-3,+0,-0的原码的原码。+3原码原码= 0 000,0011 = 03H-3原码原码 = 1 000,0011 = 83H+0原码原码= 0 000,0000 = 0H-0原码原码 = 1

21、000,0000 = 80H 注意:在原码表示中,零不唯一!注意:在原码表示中,零不唯一!数的表示范围(整数):数的表示范围(整数):12) 12(11nnN1.3.2 数的原码表示数的原码表示 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第2121页页第第21页页反码表示法反码表示法:正数的反码同原码,负数的反码正数的反码同原码,负数的反码数值位数值位与原码与原码相反,符号位为相反,符号位为”1”。【例例】:设机器字长为:设机器字长为n,若,若n=8,给出,给出+3,-3,+0,-0的反码的反码。+3反码反码= 0 000,0011 = 03H-3反码反码 = 1

22、111,1100 = FCH+0反码反码= 0 000,0000 = 0H-0反码反码 = 1 111,1111 = FFH 数数的的表表示示范范围围(整整数)数):注意:在反码表示中,零不唯一!注意:在反码表示中,零不唯一!1.3.3 反码表示法反码表示法 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第2222页页第第22页页1.3.4 补码表示法补码表示法 正数的表示与原码一样。负数正数的表示与原码一样。负数X的表示可以用公式描的表示可以用公式描述:述:|2Xn数的表示范围(整数)数的表示范围(整数):12211nnN对不同机器字长对不同机器字长n = 8,16,

23、32,64,其表数范围为:,其表数范围为: n=8 :12277N n=16 :1221515N n=32 :1223131N n=64 :1226363N 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第2323页页第第23页页负数的补码表示负数的补码表示 处理方法:处理方法:(1)写出与该负数相对应的正数的补码;写出与该负数相对应的正数的补码; (2)按位求反;)按位求反; (3)末位加一。)末位加一。【例例】:机器字长为:机器字长为8 8位,则位,则-64D-64D的补码表示为:的补码表示为:+64D 的补码:的补码: 0100 0000按位求反:按位求反: 10

24、11 1111末位加末位加1: 1100 0000用十六进制表示:用十六进制表示: C 0 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第2424页页第第24页页【例例】:机器字长为机器字长为16位,则位,则N=-126D的补码表示:的补码表示:+126D 的补码:的补码: 0000 0000 0111 1110 按位求反:按位求反: 1111 1111 1000 0001 末位加末位加1: 1111 1111 1000 0010 用十六进制表示:用十六进制表示: F F 8 2 【例例】:机器字长为机器字长为16位,则位,则N=-117D的补码表示:的补码表示:+1

25、17D 的补码:的补码: 0000 0000 0111 0101按位求反:按位求反: 1111 1111 1000 1010末位加末位加1: 1111 1111 1000 1011用十六进制表示:用十六进制表示: F F 8 B 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第2525页页第第25页页 十进制数的二进制编码称为BCD码。引入BCD码的目的是为解决日常习惯的十进制数与机器内的二进制数之间的矛盾,使十进制数与二进制数之间的转换更为方便。最常用的是8421BCD码。它对每一位十进制数码用4位二进制编码来表示,十进制数的 09分别对应于00001001。 十进制

26、数的7368用8421BCD码表示为: 0111 0011 0110 1000 BCD码有压缩BCD码和非压缩BCD码二种形式,压缩BCD码的每个字节存放两位BCD码,而非压缩BCD码的每个十进制数字占用一个字节的低4位,其高4位的内容不代表BCD的信息。1.3.5 BCD码码 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第2626页页第第26页页【例例】写出十进制数写出十进制数3131的压缩的压缩BCDBCD码和非压缩码和非压缩BCDBCD码码。 【解解】 31的压缩的压缩BCD码为:码为: 0011 0001 31的非压缩的非压缩BCD码为:码为:0000 001

27、1 0000 0001 十进制数字的十进制数字的8421BCD8421BCD码码十进制数字8421BCD码十进制数字8421BCD码00000501011000160110200107011130011810004010091001 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第2727页页第第27页页 标准的标准的ASCII码共码共128个字符,分为二类:非打印的和可打印的个字符,分为二类:非打印的和可打印的ASCII码。码。 非打印非打印ASCII码:这类编码用于控制性代码,共码:这类编码用于控制性代码,共33个。如个。如: BEL(响铃,(响铃,07H),),

28、DEL(删除,(删除,7FH),), CR (回车,(回车,0DH),), LF (换行,(换行,0AH)等。等。 可打印可打印ASCII码:共有码:共有95个。其中有:个。其中有: 数字数字09的编码的编码 30H39H 大写字母大写字母AZ的编码的编码 41H5AH 小写字母小写字母az 的编码的编码 61H7AH 空格(空格(Space)的编码)的编码 20H 1.3.6 字符编码字符编码 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第2828页页第第28页页求补运算求补运算 :对一个二进制数按位求反、末位加一的运算称:对一个二进制数按位求反、末位加一的运算称

29、为求补运算。为求补运算。补码数具有的特征补码数具有的特征: X补码补码 -X补码补码 X补码补码也可以表示为也可以表示为: X补补补补=-X补补 【例例】: 117补补=0075H, -117补补=FF8BH 117补补为为 0000 0000 0111 0101 按位求反按位求反 1111 1111 1000 1010 末位加末位加1 1111 1111 1000 1011 F F 8 B =-117补补补码的加法和减法补码的加法和减法求补求补求补求补 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第2929页页第第29页页【例例】: 117补补=0075H, -11

30、7补补=FF8BH -117补补为:为: 1111 1111 1000 1011 按位求反:按位求反: 0000 0000 0111 0100 末位加末位加1: 0000 0000 0111 0101 0 0 7 5 =117补补即即: 117补码补码 -117补码补码 117补码补码也可以表示为也可以表示为: 117补补=-117补 求补运算求补运算 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第3030页页第第30页页根据补码的这一特性,可以得到补码加法和减法的表示:根据补码的这一特性,可以得到补码加法和减法的表示:补码的加法和减法补码的加法和减法补码的补码的加法规则加法规则:补补补YXYX补码的补码的减法规则减法规则:补补补YXYX 汇编语言程序设计汇编语言程序设计 第第 1 章章 基础知识基础知识 第第3131页页第第31页页设机器字长设机器字长 n=8n=8 25补=0001 1001 32补=0010 0000 -25补=1110 0111 -32补=1110 0000 25+32=57 0001 1001 + 0010 0000 0011 1001 25+(-32)=-7 0001 1001 + 1110 0000 1111 1001 -25-32

温馨提示

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

最新文档

评论

0/150

提交评论