资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2012/3/11,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2012/3/11,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2012/3/11,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,第二章,运,算方法和运算器,课程名称:计算机组成原理,授课教师:王铁军,电子邮箱:,tjw,本章内容,计算,机中的信息表示,运算方法,定,点加减法,溢,出判断,定,点乘法,定,点除法,浮,点四则运算,算术、逻辑运算部件,1,、计算机中信息的,表,示,进,位计数制,带符号数表示,数的定点和浮点表示,字,符和字符串表示,汉,字存放,指,令信息的表示,1,.,进位计数制,数码,:用不同的数字符号来表示一种数制的数值,这些数字符号称为数码,。,基,:数制所使用的数码的个数,。,权,:某数制各位所具有的值。(相邻两位权值之比等于基数,),计算机中常用的进位制,二,进,制(,B,),每,个数位仅允许取0或1两种值,逢2进位,借1当2,基数为2。,八,进,制(,O,),所,使用的数码是8个:0,1.,7,逢,8进位,借1当8,基数为8,各位的权是以8为底的幂,。,1,.,进位计数,制(续),计算机中常用的进位,制(续),十,六进,制(,H,),基为16,所用数码为0-9,,A-F,,共16个,逢,16,进位,借1当,16,,各位的权是以16为底的幂。,十,进,制(,D,),二,十进制,为了解决二进制和十进制之间的转换问题,引入了二十进制,即用四位二进制数表示一位十进制数。,对二十进制的运算可先按二进制数运算,如果每位,和,小,于等于9,,不必修正;如果,和大于9,,则作“加六修正”。,1,.,进位计数制(续),各种进位制之间的相互转换(续),十,进制和,R,进制之间的转换,R,进制到,十,进制:,a,n,.a,1,a,0,.a,-1,.a,-m,(,r,),=,a,r,n,+,+a,r,1,+a,r,0,+a,r,-1,+.a,r,-m,例如:,10101(B),101.11(B),101(O),101A(H),=1 2,4,+0 2,3,+1 2,2,+0 2,1,+1 2,0,=2,4,+2,2,+1=21,=2,2,+1+2,-1,+2,-2,=5.75,=8,2,+1=65,=16,3,+16+10,=,4106,1,.,进位计数制(续),各种进位制之间的相互转,换,(续),十进,制和,R,进制之间的转换,十,进,制到,R,进制:,整数部分,:,除以,r,取余数,直到商为,0,,余数从右到左排,列,小数部分:,乘以,r,取整数,整数从左到右排,列,例,如,:,将,一个十进制整数,108.375,转换为二进制整数。,1,.,进位计数制(续),各种进位制之间的相互转,换,(续),十,进制整数转换成八进制整数的方,法:除,8,取余法。,十进制整数转换成十六进制整数的,方法,:,除,16,取余法。,例如,:,将,十进数,108,转换为八进制整数和十六进制整数的演算过程分别如图(,a,)和图(,b,)所示。,1,.,进位计数制(续),各种进位制之间的相互转,换,(续),二进制数与八进制数之间的转,换,二进制数转换成八进制,数,二进制数转换成八进制数的方法是:将二进制数从小数点开始,整数部分从右向左,3,位一组,小数部分从左向右,3,位一组,若不足三位用,0,补足即可。,例,如,:,将,1100101110.1101,(B),转换为八进制数,1,.,进位计数制(续),各种进位制之间的相互转,换,(续),二进制数与八进制数之间的转换,八进,制数,转换成二进制,数,以,小数点为界,向左或向右每一位八进制数用相应的三位二进制数取代,然后将其连在一起即可。若中间位不足,3,位在前面用,0,补足,。,例如,:,将,3216.43,转换为二进制,数,(3216.43),8,11010001110.100011B,1,.,进位计数制(续),各种进位制之间的相互转,换,(续),二,进制数与十六进制数之间的转,换,二进制数转换成十六进制,数,从小数点开始,整数部分从右向左,4,位一组;小数部分从左向右,4,位一组,不足四位用,0,补足,每组对应一位十六进制数即可得到十六进制数,。,例,如:,将,二进制数,1101101110.110101B,转换为十六进制,数,1101101110.110101B,36E.D4 H,1,.,进位计数制(续),各种进位制之间的相互转,换,(续),二进制数与十六进制数之间的转,换,十六进制数转换成二进制,数,以小数点为界,向左或向右每一位十六进制数用相应的四位二进制数取代,然后将其连在一起即可。,36E.D4H,1101101110.110101B,1,.,进位计数制(续),各种进位制之间的相互转,换,(续),八进,制数,与十六进制数之间的相互转,换,八,进制数与十六进制数之间的转换,一般通过,二进制数作为桥梁,,即先将八进制或十六进制数转换为二进制数,再将二进制数转换成十六进制数或八进制数。,2,.,带,符号数的,表示,真值:用正负号加绝对值表示的数值。,机器数:在计算机内部,连同数符一起数码,化的,数,。,原,码表示法,让数码序列的最高位为符号位,符号位为0表示该数为正,为1表示该数为负。定义如下:,1,),定点小数的原码序列为,X,0,.X,1,X,2,X,n,X,原,=,X,0,X 1,1 X=1+|,X|-,1,X 0,2,.,带符号数的表,示(续),原码表示,法,(续),2)定点整数的原码序列为,X,n,X,n-1,X,1,X,0,3,),结论,:,真值0有+0和-0之分。,对,于小数原码,表示范围,-1,X,1,对,于整数原码,表示范围,-2,n,X,2,n,符,号位不是数值的一部分,是人为地约定“0正1负,”,X,原,=,X,0,X,2,n,2,n,X=2,n,+|,X|-2,n,X 0,方,便进行乘除运算,不适,合进行加减运算,2,.,带符号数的表示(续),补,码表示法,1,)补码定义,统,一定义为:,X,补,=,M+X,(,mod,M,),正,数模舍去,负数模减去真值的绝对值。,2,)定,点小数补码序列为,X,0,.X,1,X,2,X,n,,,则定义为,:,X,补,=,X,0,X,1,2+X=2-|,X|-1,X 0,例,:,x=,-0.1011,x,补,=10+x=10.0000-0.1011=1.0101,y=-,0.01111,y,补,=10+y=10.00000-0.01111=1,.,10001,2,.,带符号数的表,示(续),补码表示法(续),3,),定点整数序列,X,n,X,n-1,X,1,X,0,,,则定义为:,4,),由真值、原码转换为补码,正,数补码表示与原码相,同,负,数原码转换为补码方法有二:,“,变反加,1”,符号位保持为,1,不变,其余各位先变反,然后,在末,位加,1,。,符,号位保持为,1,不变,尾数部分自低位向高位,第一个,1,及其,以前,的各,低位,0,都保持不变,以后的各位则按位变反,。,X,补,=,X,0,X,2,n,2,n+1,+X=2,n+1,-|,X|-2,n,X,0,2,.,带符号数的表,示(续),补码表示法(续),例:求下列值对应,8,位字长的补码。,若,X=0.1011,若,X=,-,0.1011,若,X=1011,若,X=,-,1011,5,),由补码表示转换为原码与真值,对,于正数:,X,原,=,X,补,对,于负数:,X,原,=,X,补,补,6,),已知,X,补,求-,X,补,对,于,X,补,连同符号位一起各位变反末尾加1,X,补,=0.101 1000,X,补,=1.010 1000,X,补,=,0000 1011,X,补,=1111 0101,2,.,带符号数的表示(续),补码表示,法,(续),讨,论:,补,码最高位作为符号位,“,0,正,1,负”,但补码的符号位是数值的一部分。,补,码表示中,数值,0,只有一种表示。,负,数补码的表示范围比原码稍宽一些,即多一种组合。,补,码可实现化减为加,。,2,.,带符号数的表示(续,),反码表示法,正,数的反码表示与原码相同;负数反码的符号位为1,尾数由原码尾数逐位变反。,定点小数反码序列为,X,0,.X,1,X,2,X,n,,,则定义为,:,定点整数的反码序列,X,n,X,n-1,X,1,X,0,,,则定义,为:,X,反,=,X,0,X,2,n,(,2,n+1,-1)+X,-2,n,X 0,X,反,=,X,0,X 1,(,2-2,-n,)+X,-1,X,0,2,.,带符号数的表示(续,),移,码(增码),移,码是,符号位取反的补码,一般用做浮点数的阶,码。,设,定点整数移码序列为,X,m,X,2,X,1,X,0,,,则定义为:,x,移,=2,m,+X,-,2,m,X 2,m,结论:,最高位为符号位,1正0负,零的移码是唯一的,1000000,,,除,符号位外,移码各位与补码同,用移码表示便于比较数的大小,移码大真值就大,移码小真值就,小,将十进制真值,(,-,127,-,1,0,+,1,+,127,),列表表示成二进制数及原码、反码、补码、移码值。,真值,x,(十进制),真值,x,(二进制),x,原,x,反,x,补,x,移,-127,-0111 1111,1111 1111,1000,0000,1000 0001,0000 0001,-1,-0000 0001,1000 0001,1111,1110,1111,1111,0111,1111,0,1000 0000,1111 1111,0000 0000,0000 0000,1000 0000,0000 0000,0000 0000,+1,+,0000 0001,0000 0001,0000 0001,0000 0001,1000 0001,+127,+,0111 1111,0111,1111,0111 1111,0111 1111,1111 1111,3,.,数,的定点表示与浮点表,示,定,点表示法,在,计算机中小数点的位置固定不变的数叫做,定,点数,。,1,)无符号定点整数,略去符号位的正整数,小数点位于最低位之后,实际是不存在的。,若无符号定点整数的代码序列,为,X,n,X,n-,1,X,1,X,0,,则有:,最,大整数,2,n+1,1 11111,最小非零正数,1 00001,表示范,围 0,2,n+1,1,分,辨率,1,3,.,数的定点表示与浮点表,示(续),定点表示,法(续),2,)带符号定点整数,原码定点整数表示范围:,-(,2,n,1),(,2,n,1),补码定点整数表示范围:,-,2,n,(,2,n,1),分辨率均为1,3)带符号定点小数,原码定点小数表示范围:,-,(1,2,n,),(,1,2,n,),补码定点小数表示范围:,-,1,(,1,2,n,),分辨率均为:,2,-,n,以定点整数为,例,,,用,数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。,-1,0,+,1,-,(,2,n,-1),1000,1110,0000,0001,0111,+(,2,n,-1),-1,0,+,1,-,(,2,n,-1),1001,1111,0000,0001,0111,+(,2,n,-1),-,2,n,1000,-1,0,+,1,-,(,2,n,-1),1111,1001,0000,0001,0111,+(,2,n,-1),1111,原码,反,码,补,码,1,000,例:,设,机器字长,16,位,定点表示,尾数,15,位,数符,1,位,问,:,(,1),定点原码整数表示时,最大正数是多少,?,最小负数是多少,?,(,2),定点原码小数表示时,最大正数是多少,?,最小负数是多少,?,(1),定点原码整数表示,最,大正数值,(,2,15,1),10,(,+,32767),10,最,小负数值,-(2,15,1),10,(,-,32767),10,(2),定点原码小数表示,最大正数值,(1,2,-15,),10,(+0.111.11),2,最,小负数值,-(1,2,-15,),10,(,-,0.111,.,11),2,3,.,数,的定点表示与浮点表,示,(续),浮,点表示法,1,)浮点数的格式,N=R,E,M,N,为真值,,R,E,为比例因子,,M,为尾数,E,为正,尾数,M,扩大若干倍,,E,为负,尾数,M,缩小若干倍;,R,是阶码的底,与尾数的基相同,。,M,n,M,2,M,1,M,f,E,m,E,2,E,1,E,f,阶码,E,阶符,数符,尾数,M,3,.,数,的定点表示与浮点表,示,(续),IEEE 754,标,准,标准,规,定了单精度,(32),和双精度,(64),的基本格,式,标准,中,,,尾,数用,原,码,,,指,数,用类似,移码,的形式,3,.,数的定点表示与浮点表示(续),IEEE 754,标,准(续),基数,R=2,,基数固定,采用隐含方式来表示它。,32,位的浮点数:,S,数的符号位,,1,位,在最高位,“,0,”表,示正数,“,1,”表,示负数。,M,是尾数,,23,位,在低位部分,采用纯小数表,示,最高位始终为,1,。,3,.,数的定点表示与浮点表示(续),IEEE 754,标,准(续),E,是阶码,,8,位,采,用类似移码的形式表示。此时,可方便比,较大,小。,规格化:若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是惟一的。,若阶码在,0,和,2,8,-1,之间,则尾,数,域最左位,(,最高有效位,),总是,1,,故这一位经常不予存储,而认为隐藏在小数点的左边。,采用这种方式时,将浮点数的指数真值,e,变成阶码,E,时,应将指数,e,加上一个固定的偏移值,127(01111111),,即,E=e+127,。,3,.,数的定点表示与浮点表示(续),IEEE 754,标准(续,),64,位的浮点数中符号位,1,位,阶码域,11,位,尾数域,52,位,指数偏移值是,1023,。,因,此规格化的,64,位浮点数,x,的真值为:,x=(-,1),S,(1.M),2,E1023,其,中,,e=E,1023,一个规格化的,32,位浮点数,x,的真值表示,为,:,x=(-,1),S,(1.M),2,E127,其中,,e=E,127,3,.,数的定点表示与浮点表示(续),IEEE 754,标准(续),真值,x,为零表示:当阶码,E,为全,0,且尾数,M,也为全,0,时的值,结合符号位,S,为,0,或,1,,有正零和负零之分。,真值,x,为无穷大表示:当阶码,E,为全,1,且尾数,M,为全,0,时,结合符号位,S,为,0,或,1,,也有,+,和,-,之分。,3,.,数的定点表示与浮点表示(续),IEEE 754,标准(续),这样在,32,位浮点数表示中,要除去,E,用全,0,和全,1,(,255 D,)表示零和无穷大的特殊情况,指数的偏移值选,127,(,01111111,)。对于规格化浮点数,,E,的范围变为,0,到,255,,真正的指数值,e,则为,-127,到,+128,。因此,32,位浮点数表示的绝对值的范围是,10,-38,10,38,。,浮点数所表示的范围远比定点数大。一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。而单片机中多采用定点表示。,3,.,数的定点表示与浮点表示(续),IEEE 754,标准(续),浮点数表示范围如下图所,示,:,上溢 阶码,最大阶码,下溢 阶码,最小阶码 按 机器零,处理,3,.,数的定点表示与浮点表示(续),IEEE 754,标准(续),例,1,若浮点数,x,按,754,标准存储格式为,(41360000),16,,求其浮点数 的十进制数值。,解,:将,16,进制数展开后,可得二制数格式,为:,0,100,00010 011,0110 0000 0000 0000 0000,S,阶码,(8,位,),尾数,(23,位,),指,数,e=,阶码,127=10000010,01111111=00000011=(,3),10,包,括隐藏位,1,的尾数,1.M=1.011,0110 0000 0000 0000,0000=1.011011,于,是有,x=(-1),S,1.M2,e,=+(,1.011011),2,3,=+1011.011=(,11.375),10,3,.,数的定点表示与浮点表示(续),IEEE 754,标准(续),例,2,将,数,(20.59375),10,转换成,754,标准的,32,位浮点数的二进制存储格式。,解:首先,分,别将整数和分数部分转换成二进制数:,20.59375=10100.10011,然后移动小数点,使其在第,1,,,2,位之间,10100.10011=1.010010011 2,4,有,e=4,,于,是得到:,S=0,E=4+127=131,M=10000011,最,后得到,32,位浮点数的二进制存储格式为:,01000001101001001100000000000000=(41A4C000),16,作,业,1,:,若,浮点数的格式如下,阶码部分,m+1,位,含一位阶符,补码表示,以2为底;尾数部分,n+1,位,含一位数符,补码表示规格化,求其典型值,(,最小的正数、负数,最大的正数和、负数,),。,M,n,M,2,M,1,M,f,E,m,E,2,E,1,E,f,阶码,E,阶符,数符,尾数,M,m+1,位浮点整,数,,表示范围:,n+1,位浮点小,数,(对阶,),最,大正小,数,:,最,小正小,数,:,绝,对值最大负小,数,:,绝,对值最小负小,数,:,典型值,浮点数代码,真值,最小正数,最大,负,数,最大正数,最小,负,数,100,0.100,1.100,100,011,0.11.1,011,1.000,从,-2,m,到,2,m,-1,1-2,-n,2,-1,-1,-2,-1,3,.,数的定点表示与浮点表示(续),IEEE 754,标准(续),例,3,假,设由,S,E,M,三个域组成的一个,32,位二进制,字所表示,的非零规格化浮点,数,x,,真,值表示为(,非,IEEE754,标准,):,x,(,1),s,(1.,M,)2,E,128,问,:它所表示的规格化的最大正数、最小正数,、最,大负数、最小负数是多,少?,(1),最大正,数,0 1111 1111 111 1111 1111 1111 1111 1111,,,x,1,(1,2,-23,)2,127,(,2),最小正数,000,000 000000 000 000 000 000 000 000,00,,,x,1.02,128,(3),最小负数,111,111 111111 111 111 111 111 111 111,11,,,x,1,(1,2,23,)2,127,(4),最大负,数,100,000 000000 000 000 000 000 000 000,00,,,x,1.02,128,4.,字符和字符串的表示,符号数据:字符信息用数据表示,如,ASCII,等;,字符表示方法,ASCII,:用,一个字节来表示,低,7,位用来编码,(128),,最高位为校验位。,常,用字符有,128,个,编码从,0,到,127,。,空格,20H,32,0,9,30H,39H 48,57,A,Z,41H,5AH 65,90,a,z,61H,7AH 97,122,控制字符:,0,32,,,127,;普通字符:,94,个,每,个字符占一个字节,,用,7,位,最高位,为奇偶校验位。,5,.,汉,字的存,放,汉字的表示方,法,输入码,区位码,一级(,1655,)*,94,二级(,5687,)*,94,图形符号(,682,个),(,0109,)*,94,拼音、五笔,汉字内码:汉字信息的存,储,、,交,换和检索的机内代码,两个字节组成,每个字节高位都为,1,(区别于英文字符),区位码,+2020H=,国标码,国标码,+8080H=,机内码,5,.,汉,字的存,放(续),汉字的表示方,法(续),汉,字字模码:汉字字形,点阵,汉字库,6,.,指,令信息的表示,指令:指示计算机执行某类操作的信息的集合。,本节主要讨论:一般,指令格式,常用,寻址方式,面向用户,指令类型,一、指令格式,指令基本格式,操作码,地址码,D,一个,一个或几个,1),指令字长,定长指令格式,变长指令格式,便于控制,(,1,)定长操作码,各指令,的位置、位数固定相同。,(,2,)扩展操作码,各指令,的位置、位数不固定,根据需要,变化。,合理利用存储空间,2),操作码结构,关键在设置扩展标志。,例,.,指令字长,16,位,可含有,3,、,2,、,1,或,0,个地址,每个地址占,4,位,。,操作码 地址码,15 12 11 8 7 4 3 0,0000,X,Y,Z,1110,X,Y,Z,.,.,.,.,1111,0000,Y Z,1111,1110,Y Z,.,.,.,.,三地址指令,15,条,二地址指令,15,条,1111,1111,0000,Z,1111 1111,1110,Z,.,.,.,.,一地址指令,15,条,1111,1111,1111,0000,1111 1111,1111,1111,.,.,.,.,零地址指令,16,条,(,3,)复合型操作码,操作码分为几部分,每部分表示一种操作。,例,.,某机算逻指令,3),地址结构,0 1 2 3 4 5 6 7 8 15,基本操作 进位 移位 回送 判跳 操作数,指令中提供的地址数,存储单元地址码,寄存器编号,(,1,)指令提供地址的方式,显地址方式,隐地址方式,:,指令中明显指明地址。,:,地址隐含约定,不出现在指令中。,直接或间接给出,(,2,)地址结构的简化,操作数地址,四地址结构指令,格式:,使用,隐地址,可以减少指令中的地址数,,简化,地址结构,。,D1 D2 D3 D4,结果地址,下条指令地址,功能:,(D1),(D2)D3,(D4),下条指令,用指令计数器,PC,指示指令地址,三地址结构指令,格式:,操作数地址,D1 D2 D3,结果地址,下条指令地址,功能:,转移时,用转移,地址修改,PC,内容。,(D1),(D2)D3,(PC)+1 PC,源,/,目的,二地址结构指令,格式:,D1 D2,目的,/,源,功能:,(D1),(D2)D2/D1,(PC)+1 PC,双操作数:,一地址结构指令,格式:,D1,隐含约定,单操作数:,功能:,零地址结构指令,格式:,(D1),(A)A,(PC)+1 PC,(D1)D1,(PC)+1 PC,功能:,用于堆栈或特殊指令操作。,例,.ADD,;,执行前:,低,SP,10,20,46,SP,30,46,执行后:,高,低,高,4,),指,令字长,CISC,化,RISC,化,:从增强指令系统功能出发,指令功能复杂。,:从提高指令执行效率出发,指令功能简单。,大规模集成电路技术的迅速发展,使计算机系统中的硬件成本不断下降。此时可在指令系统中增加更多的指令和复杂指令,以适应不同应用领域的需要。,CISC,化,另外,为了维护系列机的软件兼容性,也使指令系统变得越来越庞大。,微程序控制,RISC,化,通过简化指令使计算机的结构更简单合理,从而提高处理速度。其主要途径是减少指令的执行周期数。,组合逻辑控制,二、寻址方式,是指,寻找操作数地址或操作数的方式,。,操作码,立即数,S,(,1,)立即寻址,指令直接给出操作数。,1),常见寻址方式,定长格式:,变长格式:,基本指令,立即数,S,数在指令中,其长度固定、有限。,数在基本指令之后,其长度可变。,用来提供常数、设置初值等。,操作码,有效地址,D,(,2,)直接寻址,指令直接给出操作数地址。,存储单元号,寄存器号,(,数在,M,中,),(,数在,R,中,),存储器直接寻址,(直接寻址),定长格式,D,的位数有限,限制访存范围,变长格式,基本指令,D,L,D,H,D,的位数可覆盖,整个存储空间,S=,(,D,),操作码,寄存器号,R,存储单元号,寄存器号,(,数在,M,中,),(,数在,M,中,),寄存器直接寻址,(寄存器寻址),格式,R,所占位数少;,访问,R,比访问,M,快,格式,S=,(,R,),用于访问固定的存储单元或寄存器。,(,3,)间接寻址,指令给出操作数的间接地址。,存储器间址,操作码,间接地址,D,D=0030,0060,.,0060,S,.,S=(D),M,间址单元,地址指针,操作码,寄存器号,R,寄存器间址,格式,R,所占位数少;,R,可提供全字长地址码;,修改,R,内容比修改,M,内容快。,格式,S=(R),指针不变,(,由指令指定,),,指针内容可变,使同一指令可指向不同存储单元,以实现,程序的循环,、,共享,,并,提供转移地址,。,堆栈寻址,操作码,堆栈指针,S,P,SP,.,S,.,S=(SP),M,R=02,M,0040,0040,S,.,.,.,地址指针,0070,.,栈顶,格式,SP,既可出现在,指令中,也可隐含约定。,变址寻址,(,4,)变址、基址寻址及其变化,SP,栈顶,M,S,.,.,.,低,高,堆栈向上生成,压栈:,SP,自动减,1,,再存数。,-(SP),,,自减型间址,。,先取数,,SP,再自动加,1,。,(SP)+,,,自增型间址,。,出栈:,指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,操作码,R,X,D,D,的位数有限,若不能提供全字长地址码,会使访存空间受到限制,。,变址寄存器号,例,.,用变址方式访问一组连续区间内的数组元素。,S=(,(R,X,),+,D,),D=,首址,D,为存储区首址;,(R,X,),为所访单元距离,首址的长度;,R,X,初值为,0,,每访问一,个单元,,(R,X,)+1,。,格式,操作码,R,X,D,形式地址,修改量,基准地址,n-1,.,0,1,2,.,D+1,D+2,D+n-1,.,格式,(,D,的位数只需覆盖一个较小的存储区间),基址寻址,基址寄存器号,R,b,4K,指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,操作码,R,b,D,位移量,S=(,(R,b,),+,D,),基准地址,相对于基址的位移,M,.,.,.,.,R,b,4K,改变,R,b,的内容,程序能访问存储空间中任何一个定长区间,(4K),。,便于访问两维数组中某类,指定的元素。,4K,4K,R,b,M,.,.,.,.,R,b,D=2,D=2,学生姓名,性别,性别,年龄,年龄,学生姓名,变址与基址的区别:,变址,:指令提供,基准量,(,不变,),,,R,提供,修改量,(,可变,),;适,于处理一维数组。,基址,:指令提供,位移量,(,不变,),,,R,提供,基准量,(,可变,),;用,于扩大有限字长指令的访,存空间。,S=(R,X,)+(R,b,)+D),格式,基址加变址,变址寄存器号,指令给出两个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,位移量,操作码,R,X,R,b,D,基址寄存器号,便于处理两维数组。,格式,相对寻址,指令给出位移量,,PC,内容与位移量之和为有效地址。,位移量,操作码,PC,D,或隐含指定,S=(PC),+,D),有效地址相对,PC,上下浮动,给编程带来方便,。,格式,页面寻址,指令给出位移量,,PC,的高位部分,与位移量拼接,形成有效地址。,位移量,操作码,PC,D,或隐含指定,S=(,(PC),H,,,D,),例,.M,为,64KB,,划分为,256,页,每页,256B,。,页号,页内地址,用于页式管理存储系统。,寻址速度快,适于组织程序模块,,有效利用存储空间。,PC,0165H,7C,.,.,.,017CH,S,2),对寻址方式的说明,(,1,)操作码隐含说明不同寻址方式,例,.,某机指令操作码最高两位,00,:,RR,型指令,寄存器,-,寄存器寻址,01,:,RX,型指令,寄存器,-,变址寻址,10,:,SI,型指令,,存储器,-,立即寻址,11,:,SS,型指令,,存储器,-,存储器,寻址,(,2,)指令中设置专门字段说明寻址方式,例,.,某机指令的每个地址字段中各设置一个,3,位的寻址方式字段。,操作码,寻址方式,R,寻址方式,R,源地址字段,目的地址字段,3,位,3,位,一种单指令格式如下所示,其中,I,为间接特征,,X,为寻址模式,,D,为形式地址,,I,、,X,、,D,组成该指令的操作数有效地址,EA,,设,R,为变址寄存器,,(R)=1000 H,,,PC,为程序计数器,,(PC)=2000 H,,,D=100 H,,存储器有关数据如下表。,指令格式:,有关数据:,参照以上信息,请将下列表格填写完整。,OP,I,X,D,地址,0080 H,0100 H,0165 H,0181 H,1000 H,1100 H,2100 H,数据,40 H,80 H,66 H,100 H,256 H,181 H,165 H,寻址方式,I,X,有效地址,EA,操作数,直接寻址,0,00,相对寻址,0,01,变址寻址,0,10,寄存器直接寻址,0,11,间接寻址,1,00,变址间接寻址,1,10,寄存器间接寻址,1,11,EA=D,EA=(PC)+D,EA=,(R)+D,EA=,R,EA=,(D),EA=,(R)+D),EA=,(R),80 H,165 H,181 H,1000 H,40 H,100 H,256 H,三、指令类型,1),传送指令,源地址 目的地址,数,设置时需考虑:,(,1,)规定传送范围,例,.DJS-100,系列:,8,0,X86,:,IBM370,:,R,M,R,M,,,R,R,R,M,,,R,R,,,M,M,(,2,)指明传送单位,例,.,用操作码说明,(VAX-11),:,用地址量说明,(8,0,X86),:,传送次数由计数器控制,MOV,B,8,MOV,AX,,,BX,(16),MOV,W,16,MOV,L,32,MOV,AL,,,BL,(8),MOV,EAX,,,EBX,(32),例,.80X86,的串传送指令:,REP,MOVSW,(,3,)设置寻址方式,在寻址方式的设置上几乎不受限制,能比较,集中地反映指令系统各种寻址方式的实现。,2),输入,/,输出指令,各种信息,主机 外设,设置时需考虑:,(,1,),I/O,指令的功能扩展,如何用通用,I/O,指令实现对各种具体设备的控制?,I/O,指令中留有扩展余地,指令中某些字段编码事先不定义,需要时再约定,其含义。,I/O,接口中设置控制,/,状态寄存器,用于外设种类、数量不多的场合。,(,2,)主机对外设的寻址方式,如何设置控制,/,状态寄存器是接口设计的关键。,寻找,I/O,接口中的寄存器的方式。,主机用,输出指令,或,传送指令,将具体设备的控制命令,按约定的代码格式送往接口中的,控制寄存器,,向外,设发出命令。,外设的状态信息也以某种格式放在接口的状态寄存,器中,主机用,输入指令,或,传送指令,从,状态寄存器,中,取出有关信息进行查询、分析。,I/O,端口,寻找,I/O,接口中的寄存器,的方式。,如何为,I/O,端口分配地址?,单,独编址,I/O,地址空间不占主存空间,可与主存空间重叠。,=1,访问存储器,=0,访问,I/O,端口,需设置标志区分访问对象,如,编址到寄存器,:为每个寄存器(I/O端口)分配独,立的端口地址;,I/O指令中给出端口地址。,M/IO,统一编址,I/O,端口占据部分主存空间。,常将存储空间的低端分配给主存单元,高端分配,给,I/O,端口,以示区分。,编址到寄存器,设置,专用,I/O,指令,针对单独编址,用,I/O,指令访问,I/O,端口。,指令中说明输入,/,输出操作,并给出端口地址。,:为每个寄存器,(I/O,端口,),分配总,线地址;,访问外设时,指令中给出总线地址。,(,3,),I/O,指令设置方式,显式,I/O,指令,例,.80X86I/O,指令设置,输入:,IN AL,,,n,;,端口地址,(n)AL,(,直接端口寻址,),IN AL,,,DX,;,间接端口地址,(DX)AL,(,间接端口寻址,),输出:,OUT n,,,AL,;,(AL)n,(,直接端口寻址,),OUT DX,,,AL,;,(AL)(DX),(,间接端口寻址,),主机调用输入机:,用,传送指令,实现,I/O,操作,针对统一编址,用传送指令访问,I/O,端口。,不设专用,I/O,指令。,例,.,某机,I/O,接口中设置,控制,/,状态寄存器,CSR,其总线地址为,177550,(8,进制,),数据缓冲寄存器,DBR,,其总线地址为,177552,隐式,I/O,指令,控制,/,状态字格式:,出错,故障,忙,完成,允许中断,维护,校验,启动,15 14 12 7 6 2 1 0,启动:,测试:,取数:,主机,177550,控制字,(,启动位为,1),传送指令,主机,177550,状态字,传送指令,主机,177552,数据,传送指令,通过,I/O,处理机进行,I/O,操作,CPU,执行简单,I/O,指令,(,启动、停止、查询、清除,),设置时需考虑,操作数类型,、,符号,、,进制,等;,运算结束后设置相应,状态标志,。,两级,I/O,指令,(,1,)算术运算指令,I/O,处理机执行,I/O,操作指令,(,输入、输出,),3),算术逻辑运算指令,(,2,)逻辑运算指令,实现对代码位的,设置,、,测试,、,清除,、,修改,等。,与,或,异或,控制程序流程。,(,1,)转移指令,4),程序控制指令,(,2,)转子指令与返回指令,转子:操作码 子程序入口,无条件转移,条件转移,循环,:操作码 转移地址,:操作码 转移地址 转移条件,:转移条件为循环计数值,返回:操作码 返回地址,同一条返回指令应能提供多个不同的返回地址。,返回地址的存取:,用堆栈存放返回地址。,(,3,)软中断指令,程序,自陷指令,表示不同的功能调用,调试程序,早期主要用于,程序的调试,。,现在常常用于,系统功能调用,。,以,INT n,的形式出现在程序中。,2,、运算方法,定点加减法,溢出判断,定点乘法,定点除法,浮点四则运,算,运算可采用,原码,和,补码,两种方式,用,补码表示的数进行加减运算,符号位直接参加运算。,简化了加减运算方法,化“减”为“加”,实现硬件简单,。,2.1,定点,加,减,法,1.,基本关系式,(X+Y),补,=X,补,+Y,补,(,1,),(X-Y),补,=X,补,+(-Y),补,(,2,),式(,1,):,操作码为“,加,”时,两数直接相加。,3)X=3,Y=2,X,补,=0 0011,Y,补,=1 1110,0 0001,(,+1,补码),2)X=3,Y=2,X,补,=1 1101,Y,补,=1 1110,1 1011,(,5,补码),1)X=3,Y=2,X,补,=0 0011,Y,补,=0 0010,0 0101,(,+5,补码),4)X=3,Y=2,X,补,=1 1101,Y,补,=0 0010,1 1111,(,1,补码),例,.,求,(X+Y),补,(X+Y),补,=X,补,+Y,补,(,1,),(X-Y),补,=X,补,+(-Y),补,(,2,),式(,2,):,操作码为“,减,”时,将减转换为加。,1)X=4,Y=5,X,补,=0 0100,Y,补,=1 1011,(-Y),补,=0 0101,0 1001,(,+9,补码),2)X=4,Y=5,X,补,=1 1100,Y,补,=0 0101,(-Y),补,=1 1011,1 0111,(,9,补码),例,.,求,(X,Y),补,Y,补,(Y),补,:,将,Y,补,变补,不管,Y,补,为正或负,将其符号连同尾数一起各位变反,末位加,1,。,即将减数变补后与被减数相加。,注
展开阅读全文