1、第2章 信息表示,总体要求 掌握数值数据的表示方法; 理解非数值数据的表示方法 掌握补码加法、减法 掌握溢出的概念及溢出判断的方法 掌握移位及舍入处理的方法 掌握原码、补码一位乘法 理解原码两位乘法和原码除法 理解运算器的设计方法与组织结构 掌握浮点加法、减法运算 了解浮点运算器,1,第2章 运算方法与运算器,学习重点: 数据信息的表示方法及运算 溢出判断、移位及舍入处理的方法 算逻运算单元的设计实现,主要知识点:. 计算机中数据信息表示的方法. 计算机中指令信息的表示方法,重点: 1.数的补码表示,定点数、浮点数的表示2.指令的格式、寻址方式,难点:浮点数的表示、指令的寻址方式,3,2.1.
2、1 进位制与数制转换,进位制是指用一组固定的符号和统一的规则来表示数值大小的一种计数方法 。 几个概念一组数码用来表示某种进制的符号 基数数制所用的数码个数 位权表示不同位置上的权值 进位计数制十进制 二进制八进制 十六进制,4,2.1.1 进位制与数制转换,1. 进位计数制 (1)十进制 必须有10个有序数字符号:0、1、2、3、4、5、6、7、8、9和一个小数点符号“.”; 遵循做加法时“逢十进一” ,做减法时“退一当十”的计数规则; 任何一个十进制数都可以表示成以10为底的幂的多项式。,5,2.1.1 进位制与数制转换,基数为R的进位计数制的特点: 必须有R个有序数字符号:0、1、2、R
3、-1和一个小数点符号“.”; 遵循做加法时“逢R进一” ,做减法时“退一当R”的计数规则; 任何一个R进制数N都可以表示为:,6,2.1.1 进位制与数制转换,(2)二进制 二进制的数码符号有两个0和1,基数为2,运算规则为“逢二进一”,权为2n 。任意一个二进制数N可以表示为:优点: 表示简单可靠,所用元器件少,且存储传输二进制数方便。 运算规则简单,电路容易实现和控制。,7,2.1.1 进位制与数制转换,(3) 八进制 具有8个不同的数字符号0、1、2、3、4、5、6、7,基数为8,运算规则为“逢八进一” ,权为8n。任意一个八进制数N可以表示为:(4) 十六进制 具有16个不同的数字符号
4、0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,基数为16,运算规则为“逢十六进一” ,权为16n,8,2.1.1 进位制与数制转换,2. 数制转换 (1) R进制数转换为十进制数按权展开法:将任意一个R进制数转换成十进制数时,求出每一位数字与其位权的乘积之和,即可得到相应的十进制数。,9,举例: (11001.01)B =124+123+022+021+120+02-1+12-2 =16+8+1+0.25 =(25.25)D练习:(1011.11)B=( )D,11.75,10,2.1.1 进位制与数制转换,(2) 十进制转换为R进制 整数部分:除R取余用十进制整数除以基数R
5、取余数,直到商为0,得到的余数从右向左排列即可得到R进制整数部分各位的数码。 小数部分:乘R取整用十进制小数乘以基数R取整数,直到小数部分为0或满足精度要求为止,得到的整数从左向右排列即可得到R进制小数部分各位的数码。 对于既有整数又有小数的十进制数,可以先将整数和小数分别进行转换,然后再合并得到所要结果。,11,2.1.1 进位制与数制转换,【例】将(29. 25)10转换成二进制数 。整数部分:除2取余,将29反复除以2,直到商为0为止,然后从后往前写出所得余数。小数部分:乘2取整,将0.75连续乘以2,选取进位整数,直到乘积为0或满足精度为止,然后从前往后写出所选取的整数。所以,(29.
6、 25)10=(11101.01)2,12,减权定位法,从高位起将十进制数依次与二进制数各位的权值进行比较。 若够减,则对应位为1,减去该位权值后继续往下比较; 若不够减,则对应位为0,越过该位后继续往下比较; 如此反复进行,直到所有二进制位的位权都比较完为止。,13,14,1.按权相加法2.逐次乘基相加法,二进制 整数,十进制 整数,二进制 小数,十进制 小数,1.按权相加法2.逐次除基相加法,2.1.1 进位制与数制转换,(3)二八进制转换 二进制数转换为八进制数从小数点开始,将二进制数整数部分从右向左3位一组,小数部分从左向右3位为一组进行划分,最后一组若不足3位则用0补足,然后写出每组
7、对应的八进制字符,即可得到对应的八进制数。【例】将(1110100110.1011)2转换为八进制数 。解:,15,例: (1101001)2=(001,101,001)2=(151)8,(246)8=(010,100,110)2=(10100110)2,二进制和八进制对应表,000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7,二进制数与八进制数的直接转换,2进制8进制:从右向左,每3位一组转换,不足3位用0补足 8进制 2进制:用3位二进制数代替每一位八进制数,16,2.1.1 进位制与数制转换,八进制转换为二进制以小数点为界,将每位八进制数用相应
8、的3位二进制数代替,然后将其连在一起即可得到对应的二进制数。【例】将(5321.46)8转换为二进制数 。所以,(5321.46)8=(101 011 010 001.100 110)2,17,2.1.1 进位制与数制转换,(4)二十六进制转换 二进制数转换为十六进制数从小数点开始,将二进制数整数部分从右向左4位一组,小数部分从左向右4位为一组进行划分,最后一组若不足4位则用0补足,然后写出每组对应的十六进制字符,即可得到对应的十六进制数。【例】将(1110100110.1011)2转换为十六进制数。 解:,18,2进制16进制:从右向左,每4位一组转换,不足位用0补足 16进制 2进制:用4
9、位二进制数代替每一位十六进制数,(11010101111101)2=(0011,0101,0111,1101)2=(357D)16,(4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2,0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F,二进制和十六进制数对应表,例:,二进制数与十六进制数的直接转换,19,2.1.1 进位制与数制转换,十六进制转换为二进制以小数点为界,将每位十
10、六进制数用相应的4位二进制数代替,然后将其连在一起即可得到对应的十六进制数。【例】将(5B21.4F)16转换为二进制数。 解:所以,(5B21.4F)16=(0101 1011 0010 0001.0100 1111)2,20,2.1.1 进位制与数制转换,(5) 八十六进制转换以二进制为桥梁!八进制转换为十六进制时,先将八进制数转换为二进制数,再将得到的二进制数转换为十六进制数;反之,十六进制向八进制转换时,先将十六进制数转换为二进制数,再将得到的二进制数转换为八进制数。,21,2.1 数据型数据的表示方法,22,第一节 数据信息的表示,2.1.1 表示数据的大小,二进制、八进制、十六进制
11、、二-十进制,2.1.2 表示数据的符号,原码、补码、反码,2.1.3 表示小数点,定点、浮点,23,带符号数的表示(1) 机器数与真值的概念:有符号的数在计算机中表示时,通常用“0”表示正数,“1”表示负数,称为“符号数码化”.在机器中使用的连同数符一起数码化的数,称机器数。用正、负号加绝对值表示的数值,称真值。例如:设机器字长为8位,数 X1的真值为 +1001110,其对应的机器数就是01001110数 X2的真值为 -1001110, 其对应的机器数就是11001110,24,定点小数的原码定义为:,(1) 原码表示法 设某定点小数真值为 X, (数值部分为 n 位)其对应的原码序列(
12、机器数)为 X0 。X1 X2 Xn,25,设某定点整数真值为 X, (数值部分为 n 位)其对应的原码序列(机器数)为 X0 X1 X2 Xn,定点整数的原码定义为:,26,原码特点: 最高位为符号位,正数为0,负数为1,数值位与真值一样,保持不变。 “0”的原码表示有两种不同的表示形式,以整数(8位)为例:+0原=00000000, -0原=10000000 容易理解,与代数中正负数的表示接近,原码乘除运算比较方便,但是加减运算规则复杂。,(2) 补码表示法 设某定点小数真值为X,(数值部分为 n 位)其对应的补码序列(机器数)为 X0 X1 X2 X,定点小数的补码定义为:,28,定点整
13、数的补码定义为:,设某定点整数真值为X,(数值部分为 n 位)其对应的补码序列(机器数)为 X0 X1 X2 Xn,29,(3) 移码的表示设某定点整数真值为X,(数值部分为 n 位)X移 = 2n + X ( - 2n = X 2n )移码的特点:1、正数的移码符号位为 1 ,负数的符号位为 0 。2、同一个数,它的移码和补码表示时数值部分相同 符号,符号位相反。可表示为X移 = 2n + X补,原码的特点: 1、原码对 0 的表示有 +0、-0 之分。2、原码的符号位 X0不能和数值部分一起参加运算。补码的特点: 1、补码对0 的表示是唯一的。2、补码的符号位可以和数值部分一起参加运算。3
14、、相同字长的机器数,补码比原码多表示一个数(定点小数可以表示 1,定点整数可以表示-2n),30,3. 反码符号位用“0”表示正号,用“1”表示负号;正数的反码数值位与真值的数值位相同,负数的反码数值位是将真值各位按位取反(“0”变成“1”,“1”变成“0”)得到。 定点小数反码定义:定点整数反码定义:,2.1.3 数的定点表示与浮点表示,1. 定点表示法 定点数数的小数点位置固定不变。 一般地,小数点的位置只有两种约定: 一种约定小数点位置在符号位之后、有效数值部分最高位之前,即定点小数; 另一种约定小数点位置在有效数值部分最低位之后,即定点整数。,定点整数,1.无符号定点整数 通式为X 0
15、X 1X n 例:4位无符号整数 最小数 0000 最大数 1111表示范围:000111 0(2n+1-1)分辨率为1,33,00001111,024-1,n+1位,n+1位,定点整数,2.带符号定点整数 通式为X 0X 1X n原码表示: 例:4位原码整数(含1位符号位) 最小数1111 -(23-1) 最大数0111 23-1,34,符号位,尾数,11110111,-(23-1)(23-1),定点整数,2.带符号定点整数 通式为X 0X 1X n原码表示:,35,2.带符号定点整数 通式为X 0X 1X n原码表示: 表示范围:111011 -(2n-1)( 2n-1 )或表示为 -2n
16、X2n,符号位,尾数,n位,n位,2.带符号定点整数 补码表示 例:4位补码整数(含1位符号位) 最小数1000 -23 最大数0111 23-1表示范围:100011 -2n( 2n-1 )或表示为 -2nX2n,36,10000111,-23(23-1),n位,n位,3.带符号定点小数通式为X0.X1X2Xn 原码表示范围: -(1-2-n )( 1-2-n )或:-1X1 补码表示范围: -1( 1-2-n ),37,符号位,尾数,练习,1.分别写出下列各二进制数的原码与补码(字长8位,含一位数符) (1)0 (2)-0 (3)0.1010 (4)-0.1010 (5)1010 (6)-
17、1010 2.若X补=0.1010,写出其X原与真值X。 3.若X补=1.1010,写出其X原与真值X。,38,答案,1.2. 0.1010 +0.1010 3. 1.0110 -0.0110,39,习题答案1,P51 习题4,40,2.1.3 数的定点表示与浮点表示,注意: 不管是定点小数还是定点整数,计算机所处理的数必须在该定点数所能表示的范围之内,否则会发生溢出。 若数据小于定点数所能表示的最小值时,计算机将其作“0”处理,称为下溢。 若数据大于定点数能表示的最大值时,计算机将无法表示,称为上溢。 将上溢和下溢统称为溢出。 当有溢出发生时,CPU中的状态寄存器PSW中的溢出标志位将置位,
18、并进行溢出处理。,1. 定点表示法,无符号数,定点整数,定点小数,00000000 11111111,(0) (255),(-127) (127),(-128) (127),-(1-2-7) (1-2-7),(-1) (1-2-7),类型,42,阶码,尾数,阶符,数符,R:阶码底,隐含约定。,E:阶码,为定点整数,补码或移码表示。其位数决定数值范围;,阶符表示数的大小。,M:尾数,为定点小数,原码或补码表示。其位数决定数的精度;,数符表示数的正负。,尾数规格化:1/2 M 1,最高有效位绝对值为1,2. 浮点表示法,43,2. 表示范围与精度,表示范围:,-231 231 (1-2-9),例.
19、某规格化浮点数用补码表示,其中阶码6位,含1位阶符;尾数10位,含1位数符。,阶符1位,阶码m位,补码表示,以2为底; 数符1位,尾数n位,补码表示,规格化。,最小浮点数:,最大浮点数:,最小浮点正数:,阶码为最大数:,尾数为绝对值最大的负数:,-1,尾数为最大数:,阶码为最大数:,阶码为最小数:,尾数为最小正数:,2-1,表示精度:,2-33,44,数的定点表示与浮点表示,Pentium处理器三种类型浮点数格式 :,2.2非数值型数据的表示,1. 逻辑数据 可用一位二进制数表示事物的两个对立面,若用“1”表示事物成立,则“0”表示不成立 。 逻辑数据:如“0”和“1”,“真”和“假”,“是”
20、和“否” 等。 注意,逻辑数据“0”和“1”是逻辑概念,表达的是事物的逻辑关系,没有数值的大小之分。,2.2 非数值型数据的表示,2. 字符编码国际上通用的ASCII码是7位版本,即用7位二进制码表示,共有128(27=128)个字符,其中有32个控制字符, 10个阿拉伯数字,52个大小写英文字母, 32个各种标点符号和运算符号。 ASCII码字符表见课本表2-4。,2.2 非数值型数据的表示,2. 汉字编码 (1)汉字内码汉字机内码是汉字存储在计算机内的编码。汉字机内码、国标码和区位码3者之间的关系为: 区位码(十进制数)的两个字节分别转换为十六进制数后加20H得到对应的国标码; 国标码的两
21、个字节的最高位置1,即汉字交换码(国标码)的两个字节分别加80H即可得到对应的机内码; 区位码(十进制数)的两个字节分别转换为十六进制数后加A0H得到对应的机内码。,2.2 非数值型数据的表示,(2)汉字输入码直接从输入设备输入的各种汉字输入方法的编码。 汉字输入法大体可以分为以下几种: 流水码:如区位码、电报码、通信密码,优点是重码少,缺点是难于记忆; 音码:以汉语拼音为基准输入汉字,优点是容易掌握,但重码率高; 形码:根据汉字的字型进行编码,优点是重码少,但不容易掌握; 音形码:将音码和形码结合起来,能减少重码率,并提高汉字输入速度。,(3)汉字字模码汉字字形码是以点阵方式表示汉字,将汉字
22、分解为若干个“点”组成的点阵字形。 每个点在存储器中用一位二进制数存储,则对于nn点阵,一个汉字所需要的存储空间为nn/8个字节。 如一个1616点阵汉字需要32个字节的存储空间,一个2424点阵汉字需要72个字节的存储空间。,第二节 指令信息的表示,指令:指示计算机执行某类操作的信息的集合。,本节主要讨论:一般指令格式常用寻址方式面向用户指令类型,2.2.1 指令格式,指令基本格式,一个,一个或几个,51,1. 指令字长,定长指令格式 变长指令格式,便于控制,(1) 定长操作码 各指令的位置、位数固定相同。 (2)扩展操作码 各指令的位置、位数不固定,根据需要 变化。,合理利用存储空间,2.
23、 操作码结构,关键在设置扩展标志。,52,例. 指令字长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条,53,(3)复合型操作码 操作码分为几部分,每部分表示一种操作。 例.某机算逻指令,3. 地址结构,指令中
24、提供的地址数,存储单元地址码 寄存器编号,(1)指令提供地址的方式 显地址方式 隐地址方式,:指令中明显指明地址。 :地址隐含约定,不出现在指令中。,直接或间接给出,54,(2) 地址结构的简化,操作数地址, 四地址结构指令 格式:,使用隐地址可以减少指令中的地址数,简化 地址结构。,结果地址,下条指令地址,功能:,用指令计数器PC指示指令地址。,55,三地址结构指令 格式:,操作数地址,结果地址,下条指令地址,功能:,转移时,用转移 地址修改PC内容。,源/目的,二地址结构指令 格式:,目的/源,功能:,56,双操作数:,一地址结构指令 格式:,隐含约定,单操作数:,功能:,零地址结构指令
25、格式:,功能:,用于堆栈或特殊指令操作。,57,例.ADD;,执行前:,低,执行后:,高,低,高,58,2.2.2 寻址方式,是指寻找操作数地址或操作数的方式。,(1) 立即寻址,指令直接给出操作数。,1. 常见寻址方式,定长格式:,变长格式:,数在指令中,其长度固定、有限。,数在基本指令之后,其长度可变。,用来提供常数、设置初值等。,59,(2) 直接寻址,指令直接给出操作数地址。,存储单元号 寄存器号,(数在M中) (数在R中), 存储器直接寻址,(直接寻址),定长格式,D的位数有限, 限制访存范围,变长格式,D的位数可覆盖 整个存储空间,S =(D),60,61,结果为:读得操作数为 1
26、B00H,结果为:读得操作数S=3A00H,存储单元号 寄存器号,(数在M中) (数在M中), 寄存器直接寻址,(寄存器寻址),格式,R所占位数少; 访问R比访问M快,格式,S =(R),用于访问固定的存储单元或寄存器。,(3)间接寻址,指令给出操作数的间接地址。, 存储器间址,D=0030,0060,.,0060,S,.,S =(D),M,间址单元,地址指针,62,63,结果为:读得操作数为S= AC00H, 寄存器间址,格式,R所占位数少;R可提供全字长地址码; 修改R内容比修改M内容快。,S =(R),指针不变(由指令指定),指针内容可变,使同一指令可指向不同存储单元,以实现程序的循环、
27、共享,并提供转移地址。,R=02,M,0040,S,.,.,.,地址指针,64,65,结果为:读得操作数为S= 2C00H,66,2.自减型寄存器间址 -(R),寄存器号,寄存器内容减1后为操作数地址,操作数,R,M,1.自增型寄存器间址 (R)+,寄存器号,操作数地址,M,操作数,内容加1,R,R,67,结果为:读得操作数为S= A300H指针内容修改为 3001H,结果为:指针内容修改为 2FFFH,读得操作数为S= 27FFH,格式, 变址寻址,(4)变址、基址寻址及其变化,指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,68,D的位数有限,若不能提供全字长地址码,
28、会使访存空间受到限制。,变址寄存器号,例. 用变址方式访问一组连续区间内的数组元素。,S =(RX)+ D),D=首址,D为存储区首址; (RX)为所访单元距离 首址的长度; RX初值为0,每访问一 个单元,(RX)+1。,形式地址,修改量,基准地址,D+1,D+2,D+n-1,.,69,70,结果为:读得操作数为S= 2C00H,变址计算:D+N=1000H+0030H=1030H,格式,(D的位数只需覆盖一个较小的存储区间), 基址寻址,基址寄存器号,4K,指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,位移量,S =(Rb)+ D),基准地址,相对于基址的位移,4K
29、,改变Rb的内容,程序能访问存储空间中任何一个定长区间(4K)。,71,72,结果为:读得操作数为S= 7A3CH,有效地址:2000H+007FH=207FH,便于访问两维数组中某类 指定的元素。,变址与基址的区别:,变址:指令提供基准量(不变),R提供修改量(可变);适于处理一维数组。,基址:指令提供位移量(不变),R提供基准量(可变);用于扩大有限字长指令的访存空间。,73,S =(RX)+(Rb)+ D),格式, 基址加变址,变址寄存器号,指令给出两个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,位移量,基址寄存器号,便于处理两维数组。,格式, 相对寻址,指令给出位移量,P
30、C内容与位移量之和为有效地址。,位移量,或隐含指定,S =(PC)D),有效地址相对PC上下浮动,给编程带来方便。,74,75,结果为:读得操作数为S= AF00H,有效地址:1000H+0003H=1003H,格式, 页面寻址,指令给出位移量,PC的高位部分与位移量拼接,形成有效地址。,位移量,或隐含指定,S =(PC)H,D),例. M为64KB,划分为256页,每页256B。,页号,页内地址,用于页式管理存储系统。 寻址速度快,适于组织程序模块, 有效利用存储空间。,017CH,S,76,77,结果为:读得操作数为S= AC00H,有效地址:10+FF=10FFH,78,格式, 堆栈寻址
31、,SP,S =(SP),M,栈顶,.,S,.,.,SP既可出现在指令中,也可隐含约定。,堆栈向上生成,压栈:,SP自动减1,再存数。 -(SP),自减型间址。,先取数,SP再自动加1。 (SP)+,自增型间址。,出栈:,79,PUSH(进栈、压栈),00FFH,00FFH,00FEH,(SP)=00FFH,(SP)-1 SP,POP(出栈),00FFH,00FDH,(SP)+1 SP,(SP)=00FDH,00FEH,00FDH,练习,P79 习题 8,12,80,2. 对寻址方式的说明,(1)操作码隐含说明不同寻址方式,例.某机指令操作码最高两位,00:RR型指令,寄存器-寄存器寻址 01:
32、RX型指令,寄存器-变址寻址 10:SI型指令,基址-立即寻址 11:SS型指令,基址-基址寻址,81,(2)指令中设置专门字段说明寻址方式,例.某机指令的每个地址字段中各设置一个 3位的寻址方式字段。,源地址字段,目的地址字段,3位,3位,82,2.2.3 指令类型,1.传送指令,源地址 目的地址,数,设置时需考虑:,(1)规定传送范围,例. DJS-100系列:,80X86:,IBM370:,83,(2)指明传送单位,例. 用操作码说明(VAX-11):,用地址量说明(80X86):,传送次数由计数器控制,MOVB8,MOV AX,BX,MOVW16,MOVL32,MOV AL,BL,MO
33、V EAX,EBX,例. 80X86的串传送指令:REP MOVSW,(3)设置寻址方式,在寻址方式的设置上几乎不受限制,能比较 集中地反映指令系统各种寻址方式的实现。,8,16,32,84,85,例2-60.执行一条传送指令“MOV R1 ,R0 ”, 其功能为将R0 的内容传送(复制)到R1,执行前后寄存器内容如下:,R0,AC00H,XXXX,R1,执行后:,执行前:,R0,AC00H,R1,AC00H,2.访存指令,功能:主存储器与CPU寄存器之间的数据传送 (1)加载指令(读存储器) (2)存储指令(写入存储器) (3)弹出(POP) (4)压栈(PUSH),86,3.输入/输出指令
34、,各种信息,设置时需考虑:,(1)I/O指令的功能扩展,如何用通用I/O指令实现对各种具体设备的控制?, I/O指令中留有扩展余地,指令中某些字段编码事先不定义,需要时再约定 其含义。, I/O接口中设置控制/状态寄存器,用于外设种类、数量不多的场合。,87,(2)主机对外设的寻址方式,如何设置控制/状态寄存器是接口设计的关键。,寻找I/O接口中的寄存器的方式。,主机用输出指令或传送指令将具体设备的控制命令 按约定的代码格式送往接口中的控制寄存器,向外 设发出命令。 外设的状态信息也以某种格式放在接口的状态寄存 器中,主机用输入指令或传送指令从状态寄存器中 取出有关信息进行查询、分析。,I/O
35、端口,寻找I/O接口中的寄存器的方式。,如何为I/O端口分配地址?,88, 单独编址,I/O地址空间不占主存空间,可与主存空间重叠。,=1 访问存储器 =0 访问I/O端口,需设置标志区分访问对象,如,编址到寄存器:为每个寄存器(I/O端口)分配独立的端口地址;I/O指令中给出端口地址。,89, 统一编址,I/O端口占据部分主存空间。 常将存储空间的低端分配给主存单元,高端分配 给I/O端口,以示区分。,编址到寄存器, 设置专用I/O指令 针对单独编址,用I/O指令访问I/O端口。 指令中说明输入/输出操作,并给出端口地址。,:为每个寄存器(I/O端口)分配总线地址;访问外设时,指令中给出总线
36、地址。,(3)I/O指令设置方式,显式I/O指令,90,例. 80X86I/O指令设置,输入:IN AL,n;,端口地址,(直接端口寻址),IN AL,DX;,间接端口地址,(间接端口寻址),输出:OUT n,AL;,(直接端口寻址),OUT DX,AL;,(间接端口寻址),91,主机调用输入机:, 用传送指令实现I/O操作 针对统一编址,用传送指令访问I/O端口。 不设专用I/O指令。,例. 某机I/O接口中设置 控制/状态寄存器CSR,其总线地址为177550(8进制) 数据缓冲寄存器DBR,其总线地址为177552,隐式I/O指令,控制/状态字格式:,15 14 12 7 6 2 1 0
37、,启动: 测试: 取数:,92, 通过I/O处理机进行I/O操作,CPU执行简单I/O指令(启动、停止、查询、清除),设置时需考虑操作数类型、符号、进制等; 运算结束后设置相应状态标志。,两级I/O指令,(1)算术运算指令,I/O处理机执行I/O操作指令(输入、输出),4.算术逻辑运算指令,(2)逻辑运算指令,实现对代码位的设置、测试、清除、修改等。,与,或,异或,93,94,例2-62 测试某指定位是否为1,目的操作数A,屏蔽字B,11001010,00001000,A AND B,00001000,例2-63 利用“与”实现按位分离,目的操作数A,屏蔽字B,11001010,0000111
38、1,A AND B,00001010,95,例2-64 位清除,目的操作数A,屏蔽字B,11001010,11110111,A AND B,11000010,例2-65 位设置,目的操作数A,屏蔽字B,11001010,00000100,A OR B,11001110,96,例2-66 位修改,目的操作数A,屏蔽字B,11001010,00001000,A EOR B,11000010,例2-67 判符合,目的操作数A,B,11001010,11001010,A EOR B,00000000,1 A= A,控制程序流程。,(1)转移指令,5. 程序控制指令,(2)转子指令与返回指令,转子:操作
39、码 子程序入口,无条件转移 条件转移 循环,:操作码 转移地址 :操作码 转移地址 转移条件 :转移条件为循环计数值,返回:操作码 返回地址,同一条返回指令应能提供多个不同的返回地址。 返回地址的存取:,用堆栈存放返回地址。,97,(3)软中断指令,程序,自陷指令,第二章复习提纲 1.I/O指令的功能扩展(目的、方法),外设编址方 式和指令设置方式。 2.基本概念:扩展操作码(扩展方法)、地址结构 (简化方法)、隐地址、显地址、基本寻址方式(立 即、直接、间址、变址)的含义与应用场合。,表示不同的功能调用,调试程序,早期主要用于程序的调试。,现在常常用于系统功能调用。,以 INT n 的形式出现在程序中。,98,