微机原理、汇编于接口技术(第二版)课件

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

12007.6.13微机原理、汇编与接口技术朱定华21.11.21.31.4计算机的数和编码微型计算机的结构和工作原理80x86微处理器第1章微型计算机基础1.580x86的寄存器80x86的工作方式与存储器物理地址的生成31.1.1计算机中的数制常用数制----二,十,十六进制为了区别3种不同数制,约定目前在计算机中,数几乎全部用二进制表示为书写方便,微机中的二进制数用十六进制数缩写人们最熟悉、最常用的是十进制数数后加B表示二进制数带D或不带字母符号表示十进制数带H表示十六进制数4十进制、二进制、十六进制数之间的关系表十进制二进制十六进制十进制二进制十六进制000000810008100011910019200102101010A300113111011B401004121100C501015131101D601106141110E701117151111F5数制间转换二进制整数→十六:从右(最低位)向左将二进制数4位1组划分,最后一组若不足4位则在其左边补0,每组用1位十六进制数表示如:1111111000111B→1111111000111B→0001111111000111B=1FC7H十六→二:用4位二进制数代替1位十六进制数1.二←→十六如:3AB9H=0011101010111001B6数制间转换十六→十:将十六进制数按权展开相加十进制整数→十六:除16取余法2.十六←→十如:38947=9823H如:1F3DH=163×1+162×15+161×3+160×13=4096×1+256×15+16×3+1×13=4096+3840+48+13=799716389473162434216152816990余数倒序排列7数制间转换3.二←→十十进制数→二进制数:十进制数→十六进制数→二进制数二进制数→十进制数:二进制数→十六进制数→十进制数使用2n(2n的二进制数等于1后跟n个0)和十六进制数、十进制数的对应关系(如下表所示)以及个别十进制整数和十六进制数的对应关系(如50=32H,80=64H,100=64H等)转换,如:38947=32768+4096+2048+32+3=8000H+1000H+800H+20H+3H=9823H1F3DH=2000H-(80H+40H+3H)=8192-(128+64+3)=799781.1.2符号数的表示方法用数的符号和数值部分一起编码的方法表示符号数8位(字节)、16位(字)或32位(双字)机器数的最高位是符号位。最高位为0→正数,为1→负数区分:机器数、真值、无符号数掌握符号数的三种常用表示法:原码,反码,补码9→数值用其绝对值,正数的符号位用0表示,负数的符号位用1表示如:X1=105=+1101001B[X1]原=01101001BX2=-105=-1101001B[X2]原=11101001B(1)原码10注:原码表示的数,8位数中,D7位为符号位,其余7位为数值位(为真值的绝对值)8位原码数的数值范围为FFH~7FH(-127~127);16位原码数的数值范围为FFFFH~7FFFH(-32767~32767)原码表示简单易懂,且与真值转换方便,但内部运算复杂,为简化计算机结构,引进了反码和补码11注:一个负数的反码的数值部分并不是其真值的绝对值,要按位取反才能求得真值的绝对值正数的反码与原码一样,符号位为0,其余位为其数值;负数的反码为它的绝对值连同符号位按位取反如:X1=105=+1101001B[X1]反=01101001BX2=-105=-1101001B[X2]反=10010110B(2)反码12正数的补码与原码一样,符号位为0,其余位为其数值;负数的补码为其绝对值的补数补数有两种求法:按位取反后再加1从最低位向最高位扫描,保留直至第一个“1”的所有“0”位,第一个“1”左边各位按位取反如:X1=105=+1101001B[X1]补=01101001BX2=-105=-1101001B[X2]补=10010111B对补码表示的负数求补可以得到其绝对值如:[-105]补=10010111B=97H求补,得:01101001=69H=105,即补码表示的机器数97H的真值是-69H(=-105)(3)补码13注:一个补码数,若最高位为0,则该数即为此数的绝对值;若最高位为1,则其补数为该数的绝对值8位补码数的范围:80H~7FH(-128~127).16位补码数的范围:8000H~7FFFH(-32768~32767)补码数80H和8000H的最高位既代表了符号为负又代表了数值为11个二进制补码数的符号位向左扩展若干位后,所得到的补码数的真值不变如:[68]补=44H→字节,[68]补=0044H→字[-68]补=BCH→字节,[-68]补=FFBCH→字微机中,符号数用补码表示!141.1.3二进制数的加减运算二进制加法规则:二进制减法规则:0+0=00+1=1+0=11+1=0→进位10-0=01-0=11-1=00-1=1→借位1计算机把机器数均当作无符号数进行运算,即符号位也参与运算151)两个无符号数相加----和为正数.当和超过其位数所允许的范围时,向更高位进位,用CF表示如:59+164=3BH+0A4H127+160=7FH+A0H=0DFH=11FH=287无进位,CF=0有进位,CF=1(1)无符号数的运算00111011+101001001101111101111111+10100000100011111进位16192-10=C0H-0AH=B6H=182无借位,CF=010-192=0AH-C0H=-B6H=-182有借位,CF=111000000-000010101011011000001010-11000000101001010借位结论:对无符号数进行减法运算,其结果的符号用进位来判别:CF=0(无借位)结果为正;CF=1(有借位)结果为负如:2)两个无符号数相减----被减数大于或等于减数,无借位,结果为正;被减数小于减数,有借位,结果为负。17两数进行运算,结果超出表示范围会产生溢出;用OF表示(2)符号数的运算如:105+50=155>127,超出范围,产生溢出又如:-105-50=-155<-128,超出范围,产生溢出01101001+0011001010011011=155→视为无符号数,结果正确=-65H→结果为负,错误,溢出,0F=110010111+11001110101100101进位=-155→将进位视为符号,结果正确=65H→结果为正,错误,溢出,0F=118说明:将多位二进制数拆成多部分运算时,数的低位部分均为无符号数,只有高位部分才为符号数注意区分进位与溢出溢出不同于补码运算中的进位或借位丢失如:-50-5=-5511001110+11111011111001001=-00110111B=-55进位丢失结果正确,无溢出19判断补码运算有无溢出的方法:01101001+0011001010011011CY=0,CS=1OF=0⊕1=1,有溢出如:105+50CY=1,CS=010010111+11001110101100101OF=1⊕0=1,有溢出-105-50CY=1,CS=111001110+11111011111001001OF=1⊕1=0,无溢出-50-5设符号位向进位位的进位为CY,数值部分向符号位的进位为CS,则溢出判别式为:OF=CY⊕CS当OF=1时,有溢出;当OF=0时,无溢出201.1.4二进制数的逻辑运算与逻辑电路(1)逻辑非→按位求反(2)逻辑乘∧(逻辑与)→按位求“与”如:A=01100001B,B=11001011BA=10011110B,B=00110100B规则:0∧0=0,0∧1=0,1∧0=0,1∧1=1如:01100001B∧11001011B=01000001B21(3)逻辑加∨(逻辑或)→按位求“或”(4)逻辑异或⊕(按位加)→按位求模2和规则:0∨0=0,0∨1=1,1∨0=1,1∨1=1如:01100001B∨11001011B=11101011B规则:0+0=0,0+1=1,1+0=1,1+1=0如:01100001B⊕11001011B=10101010B(5)正逻辑与负逻辑正逻辑——高电平表示逻辑1,低电平表示逻辑0负逻辑——高电平表示逻辑0,低电平表示逻辑1221.1.5二进制编码(1)二进制编码的十进制数即用二进制表示的十进制数,简称BCD数(binarycodeddecimal),常用的是8421BCD码计算机里,字母、各种符号以及指挥计算机执行操作的指令,均用二进制数的组合表示,称为二进制编码238421BCD编码表十进制数压缩BCD数非压缩BCD数(ABCⅡBCD数)十进制数压缩BCD数非压缩BCD数(ABCⅡBCD数)00H(0000B)00H(00000000B)55H(0101B)05H(00000101B)11H(0001B)01H(00000001B)66H(0110B)06H(00000110B)22H(0010B)02H(00000010B)77H(0111B)07H(00000111B)33H(0011B)03H(00000011B)88H(1000B)08H(00001000B)44H(0100B)04H(00000100B)99H(1001B)09H(00001001B)压缩BCD数→用8位二进制数表示2个十进制数位非压缩BCD数→用8位二进制数表示1个十进制数位如:19→压缩BCD→00011001=19H19→非压缩BCD→0000000100001001=0109H24说明:十进制数与BCD数的转换查8421BCD编码表→直接BCD数转换为二进制数写出BCD数的十进制数→十进制数转换为二进制数二进制数转换为BCD数二进制数转换为十进制数→根据十进制数写出BCD数25(2)ASCII码----字符在机内的表示常用的ASCII码字符如表(P10表1-4):字符ASCⅡ码(H)字符ASCⅡ码(H)0~930~39$24A~Z41~5A换行LF0Aa~z61~7A回车CR0DBlank2026注:(1)十进制数的ASCII码转换成BCD数→减30HBCD数转换成十进制数的ASCII码→加30H(2)将十六进制数的ASCII码转换为十六进制或将十六进制转换为十六进制数的ASCII码,要先判别ASCII码是在哪个区段内,然后再加或减30H或37H。(3)十进制数的ASCII码转换为二进制数:将ASCII码转换为ASCIIBCD数→写出ASCIIBCD数的十进制数→将十进制数转换为二进制数(4)二进制数转换为十进制数的ASCII码→过程与(3)相反271.1.5BCD数的加减运算调整规则:和在0~9之间,保持不变;和大于9,加6调整如:48+59=107BCD数低位与高位之间逢“10”进1,4位二进制数之间逢“16”进1。而计算机按二进制规律运算,故BCD数进行运算后须进行调整(1)BCD数加法1010000101001000+01011001+01100110100000111←BCD数28调整规则:差在0~9之间,不变;差大于9,减6调整如:28-19=90000111100101000-00011001-0000011000001001←BCD数通常在微机中设有二—十进制调整电路,通过调用调整指令来实现调整(2)BCD数减法291.21.11.31.4计算机的数和编码微型计算机的结构和工作原理80x86微处理器第1章微型计算机基础1.580x86的寄存器80x86的工作方式与存储器物理地址的生成30位(bit)——计算机所能表示的最基本、最小的数据单元。1个二进制位有两种状态“0”和“1”字(word)——计算机内部进行数据处理的基本单位,与寄存器、ALU宽度一致每一个字所包含的二进制位数称为字长字节(byte)——8个Bit组成一个字节,存放相邻的8

1 / 93
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功