您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第1章W微机原理,汇编与接口技术课件
12007.6.13微机原理、汇编与接口技术王燕芳21.11.21.31.4计算机的数和编码微型计算机的结构和工作原理80x86微处理器第1章微型计算机基础1.580x86的寄存器80x86的工作方式与存储器物理地址的生成31.1.1计算机中的数制常用数制:约定:十进制数:熟悉在计算机中,数用表示二进制:计算机使用十六进制数:作为二进制数的缩写数后加B表示二进制数数后加/不加D均表示十进制数数后加H表示十六进制数4十进制、二进制、十六进制数之间的关系表十进制二进制十六进制十进制二进制十六进制000000810008100011910019200102101010A300113111011B401004121100C501015131101D601106141110E701117151111F5数制间转换如:1111111000111B→1111111000111B→0001111111000111B=1FC7H十六→二:用4位二进制数代替1位十六进制数1.二←→十六如:3AB9H=0011101010111001B二→十六:•从右(最低位)向左将二进制数4位1组划分,•最后一组若不足4位,则在其左边补0,•每组用1位十六进制数表示。6数制间转换十六→十:将十六进制数按权展开相加十→十六:除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.二←→十(1)十→二:•将整数和小数分别进行转换,然后合并;ו作法:整数部分用〈除2取余法〉;小数部分用〈乘2取整法〉。【例1】将37D转换成二进制数。37D=100101B=25H8数制间转换【例2】将0.625D转换成二进制数。0.625D=0.101B9数制间转换(2)二→十:•使用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)=7997101.1.2符号数的表示方法机器数(实数)用符号和数值两部分表示;机器数的最高位是符号位。最高位为0表示正数,为1表示负数区分:机器数、真值、无符号数掌握符号数的三种常用表示法:原码,反码,补码11•数值用其绝对值•正数的符号位用0表示•负数的符号位用1表示如:X1=105=+1101001B[X1]原=01101001BX2=-105=-1101001B[X2]原=11101001B(1)原码•原码表示的数8位数中:D7位为符号位,其余7位为数值位(真值的绝对值)•8位原码数数值范围:0FFH~7FH(-127~127);16位原码数数值范围:0FFFFH~7FFFH(-32767~32767);12(2)反码13注:一个负数的反码的数值部分并不是其真值的绝对值,要按位取反才能求得真值的绝对值。•正数的反码与原码一样,符号位为0,其余位为其数值;•负数的反码为它的绝对值连同符号位按位取反如:X1=105=+1101001B[X1]反=01101001BX2=-105=-1101001B[X2]反=10010110B(2)反码14正数的补码与原码一样,符号位为0,其余位为其数值;负数的补码为其绝对值的补数补数有两种求法:按位取反后再加1从最低位向最高位扫描,保留直至第一个“1”的所有“0”位,第一个“1”左边各位按位取反如:X1=105=+1101001B[X1]补=01101001BX2=-105=-1101001B[X2]补=10010111B对补码表示的负数求补可以得到其绝对值如:[-105]补=10010111B=97H求补,得:01101001=69H=105,即补码表示的机器数97H的真值是-69H(=-105)(3)补码15注:一个补码数,若最高位为0,则该数即为此数的绝对值;若最高位为1,则其补数为该数的绝对值8位补码数的范围:80H~7FH(-128~127).16位补码数的范围:8000H~7FFFH(-32768~32767)补码数80H和8000H的最高位既代表了符号为负又代表了数值为11个二进制补码数的符号位向左扩展若干位后,所得到的补码数的真值不变如:[68]补=44H→字节,[68]补=0044H→字[-68]补=BCH→字节,[-68]补=FFBCH→字微机中,符号数用补码表示!161.1.3二进制数的加减运算二进制加法规则:二进制减法规则:0+0=00+1=1+0=11+1=0→进位10-0=01-0=11-1=00-1=1→借位1计算机把机器数均当作无符号数进行运算,即符号位也参与运算171)两个无符号数相加----和为正数.当和超过其位数所允许的范围时,向更高位进位,用CF表示如:59+164=3BH+0A4H127+160=7FH+A0H=0DFH=11FH=287无进位,CF=0有进位,CF=1(1)无符号数的运算00111011+101001001101111101111111+10100000100011111进位18192-10=C0H-0AH=B6H=182无借位,CF=010-192=0AH-C0H=-B6H=-182有借位,CF=111000000-000010101011011000001010-11000000101001010借位结论:对无符号数进行减法运算,其结果的符号用进位来判别:CF=0(无借位)结果为正;CF=1(有借位)结果为负如:2)两个无符号数相减----被减数大于或等于减数,无借位,结果为正;被减数小于减数,有借位,结果为负。19两数进行运算,结果超出表示范围会产生溢出;用OF表示(2)符号数的运算如:105+50=155>127,超出范围,产生溢出又如:-105-50=-155<-128,超出范围,产生溢出01101001+0011001010011011=155→视为无符号数,结果正确=-65H→结果为负,错误,溢出,0F=110010111+11001110101100101进位=-155→将进位视为符号,结果正确=65H→结果为正,错误,溢出,0F=120说明:将多位二进制数拆成多部分运算时,数的低位部分均为无符号数,只有高位部分才为符号数注意区分进位与溢出溢出不同于补码运算中的进位或借位丢失如:-50-5=-5511001110+11111011111001001=-00110111B=-55进位丢失结果正确,无溢出21判断补码运算有无溢出的方法: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时,无溢出221.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=01000001B23(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,低电平表示逻辑1241.1.5二进制编码(1)二进制编码的十进制数即用二进制表示的十进制数,简称BCD数(binarycodeddecimal),常用的是8421BCD码计算机里,字母、各种符号以及指挥计算机执行操作的指令,均用二进制数的组合表示,称为二进制编码258421BCD编码表十进制数压缩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=0109H26说明:十进制数与BCD数的转换查8421BCD编码表→直接BCD数转换为二进制数写出BCD数的十进制数→十进制数转换为二进制数二进制数转换为BCD数二进制数转换为十进制数→根据十进制数写出BCD数27(2)ASCII码----字符在机内的表示常用的ASCII码字符如表(P10表1-4):字符ASCⅡ码(H)字符ASCⅡ码(H)0~930~39$24A~Z41~5A换行LF0Aa~z61~7A回车CR0DBlank2028注:(1)十进制数的ASCII码转换成BCD数→减30HBCD数转换成十进制数的ASCII码→加30H(2)将十六进制数的ASCII码转换为十六进制或将十六进制转换为十六进制数的ASCII码,要先判别ASCII码是在哪个区段内,然后再加或减30H或37H。(3)十进制数的ASCII码转换为二进制数:将ASCII码转换为ASCIIBCD数→写出ASCIIBCD数的十进制数→将十进制数转换为二进制数(4)二进制数转换为十进制数的ASCII码→过程与(3)相反291.1.5BCD数的加减运算调整规则:和在0~9之间,保持不变;和大于9,加6调整如:48+59=107BCD数低位与高位之间逢“10”进1,4位二进制数之间逢“16”进1。而计算机按二进制规律运算,故BCD数进行运算后须进行调整(1)BCD数加法1010000101001000+01011001+01100110100000111←BCD数30调整规则:差在0~9之间,不变;差大于9,减6调整如:28-19=90000111100101000-00011001-0000011000001001←BCD数通常在微机中设有二—十进制调整电路,通过调用调整指令来实现调整(2)BCD数减法311.21.11.31.4计算机的数和编码微型计算机的结构和工作原理80x86微处理器第1章微型计算机基础1.580x86的寄存器80x86的工作方式与存储器物理地址的生成32位(bit)——计算机所能表示的最基本、最小的数据单元。1个二进制位有两种状态“0”和“1”字(word)——计算机内部进行数据处理的基本单位,与寄存器、ALU宽度一致每一个字所包含的二进制位数称为字长字节(byte)——8个Bit组成一个字节,存放相邻的8位二制数.
本文标题:第1章W微机原理,汇编与接口技术课件
链接地址:https://www.777doc.com/doc-3399857 .html