微机中的数据类型.ppt_第1页
微机中的数据类型.ppt_第2页
微机中的数据类型.ppt_第3页
微机中的数据类型.ppt_第4页
微机中的数据类型.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

微型计算机原理 学时:56 理论指导实践课程 课程性质及教学目的 微机原理与接口技术是工科计算机及其相关 专业的一门重要的专业技术基础课程。 本课程帮助学生掌握微型计算机的硬件组成 及使用;学会运用汇编语言进行程序设计;树立 起计算机体系结构的基本概念;为后继的软、硬 件课程做好铺垫。 教材及参考书目 n1.80x86汇编语言程序设计沈美明、温冬婵 编著, 清华大学出版社,2001年9月 n2. IBM Pc汇编语言与程序设计第4版:英文 埃布尔著一影印版,清华大学出版社,1998 2 n3. IBM PC汇编语言程序设计实验教程,沈美 明 温冬蝉 张赤红,清华大学出版社 计划学时与学分 n计划学时: 讲课:56学时 实验:8学时 n学分:3.5学分 教学要求 n不迟到,不早退,不旷课 n课前预习 n课堂作笔记,认真完成相应的课堂作业 n课后认真完成相关作业 n作好实验 教学效果 1. 掌握数制、码制等基础理论知识,能较熟练的进行 码制转换,了解数字的各种计算机存储方式 2. 了解计算机组成及其基本原理 3. 掌握80x86的不同寻址方式,并能区别各种不同寻 址方式的异同。 4. 熟练掌握80x86的指令系统,能够用80x86指令系 统编写基本的程序块。 5. 掌握80x86汇编的编程方式,掌握循环、分支、子 程序等基本程序结构。 6. 在了解基础上进一步掌握宏汇编程序设计技术。 7. 掌握微机接口技术和几个主要芯片的基本结构、初 始化和应用编程。 考核方式 n平时成绩:30(到课10,作业20) n考试成绩:70 教学主要内容及学时分配 n第1章. 基础知识(2学时) 1. 进位计数制与不同基数间的转换 2. 二进制和十六进制运算 3. 计算机中的数和字符表示 4. 基本的逻辑运算 n第2章. 80x86计算机组织(4学时) 1. 80x86微处理器 2. 基于微处理器的计算机系统构成 3. 中央处理器 4. 存储器 5. 外部设备 第一章微机中的数据类型 n本章重点: l数据类型 l数据在内存中的存储方式 l带符号数的表示形式:原码、反码、补码 l各种码制之间的互换方式 l补码计算 l溢出判断 n一、数据类型 带符号整数 无符号整数 BCD数 字符串 位 浮点数 n二、数据在内存中的存储方式 字节为单位 高位字节占高地址 低位字节占低地址 n三、数的进位制约定 nB nH nD n各种进制之间的转换! n数制转换: n任意进制数 十进制数 n十进制数 二进制数 十进制整数 二进制数 十进制小数 二进制数 n二进制数 十六进制数 n十六进制数 二进制数 n具体实例补充讲解! 三种数制的对应关系 十 进 制十六进制二进制 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 10 A 1010 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111 补充:计算机的数制 n数制是数的表示方法 n常用计数制: n十进制数:0,1,2,3,4,5,6,7,8,9 n二进制数:0,1 n十六进制数:0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F n八进制数: 0,1,2,3,4,5,6,7 n二十进制数:用四位二进制数表示以位十进制数 n例如:(3456 )10 =(0011 0100 0101 0110)BCD nBCD码是十六进制数的一个子集,10101111是非法BCD码 BCD码与十进制数的转换 二进制十进制BCD码 000000000 000110001 001020010 001130011 010040100 010150101 011060110 011170111 100081000 100191001 101010非法BCD码 101111非法BCD码 110012非法BCD码 110113非法BCD码 111014非法BCD码 111115非法BCD码 组合BCD码与分离BCD码 n组合BCD码(压缩BCD码):一个字节放2位 十进制数 n分离BCD码(非压缩BCD码):一个字节 放1位十进制数,存放在低四位,高四位与 数值无关。 其它进制转换为十进制 n方法:按进位计数制(位置计数法)展开计算后 得到十进制 n例1:将二进制数1101.101转换为十进制数 解: (1101.101)2 =123+122+021+120+12-1+02-2+12-3 =8+4+0+1+0.5+0+0.125 =13.625 其它进制转换为十进制 n例2:将十六进制数2AE.4转换为十进制数 解: 2AE.4H=2162+10161+14160+416-1 =512+160+14+0.25 =626.25 二进制与十六进制的相互转换 n方法:四位二进制对应一位十六进制(整数部 分从右到左,小数部分从左到右) n例1:将1011101001.110101B转换为十六进制 数 解: 整数部分:0010 1110 1001 2 E 9 小数部分:1101 0100 D 4 n故1011101001.110101B=2E9.D4H 二进制与十六进制的相互转换 n 例2:将5A.3BH转换为二进制数 解: 5 A . 3 B n 101 1010. 0011 1011 n故5A.3BH=1011010.00111011B 十进制数转换为二进制数或十六进制数 n方法:整数部分除基数取余,小数部分乘基数 取整。 n例1:将十进制整数(105)10转换为二进制整数。 解: 2 105 2 52 余数为1 2 26 余数为0 2 13 余数为0 2 6 余数为1 2 3 余数为0 2 1 余数为1 0 余数为1 所以,(105)10(1101001)2 十进制数转换为二进制数或十六进制数 例2、将十进制小数(0.8125)10转换为二进制小数,采 用“乘2顺取整”的方法,过程如下: 0.812521.625 取整数位1 0.62521.25 取整数位1 0.2520.5 取整数位0 0.521.0 取整数位1 所以,(0.8125)10(0.1101)2 注意:如果出现乘积的小数部分一直不为“0”,则可 以根据精度的要求截取一定的位数即可。 思考:1、将十进制转换为十六进制? 2、既有整数,又有小数部分的情况? 练习 n将(11.375)10转换为二进制数 n将十进制数301.6875转换为十六进制数 n将BCD码10010110转换为二进制 n四、整数 n1、无符号数 n2、带符号数 原码 反码 补码 移码 正数和负数的区别 二进制数的运算规则: 加法规则: 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 十六进制的运算: 法一:首先转换为十进制数,计算后得到结果;然后,将结果 转换为十六进制。 法二:按照逢十六进一的规则。 二进制数和十六进制数的运算 计算机中的数的表示 n无符号数 n有符号数 无符号数 n无符号数指字节.字.双字整数操作数中 ,对应的8位、16位、32位二进制全部 用来表示数值本身,没有用来表示符号 的位。 n无符号数都是正整数。n位无符号数表 示范围:0 n例:01100000B,10110000B 其十进制 数为96,176。 带符号数 n机器数 n真值 n机器数的表示法 n关于0的问题 n整数补码的运算 n进位和溢出 机器数 机器数:一个带符号数在机器中的表示形 式。最高位定义为符号位,“0”表示正数, “1”表示负数。如: n01100000B,10110000B称机器数 真值 n真值:机器数的数值 n例:X原=01011100 机器数 +01011100 真值 机器数的表示法 n 原码:一个二进制数,最高位表示数 的符号(0正,1负),其余各位表示数值 本身。 n 反码:一个二进制数,若以2n-1为模, 它的补码称为反码(1补码)。 n 补码:一个二进制数,若以2n为模, 它的补码称为补码(2补码)。 机器数的表示法 正 数负 数范围(n位)正0负0 原码0数值1绝对值() () 0000000010000000 反码0数值1按位取反() () 0000000011111111 补码0数值1按位取反+1() () 0000000000000000 机器数的表示法 例1、 若X1=+1010011B X2=1010011B 试求X1,X2的原码,反码,补码。 解:X1原=01010011B X1反=01010011B X1补=01010011B X2原=11010011B X2反=10101100B X2补=10101101B 机器数的表示法 例2、内存中有一字节,内容是10000101, 按不同格式可理解为: 无符号数:133或85H 原码表示法:5 反码表示法:122 补码表示法:123 一个数的物理意义,由程序员却决定。 关于0的问题 0补=10000000B 0补=00000000B 128补=10000000B 关于0的问题 例: 64 1100 0000 + 64 + 1100 0000 128 11000 0000=128补 符号位进位丢掉 128 1000 0000 + + 127 0111 1111 1 1111 1111=1补码 关于-0的问题 若误认为0补=1000 0000B运算会出错 - 0 1000 0000 + + 1 0000 0001 + 1 1000 0001=127补+1 可将-0补=-0反+1=1111 1111+1=00000000 整数补码的运算规则 nX+Y补=X补+Y补 nX-Y补=X补+-Y补 求补运算方法 对补按位取反末位加,就得到补 。 对补按位取反末位加,就得到补。 整数补码的运算 例1、 (66)+(51) 66补=01000010 51补=00110011 01000010 + 00110011 01110101 117 整数补码的运算 例2、 (66)+(51) 66补=01000010 51补=11001101 01000010 + 11001101 00001111 15 整数补码的运算 例3、 (66)+(99) 66补=01000010 99补=01100011 01000010 + 01100011 10100101 91 整数补码的运算 例4、 (66)+(99) 66补=10111110 99补=10011101 10111110 + 10011101 01011010 91 进位和溢出 ()进位最高位向更高位的进位。被 运算器“丢弃”,保存在“进位标志触发器”中 (C标志)。 n有符号数,不能统计在运算结果中。 n无符号数,进位值是结果的一部分。 ()溢出结果超出了寄存器所能表示 的范围,溢出触发器置1(O标志) 有符号数溢出判断双高位判别法 CsCp=1,溢出标志O s表征符号位进位(最高位进位标志) ,有进位Cs=1,否则,Cs=0; Cp表征数值部分的进位(次高位进位标志) ,有进位Cp=1,否则Cp=0; 当Cs=0,Cp=1时,溢出为“正溢出”, Cs=1,Cp=0时,溢出为“负溢出”, 当Cs=0。Cp=0时,无溢出, 当Cs=1,Cp=1时,无溢出 例1、(1) (+100)+(+32) 解:(1)+100补=01100100 +32补=00100000 01100100 + 00100000 10000100 CP=1 CS=0 正溢出,结果出错 (2) (100)+(32) 100补=1001 1100 32补=1110 0000 1001 1100 + 1110 0000 10111 1100 CP=0 CS=1 负溢出,结果出错 对无符号数,只要有进位,即溢出。 n练习:判断溢出(8位计算机字长) n 87(123) n (

温馨提示

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

评论

0/150

提交评论