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

下载本文档

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

文档简介

教材:IBM-PC汇编语言程序设计主讲教师:陈宏联系方式:chenhong@

汇编语言程序设计1.沈美明,温冬婵.80X86汇编语言程序设计[M].

北京:清华大学出版社.2.PeterAbel.IBMPCAssemblerLanguageandProgramming[M].Prentice—HALL,Inc.3.温冬婵,沈美明.IBMPC汇编语言与程序设计例题习题集[M]北京:清华大学出版社.4.王成端.汇编语言程序设计[M].北京:高等教育出版社.参考书目FORTRANBASICCOBOLPASCALC/C++JAVA...汇编语言高级语言机器语言计算机语言的发展

面向机器的低级语言,通常是为特定的计算机或计算机系列专门设计的。保持了机器语言的优点,具有直接和简捷的特点。可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。经常与高级语言配合使用,应用十分广泛。汇编语言的特点第1章数据格式及其转换1.熟悉数制的基本概念和计算机中常用进位计数制,掌握R进制的表达和相互转换;2.了解机器数和带符号数的原码、反码、补码表示,掌握ASCII码和BCD码的表达及应用;本章要求1.计算机中数制基本概念、数制之间相互转换;2.计算机中的数据表示、数据的基本类型等;本章主要内容计划学时:2学时

表示一个数值数据要有三个要素:

进位计数制、小数点和数的正负符号。按进位方式计数的数制叫做进位计数制,简称进位制。一个任意的R进制数N,都可写成:

N=KnKn-1…K1K0.K-1K-2…K-m

=Kn·Rn+Kn-1·Rn-1+…+K0·R0+K-1·R-1+…+K-m·R-m

式中m、n为正整数;Ri是对应位的位权;R为对应进制的基数。1.1进位计数制【例】:

二进制数1101.1B=1×23+1×22+0×21+1×20+1×2-1

【例】:

十进制数567.32D=5×102+6×101+7×100+3×10-1+2×10-2

进位计数制基数简写数码二进制2B0,1八进制8O0,1,2,3,4,5,6,7十进制10D0,1,2,3,4,5,6,7,8,9十六进制16H0,1,2,3,4,5,6,7,8,9A,B,C,D,E,F

所谓基数,就是指在该计数制中每个数位Ki可能用到的数字符号的个数,其系数可为0~(R-1)。每个数位计满R后就向高位进位,即“逢R进一”,在R进制数中相邻两个数位的权相差R倍,亦即当小数点向左移一位时,数值缩小R倍;而当小数点向右移一位时,数值扩大R倍。常用进位计数制的基数和符号D01234567B00000001001000110100010101100111H01234567D89101112131415B10001001101010111100110111101111H89ABCDEF二进制、十进制及十六进制对应关系二进制、八进制对应关系B000001010011010101110111O012345671.2各种数制间的相互转换1.2.1R进制数转换为十进制数【解】:

101101.01B=1×25+1×23+1×22+1×20+1×2-2=45.2510

权数码【例】:把101101.01B转换成十进制数。【例】:将十六进制数3A9.3CH转换成十进制数。【解】:(3A9.3C)16=3×162+10×161+9×160+3×16-1+12×16-2=768+160+9+0.1875+0.046875=(937.234375)10

方法:按权相加

N=Kn·Rn+Kn-1·Rn-1+…+K0·R0+K-1·R-1+…+K-m·R-m

1.2.2十进制数转换为二进制数●降幂法

转换方法:先给出要转换的十进制数,其次写出所有小于此数的各位二进制权值,然后用要转换的十进制数减去与它最相近的二进制权值,如够减则减去并在相应位记1;否则,该位记0并跳过此位;如此反复,直到该数为0为止。●乘(小数)除(整数)法除法:把要转换的十进制的整数部分不断除以2,并记下余数,直到商为0为止。乘法:把要转换的十进制的小数部分不断乘以2,并记下其整数部分,直到结果小数部分为0或达到精度要求为止。●降幂法小于117D的二进制权为:

6432168421转换结果:计算过程:

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【例】:把N=117D转换成二进制数。●除法商余数计算过程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。【例】:把N=48956D转换为十六进制数。●降幂法小于N的十六进制权值为:4096256161计算过程:

48956-11×4096=3900

3900-15×256=6060-3×16=1212-12×1=0∴N=48956D=BF3CH1.2.3十进制数转换为十六进制转换结果(H)

B

F

3

C【例】:把N=48956D转换为十六进制数。●除法计算过程:余数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十进制数转换为十六进制转换方法:(B→H)

由于十六进制数是2的幂,所以这两种数制之间的转换十分容易,即4个二进制数表示一个十六进制数。具体方式,以小数点为中心,整数部分从小数点开始往左,4个二进制数为一组,不足位补零。小数部分从小数点开始往右,4个二进制数为一组,不足为补零。【例】:把11010110111111.010011B转换成十六进制数。0011,0101,1011,1111.0100,110035BF4C∴

11010110111111.010011B

=35BF.4CH1.2.4二进制和十六进制之间的转换转换方法:(H→B)

由于十六进制数是2的幂,所以一个十六进制数用4个二进制数表示。具体方式,以小数点为中心,整数部分从小数点开始往左,1个十六进制数符用4个二进制数表示,零不能缺省。小数部分从小数点开始往右,1个十六进制数符用4个二进制数表示,零不能缺省。转换完成后,整数部分最高位的零可以省略,小数部分最低位的零也可以省略。【例】:把7A9.64H转换成二进制数。7A9.6401111010100101100100∴

7A9.64H

=11110101001.011001H二进制和十六进制之间的转换r进制数运算基本规则:逢r进一即:十进制数:逢十进一二进制数:逢二进一十六进制数:逢十六进一二进制数运算规则:加法:

0+0=0,0+1=1,1+0=1,1+1=0(进位1)乘法:

0×0=0,0×1=0,1×0=0,1×1=1二进制和十六进制数的运算十六进制数运算例:计算199H+51H=?199H

+51H

1EAH例:计算5C3H+3D25H=?05C3H

+3D25H

42E8H例:计算3D25H-5C3H=?3D25H

-05C3H

3762H1.3.1机器数与真值

在机器中,把一个数连同其符号在内数值化表示的数,称为机器数。一般用最高有效位来表示数的符号(正负),正数用“0”表示,负数用“1”表示。

D0D7最高位机器字长为8D0D15最高位机器字长为161.3数的符号表示●机器数常用的码制有原码、反码和补码。

原码表示法:符号+绝对值【例】:设机器字长为n,若n=8,给出+3,-3,+0,-0的原码。[+3]原码=0000,0011=03H[-3]原码=1000,0011=83H[+0]原码=0000,0000=0H[-0]原码=1000,0000=80H

◆◆注意:在原码表示中,零不唯一!数的表示范围(整数):1.3.2数的原码表示反码表示法:正数的反码同原码,负数的反码数值位与原码相反,符号位为”1”。【例】:设机器字长为n,若n=8,给出+3,-3,+0,-0的反码。[+3]反码=0000,0011=03H[-3]反码=1111,1100=FCH[+0]反码=0000,0000=0H[-0]反码=1111,1111=FFH

数的表示范围(整数):注意:在反码表示中,零不唯一!1.3.3反码表示法1.3.4补码表示法

正数的表示与原码一样。负数X的表示可以用公式描述:数的表示范围(整数):对不同机器字长n=8,16,32,64,其表数范围为:n=8:n=16:n=32:n=64:负数的补码表示

处理方法:(1)写出与该负数相对应的正数的补码;(2)按位求反;(3)末位加一。【例】:机器字长为8位,则-64D的补码表示为:+64D的补码:01000000按位求反:10111111末位加1:11000000用十六进制表示:C0【例】:机器字长为16位,则N=-126D的补码表示:+126D的补码:0000000001111110

按位求反:1111111110000001

末位加1:1111111110000010

用十六进制表示:FF82

【例】:机器字长为16位,则N=-117D的补码表示:+117D的补码:0000000001110101按位求反:1111111110001010末位加1:1111111110001011用十六进制表示:FF8B

十进制数的二进制编码称为BCD码。引入BCD码的目的是为解决日常习惯的十进制数与机器内的二进制数之间的矛盾,使十进制数与二进制数之间的转换更为方便。最常用的是8421BCD码。它对每一位十进制数码用4位二进制编码来表示,十进制数的0~9分别对应于0000~1001。十进制数的7368用8421BCD码表示为:

0111

0011

0110

1000BCD码有压缩BCD码和非压缩BCD码二种形式,压缩BCD码的每个字节存放两位BCD码,而非压缩BCD码的每个十进制数字占用一个字节的低4位,其高4位的内容不代表BCD的信息。1.3.5BCD码【例】写出十进制数31的压缩BCD码和非压缩BCD码。

【解】

31的压缩BCD码为:0011

000131的非压缩BCD码为:00000011

00000001

十进制数字的8421BCD码十进制数字8421BCD码十进制数字8421BCD码00000501011000160110200107011130011810004010091001

标准的ASCII码共128个字符,分为二类:非打印的和可打印的ASCII码。非打印ASCII码:这类编码用于控制性代码,共33个。如:BEL(响铃,07H),

DEL(删除,7FH),

CR(回车,0DH),

LF(换行,0AH)等。可打印ASCII码:共有95个。其中有:数字0~9的编码30H~39H

大写字母A~Z的编码41H~5AH

小写字母a~z的编码61H~7AH

空格(Space)的编码20H

1.3.6字符编码●求补运算:对一个二进制数按位求反、末位加一的运算称为求补运算。补码数具有的特征:[X]补码

[-X]补码

[X]补码也可以表示为:[[X]补]补=[-X]补

【例】:[117]补=0075H,[-117]补=FF8BH[117]补为0000000001110101

按位求反1111111110001010

末位加11111111110001011FF8B=[-117]补补码的加法和减法求补求补【例】:[117]补=0075H,[-117]补=FF8BH[-117]补为:1111111110001011

按位求反:0000000001110100

末位加1:00000000011101010075=[117]补即:[117]补码

[-117]补码

[117]补码也可以表示为:[[117]补]补=[-117]补

求补运算根据补码的这一特性,可以得到补码加法和减法的表示:补码的加法和减法补码的加法规则:补码的减法规则:设机器字长n=8[25]补=00011001[32]补=00100000[-25]补=11100111[-32]补=1110000025+32=5700011001

+001000000011100125+(-32)=-700011001

+1110000011111001-25-32=(-25)+(-32)=-5711100111

+11100000

111000111丢弃补码的加法和减法进位和溢出进位:由于运算结果超出了位数,最高有效位向前的进位,这一位自然丢失,一般不表示结果的对错。溢出:表示结果超出了字长允许表示的范围,一般会造成结果出错。例:仍设机器字长为8(-64)1100000012701111111

+6401000000

+100000001010000000012810000000

进位

溢出补码的加法和减法“与”运算(AND)“或”运算(OR)

ABA

BABA

B

000

温馨提示

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

评论

0/150

提交评论