《组成原理第2章.ppt》由会员分享,可在线阅读,更多相关《组成原理第2章.ppt(73页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第 2 2 章章 计算机中的信息表示计算机中的信息表示 主要内容主要内容:数据信息表示:数值型数据和非数值型数据。数据信息表示:数值型数据和非数值型数据。控制信息:指令信息等。控制信息:指令信息等。2.1数值型数据的表示方法数值型数据的表示方法2.1.1进位计数制(省略)进位计数制(省略)1*2.1.2带符号数的表示(简单回顾)带符号数的表示(简单回顾)真值:真值:用正负号加绝对值表示的数。用正负号加绝对值表示的数。机器数:机器数:符号和数值按某种规律统一编成的码。符号和数值按某种规律统一编成的码。-1010+11001101001100原码原码 反码反码 补码补码1.1.符号位正数用符号位
2、正数用0 0,负数用,负数用1 1;2.2.三种码三种码表示表示正数一样,正数一样,表示表示负数不同;负数不同;3.3.原码、反码有两个原码、反码有两个0 0,补码只有,补码只有1 1个。个。4.4.表示的数个数不同;范围不同;表示的数个数不同;范围不同;5.5.字长一定时,整数在符号位后面补字长一定时,整数在符号位后面补0 0 或或1 1,小数在,小数在末尾补末尾补0 0 或或1 1。两个不同字长的数如何运算?两个不同字长的数如何运算?2*2.1.3数的数的定点表示与浮点表示定点表示与浮点表示数据表示数据表示:计算机硬件可以识别的数据类型计算机硬件可以识别的数据类型1.定点表示法定点表示法(
3、1)无符号数)无符号数正整数,正整数,用于存储器地址编码等方面。用于存储器地址编码等方面。字长字长N+1位位:最小数最小数最大数最大数二进制编码二进制编码00001111十进制真值十进制真值02N+1-1分辨率(绝对精度分辨率(绝对精度,最小非最小非0正数正数)13*(2 2)带符号定点整数)带符号定点整数 小数点在最低数位后面,小数点在最低数位后面,是纯整数是纯整数,小数点隐,小数点隐含表示。字长含表示。字长N+1N+1位位:最小非最小非0 0正数正数 最大正数最大正数原码原码 0001 01110001 0111反码反码 0001 0001 01011111补码补码 0001 0001 0
4、1011111十进制真值十进制真值 1 21 2N N-1-1正数范围正数范围 1 1 到到 2 2N N-1-1分辨率(绝对精度)分辨率(绝对精度)1 1,和字长无关。,和字长无关。4*字长字长N+1位位:最小负数最小负数最大非最大非0负数负数原码原码11111001反码反码10001110补码补码10001111十进制真值十进制真值-(2N-1)或或-2N-1负数范围负数范围-1到到(2N-1)或或-1到到2N表示数的范围(和字长有关):表示数的范围(和字长有关):原码和反码原码和反码(2N-1)到到2N-1对称对称补码补码2N到到2N-1不对称不对称要注意补码的最小负数。要注意补码的最小
5、负数。5*例:字长例:字长8 8位,一位符号位。位,一位符号位。X=1010 YX=1010 Y10001000 X X的的原码、反码、补码:原码、反码、补码:0000101000001010 Y Y的的原码:原码:1000100010001000 Y Y的的反码:反码:1111011111110111 Y Y的的补码:补码:1111100011111000符号位扩展:写成符号位扩展:写成1616、3232位的形式。位的形式。6*(3 3)带符号定点小数)带符号定点小数 小数点在最高数位前面,小数点在最高数位前面,是纯小数是纯小数,小数点隐含,小数点隐含表示。字长表示。字长N+1N+1位位:最
6、小非最小非0 0正数正数 最大正数最大正数原码原码 0.001 0.1110.001 0.111反码反码 0.001 0.1110.001 0.111补码补码 0.001 0.1110.001 0.111十进制真值十进制真值 2 2-N-N 1-2 1-2-N-N正数范围正数范围 2 2-N-N 到到 1-2 1-2-N-N分辨率(绝对精度)分辨率(绝对精度)2 2-N-N ,和字长有关。和字长有关。7*字长字长N+1位位:最小负数最小负数最大非最大非0负数负数原码原码1.1111.001反码反码1.0001.110补码补码1.0001.111十进制真值十进制真值-(1-2-N)和和-1-2-
7、N负数范围负数范围-(1-2-N)到到2-N或或-1到到2-N表示数的范围(和字长关系不大)表示数的范围(和字长关系不大):原码和反码原码和反码-(1-2-N)到到1-2N对称对称补码补码-1到到1-2N不对称不对称定点整数和定点小数的二进制表示形式一样定点整数和定点小数的二进制表示形式一样8*例:字长例:字长8位,一位符号位。位,一位符号位。X=0.1010Y0.1000X的的原码、反码、补码:原码、反码、补码:0.1010000Y的的原码:原码:1.1000000Y的的反码:反码:1.0111111Y的的补码:补码:1.10000009*溢出溢出:超出数的表示范围超出数的表示范围。如定点整
8、数字长如定点整数字长8 8位,最大正数位,最大正数127127,最,最小负数小负数-128-128,最小正数,最小正数1 1,最大负数,最大负数-1-1。正溢正溢:比最大数还大;比最大数还大;负溢负溢:比最小数还小;比最小数还小;上溢上溢:正溢和负溢也叫上溢,需要计算机正溢和负溢也叫上溢,需要计算机处理。处理。下溢下溢:绝对值比非绝对值比非0 0最小正数还小,计算最小正数还小,计算机当作机当作 0 0 处理。处理。10*(1)格式格式浮点数真值:浮点数真值:N=+RN=+RE EM M 阶码阶码浮点数机器格式:浮点数机器格式:尾数尾数阶符阶符数符数符E Ef E E1 E Em M Mf M
9、M1 M Mn1 1)R R:阶码底阶码底(尾数基数尾数基数),隐含约定,隐含约定,一般为一般为2 2;2)E:阶码,用定点整数表示,可以是补码或移码。:阶码,用定点整数表示,可以是补码或移码。其其位数位数决定决定数值范围数值范围;阶符和数的绝对值大小有关阶符和数的绝对值大小有关。3)M:尾数,一般为定点小数,原码或补码表示。其:尾数,一般为定点小数,原码或补码表示。其位数位数决定决定数的精度数的精度;数符表示数的正负。数符表示数的正负。4)规格化尾数:)规格化尾数:1/2M1最高有效位绝对值为最高有效位绝对值为1。2.浮点表示法浮点表示法11*(2 2)移码)移码 定义:定义:X X移移2
10、2N NX X (字长字长N+1N+1位)位)和补码符号位相反,数值位相同。和补码符号位相反,数值位相同。和补码表示范围相同,和补码表示范围相同,0 0的移码也唯一;的移码也唯一;移码仅用于表示定点整数。移码仅用于表示定点整数。编码大的移码数值也大,编码大的移码数值也大,最小的移码为全最小的移码为全0 0;最大的移码为全;最大的移码为全1 1。字长字长8 8位,位,X X1010 Y=-10101010 Y=-1010 X X移移10001010 Y10001010 Y移移0111011001110110 0 0移移10000000 (-128)10000000 (-128)移移0000000
11、000000000 12*(3)表示范围与精度表示范围与精度 阶码阶码 m+1位位,阶符阶符1 1位,尾数位,尾数 n+1位位,数符数符1 1位。位。最小正浮点数最小正浮点数:阶码为最小数阶码为最小数-(2-(2m m-1)-1)或或-2-2m m ;尾数为最小正数尾数为最小正数2 2-n 。最大正浮点数最大正浮点数:阶码为最大数阶码为最大数2 2m m-1-1 ;尾数为最大尾数为最大数数1-21-2-n-n。最小非最小非0 0正数正数 最大正数最大正数 原码原码 1111,0.001 1111,0.001 010111,0.11111,0.111 反码反码 1000,0.001 1000,0
12、.001 010111,0.11111,0.111 补码补码 1000,0.001 1000,0.001 010111,0.11111,0.111 最小非最小非0 0正数到最大正数为正浮点数范围。正数到最大正数为正浮点数范围。13*最大负浮点数最大负浮点数:阶码为最小负数阶码为最小负数-(2m-1)或或-2m;尾数为最大负数尾数为最大负数-2-n。最小浮点数:最小浮点数:阶码为最大数阶码为最大数2m-1;尾数为绝对值最大尾数为绝对值最大的负数:的负数:-(1-2-n)或或-1。最大非最大非0负数负数最小负数最小负数原码原码1111,1.0010111,1.111反码反码1000,1.11001
13、11,1.000补码补码1000,1.1110111,1.000最大非最大非0负数到最小负数为负浮点数范围。负数到最小负数为负浮点数范围。移码表示阶码可将补码表示的阶码符号变反。移码表示阶码可将补码表示的阶码符号变反。14*最最大大正正数数到到最最小小负负数数为为浮浮点点数数的的表表示示范范围围。原原码和反码一样,补码和移码一样。码和反码一样,补码和移码一样。浮浮点点数数也也会会溢溢出出,阶阶码码溢溢出出为为溢溢出出,尾尾数数溢溢出出不算溢出,可移动尾数解决。不算溢出,可移动尾数解决。尾尾数数左左移移一一位位,阶阶码码减减1 1,尾尾数数右右移移一一位位,阶阶码码加加1 1(尾数基数为尾数基数
14、为2)2)。浮浮点点数数的的精精度度为为相相对对精精度度,用用尾尾数数的的精精度度表表示示,即即 2 2-n-n。浮浮点点数数的的绝绝对对精精度度为为相相对对精精度度乘乘以以 R RE E,随随阶码变化,阶码变化,阶码越小分辨率越高阶码越小分辨率越高,可有很高的分辨率。可有很高的分辨率。15*(4 4)浮点数的规格化)浮点数的规格化 规格化浮点数:规格化浮点数:尾数最高位真值为尾数最高位真值为1 1的浮点数(的浮点数(R R2 2),),目的是提高精度。目的是提高精度。如果是非规格化的,可左移尾如果是非规格化的,可左移尾数规格化。数规格化。最大非最大非0负数负数最小非最小非0正数正数原码原码1
15、111,1.1001111,0.100反码反码1000,1.0111000,0.100补码补码1000,1.1001000,0.100尾数值尾数值-1/21/2注意补码也可以是注意补码也可以是1000,1.011尾数为尾数为-(1/2+2-n)0101,1.1101规格化后规格化后0011,1.0100(补码补码)1101,0.0010规格化后规格化后1011,0.1000(补码补码)16*例:某规格化浮点数用补码表示,其中阶码例:某规格化浮点数用补码表示,其中阶码6 6位,位,含含1 1位阶符;尾数位阶符;尾数1010位,含位,含1 1位数符。位数符。阶码最大值:阶码最大值:3131 阶码最
16、小值:阶码最小值:-32-32 尾数最大值尾数最大值:(1-2(1-2-9-9)尾数最小值尾数最小值:-1-1表示范围:表示范围:-2-23131 2 23131 (1-2(1-2-9-9)尾数分辨率:尾数分辨率:2 2-9 -9 规格化尾数分辨率:规格化尾数分辨率:2 2-1-1最高分辨率:最高分辨率:2 2-1-1 2 2-32-32 (最小正数)(最小正数)17*例:某规格化浮点数用补码表示,其中阶码例:某规格化浮点数用补码表示,其中阶码8 8位,位,含含1 1位阶符;尾数位阶符;尾数2424位,含位,含1 1位数符。位数符。阶码最大值:阶码最大值:127127 阶码最小值:阶码最小值:
17、-128-128 尾数最大值尾数最大值:(1-2(1-2-23-23)尾数最小值尾数最小值:-1-1表示范围:表示范围:-2-2127127 2 2127127 (1-2(1-2-23-23)尾数分辨率:尾数分辨率:2 2-23 -23 规格化尾数分辨率:规格化尾数分辨率:2 2-1-1最高分辨率:最高分辨率:2 2-1-1 2 2-128-128 (最小正数)(最小正数)18*真真值和浮值和浮点数之间的转换按定点整数点数之间的转换按定点整数和定点小数分别转换阶码和尾数,见书上和定点小数分别转换阶码和尾数,见书上的例题的例题2-332-33和和2-342-34。浮点数比定点数浮点数比定点数复杂
18、,实现难,但表复杂,实现难,但表示范围大,分辨率高,应用广。示范围大,分辨率高,应用广。19*(5 5)IEEE754IEEE754浮点格式浮点格式 如如图图2-52-5所所示示,有有三三种种格格式式,数数符符在在前前,阶阶码码用用移移码码,尾尾数数用用原原码码。尾尾数数最最高高位位为为1 1,左移,左移1 1位后隐含表示,阶码减位后隐含表示,阶码减1 1。偏偏移移量量是是:2 2N N-1-1,N N7 7时时,偏偏移移量量是是127127,X X移移127127X X。如如阶阶码码真真值值为为2 2,则则阶阶码码值值为为129129,写写成成移移码码为为:1000000110000001;
19、如如阶阶码码值值为为100100,写写成成移码为:移码为:0110010001100100,则阶码真值为则阶码真值为27。20*如阶码值为全如阶码值为全0,尾数为,尾数为0,规定为机器,规定为机器0;如阶码值为全如阶码值为全0,尾数不为,尾数不为0,规定为非规,规定为非规格化数;格化数;如阶码值为全如阶码值为全1,尾数为,尾数为0,规定为无穷大;,规定为无穷大;如阶码值为全如阶码值为全1,尾数不为,尾数不为0,规定为非法,规定为非法数。数。21*例例:X=-10100.1101符号符号1位,阶码位,阶码8位位,尾数尾数23位位,IEEE754偏偏移值移值:127,一般浮点数移码偏移值,一般浮点
20、数移码偏移值:128。IEEE754表示表示X=-1.0100110122100100 阶码阶码:E=1111111+100=10000011:E=1111111+100=10000011 X X浮浮=110000011,010011010=110000011,0100110100 0一般浮点数表示一般浮点数表示(阶码用移码):(阶码用移码):X=-0.10100110122101101 阶码阶码:E=10000000+101=10000101:E=10000000+101=10000101 X X浮浮=10000101,1.1010011010=10000101,1.10100110100
21、022*2.2 2.2 字符表示(简介)字符表示(简介)ASCIIASCII码码 汉字编码汉字编码 Unicode码码 2.3 2.3 指令信息的表示指令信息的表示 指令:指令:指示计算机执行某类操作的信息的指示计算机执行某类操作的信息的集合。集合。指令系统指令系统:计算机所有指令的集合。计算机所有指令的集合。本节主要讨论:一般本节主要讨论:一般指令格式、指令格式、常用常用寻址寻址方式、方式、面向用户面向用户指令类型。指令类型。横向讨论指令系统,重在设计。横向讨论指令系统,重在设计。23*2.3.1指令格式指令格式指令格式:用一组二进制数表示的指令形式。指令格式:用一组二进制数表示的指令形式。
22、指令格式中包含操作码和地址码两部份。指令格式中包含操作码和地址码两部份。指令基本格式:指令基本格式:操作码操作码 地址码地址码 D D一个一个一个或几个一个或几个 1.1.指令中的基本信息指令中的基本信息 操作码、操作数或操作数地址、结果地址、操作码、操作数或操作数地址、结果地址、后续地址。后续地址。24*2.指令中的地址结构指令中的地址结构指令中提供的地址指令中提供的地址存储单元地址码存储单元地址码,寄存器寄存器编号编号,外设端口号。外设端口号。(1)指令提供地址的方式:)指令提供地址的方式:直接或间接给出;直接或间接给出;显地址方式:显地址方式:指令中明显指明地址;指令中明显指明地址;隐地
23、址方式:隐地址方式:地址隐含约定地址隐含约定,不出现在指令中不出现在指令中。使用使用隐地址隐地址可以减少指令中的地址数,可以减少指令中的地址数,简简化地址结构,缩短字长化地址结构,缩短字长。25*(2)地址结构的简化地址结构的简化采用隐地址方式采用隐地址方式 操作数操作数地址地址 四地址结构指令四地址结构指令格式:格式:D1 D2 D3 D4 D1 D2 D3 D4结果结果地址地址下条指下条指令地址令地址功能:功能:(D1)D1)(D2)D3(D2)D3(D4)(D4)下条指令下条指令用指令计数器用指令计数器PC指示指令地址。指示指令地址。26*三地址结构指令三地址结构指令格式:格式:操作数操
24、作数地址地址 D1 D2 D3 D1 D2 D3 结果结果地址地址功能:功能:下条指令地址,下条指令地址,转移时,用转移转移时,用转移地址修改地址修改PCPC内容。内容。(D1)(D1)(D2)D3(D2)D3(PC)+1 PC(PC)+1 PC源源/目的目的二地址结构指令二地址结构指令格式:格式:D1 D2 D1 D2 目的目的/源源功能:功能:(D1)(D1)(D2)D2/D1(D2)D2/D1(PC)+1 PC(PC)+1 PC27*双操作数:双操作数:一地址结构指令一地址结构指令格式:格式:D1 D1 隐含约定隐含约定单操作数:单操作数:功能:功能:零地址结构指令零地址结构指令格式:格
25、式:(D1)(D1)(A)A(A)A(PC)+1 PC(PC)+1 PC(D1)D1(D1)D1(PC)+1 PC(PC)+1 PC 功能:功能:用于堆栈或特殊指令操作。用于堆栈或特殊指令操作。28*例:例:ADD;PUSH;POP;执行执行ADD前:前:低低SPSP101020204646SPSP30304646执行执行ADD后:后:高高低低高高29*3.操作码结构操作码结构(1)定长操作码定长操作码各指令各指令操作码操作码的位置、位数固定相同。的位置、位数固定相同。8 8位操作码可表示位操作码可表示256256条指令条指令,100,100条指令需要条指令需要7 7位操作码。简单位操作码。简
26、单,容易实现。容易实现。(2 2)扩展操作码)扩展操作码各指令各指令操作码操作码的位置、位数不固定,根据需的位置、位数不固定,根据需要变化,要变化,关键在设置扩展标志。其特点是关键在设置扩展标志。其特点是可有可有效利用字长效利用字长,更加灵活更加灵活,但复杂但复杂,实现较难。实现较难。注意注意:短操作码不能成为长操作码的前缀。短操作码不能成为长操作码的前缀。30*例:指令字长例:指令字长16位,可含有位,可含有3 3、2 2、1 1或或0 0个地址,每个个地址,每个地址占地址占4 4位位(图图2-6)2-6)。操作码操作码地址码地址码15121187430 0000 0000 X Y ZX Y
27、 Z 1110 1110 X Y ZX Y Z.11111111 0000 0000 Y ZY Z 1111 1111 1110 1110 Y ZY Z.三地址指令三地址指令1515条条二地址指令二地址指令1515条条 11111111 11111111 0000 0000 Z Z 1111 1111 1111 1111 1110 1110 Z Z.一地址指令一地址指令1515条条 11111111 11111111 11111111 0000 0000 1111 1111 1111 1111 11111111 1111 1111.零地址指令零地址指令1616条条31*(3)单功能或复合型操作
28、码)单功能或复合型操作码 多数指令采用多数指令采用单功能操作码单功能操作码,只表示一种只表示一种操作。操作。复合型操作码将复合型操作码将操作码分为几部分,每部操作码分为几部分,每部分表示一种操作。分表示一种操作。例:某计算机算逻指令例:某计算机算逻指令(100(100系列系列)01234567815基本操作基本操作进位进位移位移位回送回送判跳判跳操作数操作数32*4.4.指令字长指令字长指令字长:指令字长:表示指令的二进制数的位数。表示指令的二进制数的位数。定长指令格式:定长指令格式:指令字长固定,指令字长固定,简单简单,便便于控制。于控制。变长指令格式:变长指令格式:指令字长不固定指令字长不
29、固定,复杂,复杂,能合理利用存储空间。能合理利用存储空间。如书上图如书上图2-72-7所示。所示。33*2.3.2常见常见寻址方式寻址方式定义定义:寻找操作数地址或操作数的方式寻找操作数地址或操作数的方式。使使用用多多种种寻寻址址方方式式的的目目的的:缩缩短短指指令令字字长长,扩扩大大寻寻址址空空间间,增增加加编编程程灵灵活活性性,支支持持程程序序重重定位等。定位等。形式地址形式地址:指令中给出的地址指令中给出的地址绝对地址绝对地址:操作数的真正地址操作数的真正地址地址种类地址种类:寄存器寄存器 存储器存储器 外设外设 堆栈堆栈34*操作码操作码 立即数立即数S S1.立即寻址立即寻址指令直接
30、给出操作数。指令直接给出操作数。简单、快、不灵活,简单、快、不灵活,用来提供常数、设置初值等。用来提供常数、设置初值等。定长格式:定长格式:变长格式:变长格式:基本指令基本指令 立即数立即数S S数数在在指指令令中中,其其长度固定、有限。长度固定、有限。数在基本指令之后,数在基本指令之后,其长度可变其长度可变。35*操作码操作码 有效地址有效地址D D 2.直接寻址直接寻址指令直接给出操作数地址。指令直接给出操作数地址。简单、简单、较快较快,不灵不灵活,寻址范围有限。活,寻址范围有限。指令直接给出指令直接给出存储单元号存储单元号(数数在在M中中)。存储器直接寻址:存储器直接寻址:S=(D)定长
31、格式定长格式D D的位数有限的位数有限,限制访存范围限制访存范围变长格式变长格式 基本指令基本指令 D DL L D DH HD D的位数可覆盖整的位数可覆盖整个存储空间个存储空间36*操作码操作码 寄存器号寄存器号R R 3.3.寄存器直接寻址(寄存器直接寻址(寄存器寻址寄存器寻址)S=(R)格式格式寄存器中直接给出操作数。寄存器中直接给出操作数。R所占位数所占位数少,字长短;访问少,字长短;访问R比访问比访问M快。快。37*格式格式 4.4.间接寻址间接寻址 S=(D)指令给出操作数的间接地址,存储单元号指令给出操作数的间接地址,存储单元号是操作数地址的地址(数在是操作数地址的地址(数在M
32、中),要多次中),要多次访问存储器,访问存储器,速度速度慢,能慢,能使编程灵活。使编程灵活。存储器间址存储器间址操作码操作码 间接地址间接地址D D D=0040D=004000700070.00700070 S S.M间址单元间址单元地址指针地址指针38*操作码操作码 寄存器号寄存器号R R 5.5.寄存器间址及变型寄存器间址及变型S=(R)格式格式 R R所所占占位位数数少少;R R可可提提供供全全字字长长地地址址码码;修修改改R R内内容容比比修修改改M M内内容容快快。指指针针不不变变(由由指指令令指指定定),指指针针内内容容可可变变,使使同同一一指指令令可可指指向向不不同同存存储储单
33、单元元,以以实现实现程序的循环、共享,并提供转移地址。程序的循环、共享,并提供转移地址。寄寄存存器器间间址址的的变变型型是是自自增增间间址址(后后增增),自自减减间址(先减)。间址(先减)。R=03R=03M0050005000500050 S S.地址指针地址指针39*格式格式堆栈寻址(可单列)堆栈寻址(可单列)S=(SP)操作码操作码 堆栈指针堆栈指针S SP P SPSP.S S.M00700070.栈顶栈顶40*SPSP栈顶栈顶M S S.低低高高堆栈向上生成堆栈向上生成压栈:压栈:SP自动减自动减1,再存数。,再存数。-(SP),自减自减型间址型间址。出栈:先取数,出栈:先取数,SP
34、再自动加再自动加1。(SP)+,自自增型间址增型间址。SP既可出现在指令中,也可隐含约定。既可出现在指令中,也可隐含约定。41*格式格式 6.6.变址寻址变址寻址操作码操作码 R RX X D D 变址寄存器号变址寄存器号形式地址形式地址 S=(S=(R RX X)+D D)指令给出一个寄存器号和一个偏移量,指令给出一个寄存器号和一个偏移量,寄存器内容与偏移量之和为有效地址。寄存器内容与偏移量之和为有效地址。42*D D的位数有限,若不能提供全字长地址码,会使的位数有限,若不能提供全字长地址码,会使访存空间受到限制,需访存空间受到限制,需R R提供提供全字长地址码全字长地址码。例例:用用变变址
35、址方方式式访访问问一一组组连连续续区区间间内内的的数数组组元元素素。D为为存存储储区区首首址址;(RX)为为所所访访单单元元距距离离首首址址的的长长度度;RX初值为初值为0,每访问一个单元,每访问一个单元,(RX)+1。D=D=首址首址n-1n-1.0 01 12 2.D+1D+1D+2D+2D+n-1D+n-1.43*格式格式基址寄存器号基址寄存器号7.基址寻址基址寻址指令给出一个寄存器号和一个偏移量,寄指令给出一个寄存器号和一个偏移量,寄存器内容与偏移量之和为有效地址。存器内容与偏移量之和为有效地址。操作码操作码 R Rb b D D 位移量位移量S=(S=(R Rb b)+D D)基准地
36、址基准地址相对于基址的位移相对于基址的位移44*D的位数只需覆盖一个较小的存储区间,的位数只需覆盖一个较小的存储区间,改变改变Rb的内容,程序能访问存储空间中任何一个定长区的内容,程序能访问存储空间中任何一个定长区间间(4K)。R Rb b 4K 4KM.R Rb b 4K 4K便便于于访访问问两两维维数数组组中中某类指定的元素。某类指定的元素。45*变址与基址的区别:变址与基址的区别:变变址址:指指令令提提供供基基准准量量(不不变变),R提提供供修修改改量量(可可变变);使使编编程程灵灵活活,适适于于处处理理一一维维数组。数组。基基址址:指指令令提提供供位位移移量量(不不变变),R提提供供基
37、基准准量量(可可变变);用用于于多多用用户户系系统统,程程序序定定位位,扩大有限字长指令的访存空间。扩大有限字长指令的访存空间。可灵活应用,可灵活应用,X86中就没有明显区别。中就没有明显区别。46*S=(S=(R RX X)+(R)+(Rb b)+D)+D)格式格式变址寄存器号变址寄存器号8.基址加变址基址加变址指令给出两个寄存器号和一个偏移量,指令给出两个寄存器号和一个偏移量,寄存器内容与偏移量之和为有效地址。寄存器内容与偏移量之和为有效地址。便于便于处理两维数组。处理两维数组。位移量位移量操作码操作码 R RX X R Rb b D D 基址寄存器号基址寄存器号47*格式格式 9.9.相
38、对寻址相对寻址指令给出位移量,指令给出位移量,PC内容与位移量之内容与位移量之和为有效地址。有效地址相对和为有效地址。有效地址相对PC上下浮动上下浮动,给编程带来方便。给编程带来方便。操作码操作码 PCPC D D S=(PC)D)S=(PC)D)(PC)=1000HD=04H单字长指令:单字长指令:1005H双字长指令:双字长指令:1006H或隐含指定或隐含指定位移量位移量48*格式格式10.页面寻址页面寻址指令给出位移量,指令给出位移量,PCPC的高位部分的高位部分与位移量与位移量拼接,形成有效地址。拼接,形成有效地址。位移量位移量操作码操作码 PCPC D D 或隐含指定或隐含指定S=(
39、S=(PC)(PC)H H,D D)页号页号页内地址页内地址49*例:例:M为为64KB,划分为划分为256页,每页页,每页256B。页页面面寻寻址址用用于于页页式式管管理理存存储储系系统统。寻寻址址速速度度快快,适适于于组组织织程程序序模模块块,有有效效利利用用存存储空间。储空间。PC0164H71.0171HS50*11.对寻址方式的说明对寻址方式的说明(1 1)操作码隐含说明不同寻址方式)操作码隐含说明不同寻址方式例;某机指令操作码最高两位例;某机指令操作码最高两位0000:RRRR型指令,寄存器型指令,寄存器-寄存器寻址寄存器寻址0101:RXRX型指令,寄存器型指令,寄存器-变址寻址
40、变址寻址1010:SISI型指令,基址型指令,基址-立即寻址立即寻址1111:SSSS型指令,基址型指令,基址-基址寻址基址寻址51*(2 2)指令中设置专门字段说明寻址方式)指令中设置专门字段说明寻址方式例:某机指令的每个地址字段中各设置一例:某机指令的每个地址字段中各设置一3位的寻址方式字段。位的寻址方式字段。操作码操作码 寻址方式寻址方式 R R 寻址方式寻址方式 R R 源地址字段源地址字段目的地址字段目的地址字段3位位3位位52*2.3.3 2.3.3 指令的功能和类型指令的功能和类型 指令系统体现计算机的基本功能指令系统体现计算机的基本功能,是编程基础是编程基础,软软硬件界面,硬件
41、界面,不同不同CPUCPU之间的主要差别所在。之间的主要差别所在。指令系统的发展从简单到复杂指令系统的发展从简单到复杂 CISC CISC 和和 RISCRISC IntelX86 IntelX86系列原来是典型的系列原来是典型的CISC结构,结构,函数计算,函数计算,MMXMMX,3D3D,SSESSE(128128位单精度浮点),位单精度浮点),SSE2 SSE2(256256位双位双精度浮点),精度浮点),4 4个运算同时进行。向量,存储器管理等个运算同时进行。向量,存储器管理等指令,但后来又吸取指令,但后来又吸取RISC的技术,如的技术,如Core系列计算机系列计算机是二者的结合。是二
42、者的结合。53*龙芯系列、龙芯系列、MIPS系列、系列、Power系列、系列、ARM系列系列RISC计算机特点:计算机特点:(1)选取使用频率高的指令,最有用的指令;(2)指令格式简单,功能简单(定长32位、64位);(3)采用组合逻辑控制器;(4)只有访存指令可以访问存储器;(5)大多数指令在一个时钟周期完成,适合流水线结构。(6)多寄存器结构,指令格式对称,支持编译系统优化。54*指令系统的分类指令系统的分类:按指令格式、按寻址方式、按指令功能等按指令格式、按寻址方式、按指令功能等1.1.传送指令传送指令 完成数据传送完成数据传送,也可包含访存也可包含访存,I/O,I/O指令。指令。源地址
43、源地址 目的地址目的地址设置时需考虑:设置时需考虑:(1 1)规定传送范围)规定传送范围8 80 0X86X86:IBM370IBM370:R R M M,R R R RR R M M,R R R R,M M M M55*(2 2)指明传送单位)指明传送单位例:用操作码说明例:用操作码说明(VAX-11)(VAX-11):用地址量说明用地址量说明(8(80 0X86)X86):MOVAL,BL(8)MOVAX,BX(16)MOVEAX,EBX(32)MOVB按字节传送按字节传送MOVW按字传送按字传送56*例:例:80X8680X86的串传送指令:的串传送指令:REP MOVSWREP MOV
44、SW传送次数传送次数由计数器控制由计数器控制(3 3)设置寻址方式)设置寻址方式 在寻址方式的设置上几乎不受限制,能比在寻址方式的设置上几乎不受限制,能比较集中地反映指令系统各种寻址方式的实现。较集中地反映指令系统各种寻址方式的实现。57*2.2.访存指令访存指令一般包含在数据传送指令中一般包含在数据传送指令中,也可单列。也可单列。加载指令加载指令 存储指令存储指令 出栈指令出栈指令 压栈指令压栈指令58*3.3.输入输入/输出指令输出指令各种信息各种信息主机主机 外设外设设置时需考虑:设置时需考虑:(1)I/O指令的功能扩展指令的功能扩展如何用通用如何用通用I/O指令实现对各种设备的控制?指
45、令实现对各种设备的控制?I/O指令中留有扩展余地指令中留有扩展余地指令中某些字段编码事先不定义,需要时再约定其指令中某些字段编码事先不定义,需要时再约定其含义。含义。用于外设种类、数量不多的场合。用于外设种类、数量不多的场合。I/O接口中设置控制接口中设置控制/状态寄存器状态寄存器 59*(2 2)主机对外设的寻址方式)主机对外设的寻址方式 主机用主机用输出指令输出指令或或传送指令传送指令将具体设备的控制命将具体设备的控制命令按约定的代码格式送往接口中的令按约定的代码格式送往接口中的控制寄存器,控制寄存器,向外向外设发出命令。外设的状态信息也以某种格式放在接口设发出命令。外设的状态信息也以某种
46、格式放在接口的状态寄存器中,主机用的状态寄存器中,主机用输入指令输入指令或或传送指令传送指令从从状态状态寄存器寄存器中取出有关信息进行查询、分析。中取出有关信息进行查询、分析。如何设置控如何设置控制制/状态寄存器是接口设计的关键。状态寄存器是接口设计的关键。I/OI/O端口端口 寻找寻找I/OI/O接口中的寄存器接口中的寄存器的方式。的方式。如何为如何为I/OI/O端口分配地址?端口分配地址?60*单独编址单独编址I/OI/O地址空间不占主存空间,可与主存空间重地址空间不占主存空间,可与主存空间重叠。需设置标志区分访问对象,如:叠。需设置标志区分访问对象,如:=1=1 访问存储器访问存储器=0
47、=0 访问访问I/OI/O端口端口编址到寄存器:为每个寄存器编址到寄存器:为每个寄存器(I/O(I/O端口端口)分配分配独立的端口地址;独立的端口地址;I/OI/O指令中给出端口地址。指令中给出端口地址。M/IOM/IO61*统一编址统一编址编址到寄存器:为每个寄存器(编址到寄存器:为每个寄存器(I/O端口端口)分)分配总线地址;访问外设时,指令中给出总线配总线地址;访问外设时,指令中给出总线地址。地址。I/OI/O端口占据部分主存空间。常将存储空端口占据部分主存空间。常将存储空间的低端分配给主存单元,高端分配给间的低端分配给主存单元,高端分配给I/OI/O端端口,以示区分。口,以示区分。62
48、*(3 3)I/OI/O指令设置方式、指令设置方式、设置设置专用专用I/O指令指令:显式显式I/O指令指令针对单独编址,用针对单独编址,用I/O指令访问指令访问I/O端口。指令中说明输入端口。指令中说明输入/输出操作,并输出操作,并给出端口地址。给出端口地址。63*例:例:80X86I/O80X86I/O指令设置指令设置 输入:输入:IN ALIN AL,n n;端口地址端口地址(n)AL(n)AL(直接端口寻址直接端口寻址)IN ALIN AL,DXDX;间接端口地址间接端口地址(DX)AL(DX)AL(间接端口寻址间接端口寻址)输出:输出:OUT nOUT n,ALAL;(AL)n(AL)
49、n(直接端口寻址直接端口寻址)OUT DXOUT DX,ALAL;(AL)(DX)(AL)(DX)(间接端口寻址间接端口寻址)64*用用传送指令传送指令实现实现I/OI/O操作(操作(隐式隐式I/OI/O指令指令)针对统一编址,用传送指令访问针对统一编址,用传送指令访问I/OI/O端口。端口。不设专用不设专用I/OI/O指令。指令。例:某机例:某机I/OI/O接口中设置控制接口中设置控制/状态寄存器状态寄存器CSRCSR,其总线地址为其总线地址为177550177550(8(8进制进制)数据缓冲寄数据缓冲寄存器存器DBRDBR,其总线地址为其总线地址为177552177552。65*主机调用输
50、入机:主机调用输入机:控制控制/状态字格式:状态字格式:出错出错 故障故障 忙忙 完成完成 允许中断允许中断 维护维护 校验校验 启动启动15 14 12 7 6 2 1 015 14 12 7 6 2 1 0启动:启动:测试:测试:取数:取数:主机主机 177550177550控制字控制字(启动位为启动位为1)1)传送指令传送指令主机主机 177550177550 状态字状态字传送指令传送指令主机主机 177552177552 数据数据传送指令传送指令66*通过通过I/OI/O处理机进行处理机进行I/OI/O操作操作设置两级设置两级I/OI/O指令:指令:第一级:第一级:CPU执行简单执行简