2信息表示解析_第1页
2信息表示解析_第2页
2信息表示解析_第3页
2信息表示解析_第4页
2信息表示解析_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章第二章 计算机中的信息表示计算机中的信息表示 数据信息数据信息控制信息控制信息数值型数据数值型数据非数值型数据非数值型数据指令信息等指令信息等 第一节第一节 数据信息的表示数据信息的表示 2.1.1 表示数据的大小表示数据的大小二进制、八进制、十六进制、二二进制、八进制、十六进制、二-十进制十进制2.1.2 表示数据的符号表示数据的符号原码、补码、反码原码、补码、反码2.1.3 表示小数点表示小数点定点、浮点定点、浮点2.1.1 进位制与数制转换u进位制是指用一组固定的符号和统一的规则来表示数值大小的一种计数方法 。u几个概念 一组数码用来表示某种进制的符号 基数数制所用的数码个数 位权

2、表示不同位置上的权值u进位计数制十进制 二进制 八进制 十六进制2.1.1 进位制与数制转换u1. 进位计数制u(1)十进制必须有10个有序数字符号:0、1、2、3、4、5、6、7、8、9和一个小数点符号“.”;遵循做加法时“逢十进一” ,做减法时“借一当十”的计数规则;任何一个十进制数都可以表示成以10为底的幂的多项式。1221100112211102101211010)10()10()10( )10()10()10()10().()(nmiiimmnnnnmnnKKKKKKKKKKKKKKKN2.1.1 进位制与数制转换u基数为R的进位计数制的特点:必须有R个有序数字符号:0、1、2、R-

3、1和一个小数点符号“.”;遵循做加法时“逢R进一” ,做减法时“借一当R”的计数规则;任何一个R进制数N都可以表示为:1221100112211210121)()()( )()()()().()(nmiiimmnnnnRmnnRRKRKRKRKRKRKRKRKKKKKKKKN2.1.1 进位制与数制转换u(2)二进制二进制的数码符号有两个0和1,基数为2,运算规则为“逢二进一,借一当二”,权为2n 。任意一个二进制数N可以表示为:优点:表示简单可靠,所用元器件少,且存储传输二进制数方便。运算规则简单,电路容易实现和控制。 1221012122).()(nmiiimnnKKKKKKKKN2.1.

4、1 进位制与数制转换u(3) 八进制具有8个不同的数字符号0、1、2、3、4、5、6、7,基数为8,运算规则为“逢八进一,借一当八” ,权为8n。任意一个八进制数N可以表示为:u(4) 十六进制具有16个不同的数字符号0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,基数为16,运算规则为“逢十六进一,借一当十六” ,权为16n 1821012188).()(nmiiimnnKKKKKKKKN1162101211616).()(nmiiimnnKKKKKKKKN2.1.1 进位制与数制转换u2. 数制转换(1) R进制数转换为十进制数按权展开法:将任意一个R进制数转换成十进制数时

5、,求出每一位数字与其位权的乘积之和,即可得到相应的十进制数。mmnnnnRmnnRKRKRKRKRKRKRKKKKKKKK)()()()()()()().(2211001122112101212.1.1 进位制与数制转换(2) 十进制转换为R进制整数部分:除基取余用十进制整数除以基数R取余数,直到商为0,得到的余数从右向左排列即可得到R进制整数部分各位的数码。小数部分:乘基取整用十进制小数乘以基数R取整数,直到小数部分为0或满足精度要求为止,得到的整数从左向右排列即可得到R进制小数部分各位的数码。对于既有整数又有小数的十进制数,可以先将整数和小数分别进行转换,然后再合并得到所要结果。 2.1.

6、1 进位制与数制转换u【例】将(29. 25)10转换成二进制数 。解: 整数部分:除2取余,将29反复除以2,直到商为0为止,然后从后往前写出所得余数。小数部分:乘2取整,将0.75连续乘以2,选取进位整数,直到乘积为0或满足精度为止,然后从前往后写出所选取的整数。所以,(29. 25)10=(11101.01)22.1.1 进位制与数制转换u(3)二八进制转换 二进制数转换为八进制数从小数点开始,将二进制数整数部分从右向左3位一组,小数部分从左向右3为一组进行划分,最后一组若不足3位则用0补足,然后写出每组对应的八进制字符,即可得到对应的八进制数。【例】将(1110100110.1011)

7、2转换为八进制数 。解:2.1.1 进位制与数制转换八进制转换为二进制以小数点为界,将每位八进制数用相应的3位二进制数代替,然后将其连在一起即可得到对应的二进制数。【例】将(5321.46)8转换为二进制数 。所以,(5321.46)8=(101 011 010 001.100 110)22.1.1 进位制与数制转换u(4)二十六进制转换 二进制数转换为十六进制数从小数点开始,将二进制数整数部分从右向左4位一组,小数部分从左向右4为一组进行划分,最后一组若不足4位则用0补足,然后写出每组对应的十六进制字符,即可得到对应的十六进制数。【例】将(1110100110.1011)2转换为十六进制数。

8、 解:2.1.1 进位制与数制转换十六进制转换为二进制以小数点为界,将每位十六进制数用相应的4位二进制数代替,然后将其连在一起即可得到对应的十六进制数。【例】将(5B21.4F)16转换为二进制数。 解:所以,(5B21.4F)16=(0101 1011 0010 0001.0100 1111)2 BCD码u例: (156)10=(0001 0101 0110)BCD2.1.1 进位制与数制转换u(5) 八十六进制转换以二进制为桥梁!八进制转换为十六进制时,先将八进制数转换为二进制数,再将得到的二进制数转换为十六进制数;反之,十六进制向八进制转换时,先将十六进制数转换为二进制数,再将得到的二进

9、制数转换为八进制数。2.1.2 带符号数的表示机器数在机器内使用的,连同正、负号一起数字化的数。u1. 原码数值位用绝对值表示;符号位用“0”表示正号,用“1”表示负号。换句话说,即数字化的符号位加上数的绝对值。 定点小数的原码定义定点整数的原码定义2.1.2 带符号数的表示u原码特点:最高位为符号位,正数为0,负数为1,数值位与真值一样,保持不变。“0”的原码表示有两种不同的表示形式,以整数(8位)为例:+0原=00000000, -0原=10000000容易理解,与代数中正负数的表示接近,原码乘除运算比较方便,但是加减运算规则复杂。2.1.2 带符号数的表示u2. 反码符号位用“0”表示正

10、号,用“1”表示负号;正数的反码数值位与真值的数值位相同,负数的反码数值位是将真值各位按位取反(“0”变成“1”,“1”变成“0”)得到。 定点小数反码定义:定点整数反码定义:2.1.2 带符号数的表示u3. 补码 符号位用“0”表示正号,用“1”表示负号;正数补码的数值位与真值的数值位相同,负数补码的数值位将真值各位按位取反后,最低位加1得到。 定点小数补码定义:定点整数补码定义:2.1.3 数的定点表示与浮点表示u1. 定点表示法定点数数的小数点位置固定不变。一般地,小数点的位置只有两种约定:一种约定小数点位置在符号位之后、有效数值部分最高位之前,即定点小数;另一种约定小数点位置在有效数值

11、部分最低位之后,即定点整数。 2.1.3 数的定点表示与浮点表示u注意:不管是定点小数还是定点整数,计算机所处理的数必须在该定点数所能表示的范围之内,否则会发生溢出。若数据小于定点数所能表示的最小值时,计算机将其作“0”处理,称为下溢。若数据大于定点数能表示的最大值时,计算机将无法表示,称为上溢。将上溢和下溢统称为溢出。2.1.3 数的定点表示与浮点表示u2. 浮点数表示浮点数数的小数点位置不固定。 二进制所表示的浮点数的一般形式:M=S2P,其中纯小数S是数M的尾数,表示数的精度;整数P是数M的阶码,确定了小数点的位置,表示数的范围; 2P为比例因子。 2.1.3 数的定点表示与浮点表示u计

12、算机中浮点数的格式 如下:其中,ES为阶码的符号位,表示阶的正负;MS为尾数的符号位,表示阶的正负。E1 E2 E3 EmMSM1 M2 M3 Mn阶符尾数尾符ES阶码2.1.3 数的定点表示与浮点表示uPentium处理器三种类型浮点数格式 :参数 单精度浮点数 双精度浮点数 扩充精度浮点数 浮点数长度(字长) 32 64 80 尾数长度P 23 52 64 符号位S位数 1 1 1 指数E长度 8 11 15 最大指数 +127 +1023 +16383 最小指数 -126 -1022 -16382 2.1.4 非数值型数据的表示u1. 逻辑数据可用一位二进制数表示事物的两个对立面,若用“

13、1”表示事物成立,则“0”表示不成立 。逻辑数据:如“0”和“1”,“真”和“假”,“是”和“否” 等。注意,逻辑数据“0”和“1”是逻辑概念,表达的是事物的逻辑关系,没有数值的大小之分。2.1.4 非数值型数据的表示u2. 字符编码国际上通用的ASCII码是7位版本,即用7位二进制码表示,共有128(27=128)个字符,其中有32个控制字符, 10个阿拉伯数字,52个大小写英文字母, 32个各种标点符号和运算符号。 ASCII码字符表见课本表2-5 。2.1.4 非数值型数据的表示2. 汉字编码(2)汉字输入码直接从输入设备输入的各种汉字输入方法的编码。汉字输入法大体可以分为以下几种: u

14、流水码:如区位码、电报码、通信密码,优点是重码少,缺点是难于记忆; u音码:以汉语拼音为基准输入汉字,优点是容易掌握,但重码率高; u形码:根据汉字的字型进行编码,优点是重码少,但不容易掌握; u音形码:将音码和形码结合起来,能减少重码率,并提高汉字输入速度。 2.1.4 非数值型数据的表示(1)汉字内码汉字机内码是汉字存储在计算机内的编码。汉字机内码、国标码和区位码3者之间的关系为:区位码(十进制数)的两个字节分别转换为十六进制数后加20H得到对应的国标码;国标码的两个字节的最高位置1,即汉字交换码(国标码)的两个字节分别加80H即可得到对应的机内码;区位码(十进制数)的两个字节分别转换为十

15、六进制数后加A0H得到对应的机内码。u(3)汉字字模码汉字字形码是以点阵方式表示汉字,将汉字分解为若干个“点”组成的点阵字形。 每个点在存储器中用一位二进制数存储,则对于nn点阵,一个汉字所需要的存储空间为nn/8个字节。 如一个1616点阵汉字需要32个字节的存储空间,一个2424点阵汉字需要72个字节的存储空间。 第二节第二节 指令信息的表示指令信息的表示 指令:指示计算机执行某类操作的信息的集合。指令:指示计算机执行某类操作的信息的集合。本节主要讨论:一般本节主要讨论:一般指令格式指令格式 常用常用寻址方式寻址方式 面向用户面向用户指令类型指令类型2.2.1 指令格式指令格式指令基本格式

16、指令基本格式操作码操作码 地址码地址码 D D一个一个一个或几个一个或几个MOV AX,SIADD AX,AX;a*2MOV DX,AXADD AX,AX;a*4ADD AX,AX;a*8ADD AX,DX;a*8 + a*2ADD AX,DI ;a*10+b1. 指令字长指令字长定长指令格式定长指令格式变长指令格式变长指令格式便于控制便于控制(1) 定长操作码定长操作码各指令各指令的位置、位数固定相同。的位置、位数固定相同。(2 2)扩展操作码)扩展操作码各指令各指令的位置、位数不固定,根据需要的位置、位数不固定,根据需要变化。变化。合理利用存储空间合理利用存储空间2. 操作码结构操作码结构

17、例例. 指令字长指令字长16位,可含有位,可含有3 3、2 2、1 1或或0 0个地址,每个地址占个地址,每个地址占4 4位。位。操作码操作码 地址码地址码 15 12 11 8 7 4 3 00000 0000 X X Y Y Z Z 1110 1110 X X Y Y Z Z.11111111 0000 0000 Y ZY Z 1111 1111 1110 1110 Y ZY Z.三地址指令三地址指令 1515条条二地址指令二地址指令 1515条条11111111 11111111 0000 0000 Z Z 1111 11111111 1111 1110 1110 Z Z.一地址指令一地

18、址指令 1515条条11111111 11111111 11111111 0000 0000 1111 11111111 1111 11111111 1111 1111.零地址指令零地址指令 1616条条 指令的寻址方式 指令寻址找出下一条将要执行的指令在存储器中的地址。 u1. 顺序寻址方式存储器指令n指令n+1指令n+2指令n+m指令寄存器PC+1nn+1指令的寻址方式u2. 跳跃寻址方式采用指令跳跃寻址方式,可以实现程序转移或构成循环程序,从而能缩短程序长度,或将某些程序作为公共程序引用。 存储器指令n转移地址(m)指令n+1指令m指令寄存器PC+1nm3. 地址结构地址结构指令中提供的

19、地址数指令中提供的地址数存储单元地址码存储单元地址码寄存器编号寄存器编号(1)指令提供地址的方式)指令提供地址的方式显地址方式显地址方式隐地址方式隐地址方式:指令中明显指明地址。指令中明显指明地址。:地址隐含约定地址隐含约定,不出现在指令中。不出现在指令中。直接或间接给出直接或间接给出使用使用隐地址隐地址可以减少指令中的地址数,可以减少指令中的地址数,简化简化地址结构地址结构。(2) 地址结构的简化地址结构的简化操作数操作数地址地址 四地址结构指令四地址结构指令格式:格式: D1 D2 D3 D4 D1 D2 D3 D4结果结果地址地址下条指下条指令地址令地址功能:功能: (D1)(D1)(D

20、2) D3(D2) D3(D4) (D4) 下条指令下条指令用指令计数器用指令计数器PCPC指示指令地址。指示指令地址。三地址结构指令三地址结构指令格式:格式:操作数操作数地址地址 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) +

21、1 PC(PC) + 1 PC双操作数:双操作数:一地址结构指令一地址结构指令格式:格式: D1 D1 隐含约定隐含约定单操作数:单操作数:功能:功能:零地址结构指令零地址结构指令格式:格式:(D1)(D1)(A) A(A) A(PC) + 1 PC(PC) + 1 PC(D1) D1(D1) D1(PC) + 1 PC(PC) + 1 PC 功能:功能:用于堆栈或特殊指令操作。用于堆栈或特殊指令操作。2.2.2 寻址方式寻址方式与数据有关的寻址方式与数据有关的寻址方式 确定内存单元的地址确定内存单元的地址与转移地址有关的寻址方式与转移地址有关的寻址方式 确定转移地址确定转移地址寻址方式寻址方

22、式 分类分类目的操作数,目的操作数,源操作数源操作数MOV以以MOV指令为例指令为例: u寄存器操作数寄存器操作数放在放在8个通用寄存器或个通用寄存器或4个段寄存器中的操作数个段寄存器中的操作数只能存放字操作数只能存放字操作数段寄存器存放段寄存器存放当前操作数的当前操作数的段基地址段基地址SIDIBPSPCSDSESSS(1)立即寻址方式立即寻址方式 (Immediate Addressing )特点:特点:操作数包含在指令中。操作数包含在指令中。 操作数是指令的组成部分(可以是操作数是指令的组成部分(可以是8 8位或位或1616位)位), ,取出指令就立即获得取出指令就立即获得操作数操作数立

23、即数立即数例例1: MOV AL, 5执行指令后执行指令后: (AL) = 05H指令指令05存储器存储器B005AL例例2: MOV AX, 3045H执行指令后执行指令后: (AX) = 3045H用途:用途:给变量或寄存器赋常量值给变量或寄存器赋常量值限制:限制:只能用于源操作数只能用于源操作数AX低地址低地址高地址高地址指指令令OP45存储器存储器304530(2)存储器直接寻址方式)存储器直接寻址方式 (Direct Addressing )特点:特点:操作数的偏移地址包含在指令中。操作数的偏移地址包含在指令中。例:设例:设 ( DS ) = 3000H MOV AX, 2000H要

24、访问的存储单元物理地址为:要访问的存储单元物理地址为: 30000H+2000H=32000H设设: (32000H)=3050H执行指令后执行指令后: (AX)=3050H指令指令 MOV AX, 2000H 2000H5030存储器存储器代码段代码段op0020数据段数据段30000H32000HAX3050用途用途: 用于存取用于存取单变量单变量中的操作数中的操作数。(3)寄存器寻址方式()寄存器寻址方式(Register Addressing )特点:特点:操作数存在寄存器中。操作数存在寄存器中。例:例: MOV AX, BX执行指令前执行指令前: (AX) = 3045H (BX)

25、= 4000H 执行指令后执行指令后: (AX) = 4000H (BX) = 4000H 用途:用途:用寄存器提供操作数时存取速度快。用寄存器提供操作数时存取速度快。 存储单元号存储单元号寄存器号寄存器号( (数在数在M M中中) )( (数在数在M M中中) )格式格式(3 3)间接寻址)间接寻址指令给出操作数的间接地址。指令给出操作数的间接地址。 存储器间址存储器间址操作码操作码 间接地址间接地址D D D=0030D=003000600060.00600060 S S.S =(D)S =(D) M间址单元间址单元地址指针地址指针 1000H1000HAXAX用途用途: : 可用于处理数

26、组可用于处理数组5050A0A0 A A0 0 5050存储器存储器数据段数据段20000H20000H21000H21000H XXXX XXXX21002H21002H例:设例:设 ( DS ) = 2000H ( DS ) = 2000H ( BX ) = ( BX ) = 1000H1000H指令为指令为: : MOV AX, BX MOV AX, BX 数组起始地址数组起始地址 寄存器间接寻址方式寄存器间接寻址方式计算操作数物理地址的公式:计算操作数物理地址的公式:物理地址物理地址= =(DSDS) 16+16+(BX)(BX)(SI)(SI)(DI)(DI)20000H20000H

27、+ +1000H1000H = = 21000H21000H 要访问的存储单元要访问的存储单元物理地址物理地址为:为:设设: (: (21000H21000H)=)=50A0H50A0H执行指令后执行指令后: (: (AXAX)=)=50A0H50A0H= =(SSSS) 16+16+(BPBP) 1000H1000HAXAX用途用途: : 可用于处理数组可用于处理数组5050A0A0 A A0 0 5050存储器存储器数据段数据段20000H20000H21000H21000H XXXX XXXX21002H21002H例:设例:设 ( DS ) = 2000H ( DS ) = 2000H

28、 ARRAY = ARRAY = 1000H1000H指令为指令为: : MOV AX, MOV AX, ARRAY ARRAY 数组起始地址数组起始地址 存储器间接寻址方式存储器间接寻址方式20000H20000H+ + ARRAYARRAY = = 21000H21000H 要访问的存储单元要访问的存储单元物理地址物理地址为:为:设设: (: (21000H21000H)=)=50A0H50A0H执行指令后执行指令后: (: (AXAX)=)=50A0H50A0H基址寻址和变址寻址方式基址寻址和变址寻址方式+ +指令中的位移量指令中的位移量 = = 操作数的偏移地址操作数的偏移地址计算操作

29、数物理地址的公式:计算操作数物理地址的公式:1) 1) 操作数物理地址操作数物理地址= =(DS)(DS) 16+16+2) 2) 操作数物理地址操作数物理地址= =(SS)(SS) 16+ (BP) +16+ (BP) +8 8位位移量位位移量1616位位移量位位移量+ +(SI)(SI)(DI)(DI)(BX)(BX)8 8位位移量位位移量1616位位移量位位移量基址寄存器(基址寄存器(BXBX、BPBP)变址寄存器(变址寄存器(SISI、DIDI)指令指令 4000H4000H30000H30000HAXAX12123434例:设例:设 ( DS ) = 3000H ARRAY=( DS

30、 ) = 3000H ARRAY=4000H4000H ( SI ) = ( SI ) = 2000H2000H指令为指令为: : MOV AX, ARRAY SI MOV AX, ARRAY SI 3434 1212存储器存储器代码段代码段 opop 0000 4040数据段数据段36000H36000H opop 2000H2000H 数组起始地址数组起始地址30000H30000H+ +4000H4000H+2000H = +2000H = 36000H36000H 要访问的存储单元要访问的存储单元物理地址物理地址为:为:设设: (: (36000H36000H)=)=1234H1234

31、H用途用途: : 可用于处理数组可用于处理数组执行指令后执行指令后: (: (AXAX)=)=1234H1234H指令指令 4000H4000H30000H30000HAXAX12123434例:设例:设 ( DS ) = 3000H ARRAY=( DS ) = 3000H ARRAY=4000H4000H ( BX ) = ( BX ) = 2000H2000H指令为指令为: : MOV AX, ARRAY BX MOV AX, ARRAY BX 3434 1212存储器存储器代码段代码段 opop 0000 4040数据段数据段36000H36000H opop 2000H2000H 数

32、组起始地址数组起始地址30000H30000H+ +4000H4000H+2000H = +2000H = 36000H36000H 要访问的存储单元要访问的存储单元物理地址物理地址为:为:设设: (: (36000H36000H)=)=1234H1234H用途用途: : 可用于处理数组可用于处理数组执行指令后执行指令后: (: (AXAX)=)=1234H1234H 基址变址寻址方式基址变址寻址方式特点:特点:( (基址寄存器基址寄存器) ) + + ( (变址寄存器变址寄存器) ) = = 操作数的偏移地址操作数的偏移地址计算操作数物理地址的公式:计算操作数物理地址的公式:1) 1) 操作

33、数物理地址操作数物理地址= =(DS)(DS) 16+16+2) 2) 操作数物理地址操作数物理地址= =( SS)( SS) 16+ (BP) +16+ (BP) +(BX) +(BX) +(SI)(SI)(DI)(DI)(SI)(SI)(DI)(DI) 0158H0158HAXAX12123434例:设例:设 ( DS ) = 2100H( DS ) = 2100H( BX ) = ( BX ) = 0158H0158H( DI ) = ( DI ) = 1000H1000H指令为:指令为:MOV AX, BX+DIMOV AX, BX+DI 3434 1212存储器存储器数据段数据段21

34、000H21000H22158H22158H 1000H1000H 数组起始地址数组起始地址21000H21000H+ +0158H0158H+ +1000H1000H= = 22158H22158H 要访问的存储单元要访问的存储单元物理地址物理地址为:为:设设: (: (22158H22158H)=)=1234H1234H执行指令后执行指令后: (: (AXAX)=)=1234H1234H用途用途: : 可用于处理数组可用于处理数组 假设已知假设已知(DS)=2900H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)= 0100H,(BP)=0010H,变量名,变

35、量名VAL的值为的值为0050H,试指出,试指出下列源操作数字段的寻址方式是什么?其物理地址值是多下列源操作数字段的寻址方式是什么?其物理地址值是多少?少? (1) MOV AX,0ABH (2) MOV AX,BX (3) MOV AX,100H (4) MOV AX,VAL (5) MOV AX,BX (6) MOV AX,SI (7) MOV AX,BX+10 (8) MOV AX,VALBX (9) MOV AX,BXSI 2.2.3 2.2.3 指令类型指令类型1.1.传送指令传送指令源地址源地址 目的地址目的地址数数设置时需考虑:设置时需考虑:(1 1)规定传送范围)规定传送范围例

36、例. DJS-100. DJS-100系列:系列: 8 80 0X86X86: IBM370 IBM370:R R M MR R M M,R R R RR R M M,R R R R,M M M M(2 2)指明传送单位)指明传送单位例例. . 用操作码说明用操作码说明(VAX-11)(VAX-11):用地址量说明用地址量说明(8(80 0X86)X86):传送次数由传送次数由计数器控制计数器控制MOVMOVB B 8 8MOV MOV AXAX,BXBX MOVMOVW W 1616MOVMOVL L 3232MOV MOV ALAL,BLBL MOV MOV EAXEAX,EBXEBX 例

37、例. 80X86. 80X86的串传送指令:的串传送指令:REPREP MOVSWMOVSW(3 3)设置寻址方式)设置寻址方式在寻址方式的设置上几乎不受限制,能比较在寻址方式的设置上几乎不受限制,能比较集中地反映指令系统各种寻址方式的实现。集中地反映指令系统各种寻址方式的实现。8 8161632322.2.输入输入/ /输出指令输出指令各种信息各种信息主机主机 外设外设设置时需考虑:设置时需考虑:(1 1)I/OI/O指令的功能扩展指令的功能扩展如何用通用如何用通用I/OI/O指令实现对各种具体设备的控制?指令实现对各种具体设备的控制? I/O I/O指令中留有扩展余地指令中留有扩展余地指令

38、中某些字段编码事先不定义,需要时再约定指令中某些字段编码事先不定义,需要时再约定其含义。其含义。 I/O I/O接口中设置控制接口中设置控制/ /状态寄存器状态寄存器用于外设种类、数量不多的场合。用于外设种类、数量不多的场合。(2 2)主机对外设的寻址方式)主机对外设的寻址方式如何设置控制如何设置控制/ /状态寄存器是接口设计的关键。状态寄存器是接口设计的关键。寻找寻找I/OI/O接口中的寄存器的方式。接口中的寄存器的方式。主机用主机用输出指令输出指令或或传送指令传送指令将具体设备的控制命令将具体设备的控制命令按约定的代码格式送往接口中的按约定的代码格式送往接口中的控制寄存器控制寄存器,向外,

39、向外设发出命令。设发出命令。外设的状态信息也以某种格式放在接口的状态寄存外设的状态信息也以某种格式放在接口的状态寄存器中,主机用器中,主机用输入指令输入指令或或传送指令传送指令从从状态寄存器状态寄存器中中取出有关信息进行查询、分析。取出有关信息进行查询、分析。I/OI/O端口端口寻找寻找I/OI/O接口中的寄存器接口中的寄存器的方式。的方式。如何为如何为I/OI/O端口分配地址?端口分配地址? 单独编址单独编址I/OI/O地址空间不占主存空间,可与主存空间重叠。地址空间不占主存空间,可与主存空间重叠。=1 =1 访问存储器访问存储器=0 =0 访问访问I/OI/O端口端口需设置标志区分访问对象

40、,如需设置标志区分访问对象,如编址到寄存器编址到寄存器:为每个寄存器:为每个寄存器(I/O(I/O端口端口) )分配独分配独 立的端口地址;立的端口地址; I/OI/O指令中给出端口地址。指令中给出端口地址。M/IOM/IO 统一编址统一编址I/OI/O端口占据部分主存空间。端口占据部分主存空间。常将存储空间的低端分配给主存单元,高端分配常将存储空间的低端分配给主存单元,高端分配给给I/OI/O端口,以示区分。端口,以示区分。编址到寄存器编址到寄存器 设置设置专用专用I/OI/O指令指令针对单独编址,用针对单独编址,用I/OI/O指令访问指令访问I/OI/O端口。端口。指令中说明输入指令中说明

41、输入/ /输出操作,并给出端口地址。输出操作,并给出端口地址。 :为每个寄存器:为每个寄存器(I/O(I/O端口端口) )分配总分配总 线地址;线地址; 访问外设时,指令中给出总线地址。访问外设时,指令中给出总线地址。(3 3)I/OI/O指令设置方式指令设置方式显式显式I/OI/O指令指令例例. 80X86I/O. 80X86I/O指令设置指令设置 输入:输入:IN ALIN AL,n n;端口地址端口地址(n) AL(n) AL( (直接端口寻址直接端口寻址) ) IN ALIN AL,DXDX;间接端口地址间接端口地址(DX) AL(DX) AL( (间接端口寻址间接端口寻址) ) 输出

42、:输出:OUT nOUT n,ALAL;(AL) n(AL) n( (直接端口寻址直接端口寻址) ) OUT DXOUT DX,ALAL;(AL) (DX)(AL) (DX)( (间接端口寻址间接端口寻址) )主机调用输入机:主机调用输入机: 用用传送指令传送指令实现实现I/OI/O操作操作针对统一编址,用传送指令访问针对统一编址,用传送指令访问I/OI/O端口。端口。不设专用不设专用I/OI/O指令。指令。例例. . 某机某机I/OI/O接口中设置接口中设置控制控制/ /状态寄存器状态寄存器CSRCSR, ,其总线地址为其总线地址为177550177550(8(8进制进制) )数据缓冲寄存器

43、数据缓冲寄存器DBRDBR,其总线地址为,其总线地址为177552177552隐式隐式I/OI/O指令指令控制控制/ /状态字格式:状态字格式:出错出错 故障故障 忙忙 完成完成 允许中断允许中断 维护维护 校验校验 启动启动15 14 12 7 6 2 1 015 14 12 7 6 2 1 0启动:启动:测试:测试:取数:取数:主机主机 177550177550控制字控制字( (启动位为启动位为1)1)传送指令传送指令主机主机 177550177550 状态字状态字传送指令传送指令主机主机 177552177552 数据数据传送指令传送指令 通过通过I/OI/O处理机进行处理机进行I/OI

44、/O操作操作CPUCPU执行简单执行简单I/OI/O指令指令 ( (启动、停止、查询、清除启动、停止、查询、清除) )设置时需考虑设置时需考虑操作数类型操作数类型、符号符号、进制进制等;等;运算结束后设置相应运算结束后设置相应状态标志状态标志。两级两级I/OI/O指令指令(1 1)算术运算指令)算术运算指令I/OI/O处理机执行处理机执行I/OI/O操作指令操作指令 ( (输入、输出输入、输出) )3.3.算术逻辑运算指令算术逻辑运算指令(2 2)逻辑运算指令)逻辑运算指令实现对代码位的实现对代码位的设置设置、测试测试、清除清除、修改修改等。等。与与或或异或异或逻辑运算和移位指令逻辑运算和移位

45、指令 位操作指令可以体现汇编语言对硬件的控制能力。位操作指令可以体现汇编语言对硬件的控制能力。(1)逻辑运算指令逻辑运算指令 按位进行逻辑与、或、异或、非运算的操作。按位进行逻辑与、或、异或、非运算的操作。 1) 逻辑与指令逻辑与指令AND ANDdst,src (dst)(dst)(src) 2) 逻辑或指令逻辑或指令OR ORdst,src (dst)(dst)(src) (dst)(dst) (src) 3)异或指令异或指令XOR XOR dst,src 4)逻辑非指令逻辑非指令NOTNOTopr (opr)(opr)求反)求反 源操作数源操作数1 保留原值保留原值 0 置置0特点:特点

46、: 1010 0 011 目的操作数目的操作数源操作数源操作数(1)逻辑与操作逻辑与操作保留保留清清00010 何时该用何种逻辑操作?何时该用何种逻辑操作?逻辑运算和移位指令逻辑运算和移位指令 源操作数源操作数1 置置1 0 保留原值保留原值特点:特点: 1010 0 011 目的操作数目的操作数源操作数源操作数(2)逻辑或操作逻辑或操作置置1保留保留1011 源操作数源操作数1 取反取反 0 保留原值保留原值特点:特点: 1010 0011 目的操作数目的操作数源操作数源操作数(3)异或操作异或操作求反求反保留保留1001逻辑运算和移位指令逻辑运算和移位指令 如何确定源操作数?如何确定源操作

47、数? 例:例:将将AL的的D0位和位和D1位清位清0。 设(设(AL)= BFH,指令为,指令为ANDAL, ?分析:分析:1011 1111B 1111 1100B (FCH)1011 1100B应将源操作数取为立即数应将源操作数取为立即数FCH,指令为:,指令为: AND AL,0FCH 执行指令后:执行指令后: (AL)=BCH 根据上述操作的特点,可以确定该用什么操作实现需要的功能根据上述操作的特点,可以确定该用什么操作实现需要的功能: 保留某些位保留某些位(其他位清(其他位清0 0)用逻辑与操作)用逻辑与操作 某位置某位置1 1 用逻辑或操作,用逻辑或操作,某位求反某位求反用异或操作

48、用异或操作 逻辑运算和移位指令逻辑运算和移位指令 例:例:将将AL中中的的大写字母大写字母(AL) )= 41H 转换为小写字母转换为小写字母即即 41H 61H指令为:指令为: OR AL, ?分析:分析: 0100 0001B (41H) 0010 0000B (20H)20H执行指令后:执行指令后: (AL)=61H小写转换为大写的指令为:小写转换为大写的指令为: AND AL, ?0DFH 110 1 1111B (DFH)执行指令后:执行指令后: (AL)=41H 0110 0001B (61H) 0100 0001B (41H) 根据需要的功能,先确定根据需要的功能,先确定逻辑运算

49、指令逻辑运算指令,再利用逻辑,再利用逻辑运算指令的特点运算指令的特点确定源操作数确定源操作数。 逻辑运算方法:逻辑运算方法:逻辑运算和移位指令逻辑运算和移位指令 例:测试例:测试AL的的D0位是否为位是否为1。 MOV AL,0F3HTEST AL,01H 执行指令后:执行指令后: ZF=0分析:分析:1111 0011B 0000 0001B0000 0001B根据根据ZF=0可知可知AL的的D0位为位为1 指令系统有专门的指令来检测指令系统有专门的指令来检测ZF的设置,从而控制程的设置,从而控制程序的处理流程序的处理流程。逻辑运算和移位指令逻辑运算和移位指令 (2) 移位指令移位指令 1)

50、逻辑左移指令逻辑左移指令 SHL opr,count 2)算术左移指令算术左移指令SALopr,count oprCF补补0SHL / SAL 移位移位例:将例:将BL中的值逻辑左移中的值逻辑左移1位位 ,设(,设(BL)= =AFH SHLBL,1 1 0 1 0 1 1 1 10指令执行前指令执行前0 1 0 1 1 1 1 01指令执行后指令执行后执行指令后:执行指令后: (BL)=5EH(分为逻辑移位、算术移位和循环移位三类)(分为逻辑移位、算术移位和循环移位三类)逻辑运算和移位指令逻辑运算和移位指令 3)逻辑右移指令逻辑右移指令 SHR opr,count 4)算术右移指令算术右移指令SARopr,count oprCF补补0SHR 移位移位S保持保持符号符号SAR 移位移位例例:将将BL中的值逻辑右移中的值逻辑右移1位位 ,设(,设(BL)= =AFH SHRBL,1 1 0 1 0 1 1 1 10指令执行前指令执行前0 1 0 1 0 1 1 11指令执行后指令执行后执行指令后:执行指令后: (BL)=57H逻辑运算和移位指令逻辑运算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论