计算机组成原理实验指导

上传人:卷*** 文档编号:123342000 上传时间:2022-07-22 格式:DOC 页数:95 大小:1.07MB
收藏 版权申诉 举报 下载
计算机组成原理实验指导_第1页
第1页 / 共95页
计算机组成原理实验指导_第2页
第2页 / 共95页
计算机组成原理实验指导_第3页
第3页 / 共95页
资源描述:

《计算机组成原理实验指导》由会员分享,可在线阅读,更多相关《计算机组成原理实验指导(95页珍藏版)》请在装配图网上搜索。

1、计算机构成与系统构造实验软件学院专业教研室实验一:带符号数的表达措施理论知识一. 原码表达规则:机器数的最高一位表达符号,“0”表达正号;“1”表达负号,背面各位用数的绝对值表达。整数原码的定义:X原为机器数的原码,X为真值,n为整数的位数。小数原码的定义为:X原为机器数的原码,X为真值。性质: 原码最高位表达数的符号(0正号,1负号)。 对定点小数,有:0X1-1X0+2+10-11X原20X原X0.负整数 0X-2n 整数X的补码可以写成:X补 = 2n+1XS + X三. 反码表达整数反码的定义或X反 = X (mod 2n+1-1)小数反码的定义为:或X反 = X (mod 2-2-n

2、)性质:(1) 0的反码不唯一, 整数0 +0反= 000-0反= (2n+1-1) + (-000) = 111(mod 2n+1-1) 小数0 +0反= 0.000 -0反= 2 - 2-n - 0.000 = 1.11(mod 2-2-n)(2) 反码与补码的关系根据定义,当X为正数时,X补 = X反;当X为负整数时, X补 = X反 + 1 ;当X为n位负小数时, X补 = X反 + 2-n实验规定:根据以上的理论知识,用Visual C+编写一种求一种字节的整数和小数的原码,反码,补码程序。规定:所有的数据用二进制来实现,整数和小数分别解决,要有和谐的操作界面。实验二、数据校验码实验

3、理论知识数据校验的实现原理:数据校验码是在合法的数据编码之间,加进某些不容许浮现的(非法的)编码,使合法的数据编码浮现错误时成为非法编码。这样就可以通过检测。码距:指任何一种编码的任两组二进制代码中,其相应位置的代码至少有几种二进制位不相似。一、奇偶校验码1、码距=22、奇偶校验码:在被传送的n位信息组上, 加上一种二进制位作为校验位,使配备后的n+1位二进制代码中1的个数为奇数( 奇校验)或偶数(偶校验)。例:数据奇校验编码偶校验编码0000000001110101 其中,最高一位为校验位,其他低八位为数据位。3、奇偶校验码只能检测出数据代码中一位出错的状况,但无法判断差错所发生的位置。二、

4、海明校验码原理在数据位中加入几种校验位,将数据代码的码距均匀地拉大,并把数据的每个二进制位分派在几种奇偶校验组中。当某一位出错后,就会引起有关的几种校验位的值发生变化,不仅可以发现错误,还能指出是哪一位出错,为进一步自动纠错提供根据。1.拟定长度:2kn+k+1(信息为n位,校验位为k位)2.通过信息位构成海明校验位 若数据位n=7,则校验位k=4,故海明码的总位数为11。它们的排列关系可表达为:海明码位号:H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1海明码: D7 D6 D5 P4 D4 D3 D2 P3 D1 P2 P13.校验位校验任务的分派. 根据海明码的编码规

5、则,每一位海明码均有多种校验位,且被校验的每一位的位号等于参与校验的几种校验位的位号之和。占据各权位上的校验位按权构成的8421码,正好等于海明码的位号,即海明码的位号Hi正好等于要校验它的校验位所占权位权值之和。例:设有一种7位信息码位0110001,求它的海明码。解: n=7,根据海明不等式,可求得校验位最短长度k=4。其海明码先表达如下:海明码位号:H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1海明码: 0 1 1 P4 0 0 0 P3 1 P2 P1按偶校验写出校验方程为:H1 H3H5 H7 H9H110 (P1H1)H2 H3 H6H7 H10H110 (P

6、2H2)H4H5 H6H70 (P3H4)H8H9 H10H110 (P4H8)可得:P10、P20、P30、P40,因此0110001的海明码为。实验规定:运用visual c+写一程序,可以对7位二进制数据,要按奇/偶校验编码,并产生其相应的海明码编码。规定界面和谐,并画出奇偶校验的编码和校验逻辑图。实验三、加法器理论知识一补码加减运算规则公式: X+Y补=X补+Y补 X-Y补=X补+-Y补例: X=0.101101,Y=-0.110100,求X+Y补解:X补=0.101101,Y补=1.001100 X+Y补 = X补+Y补 = 0.101101 + 1.001100 = 1.11100

7、1溢出及解决:补码加减运算也许产生溢出,为判断溢出,采用变形补码形式.判断溢出的原则:以两位符号位表达数的符号。当两符号位不同步,溢出;两符号位相似时,无溢出。无论与否溢出,最高符号位代表真正的符号。变形补码的加减法:两个符号位都看作数值位参与运算,最高符号位产生的进位丢掉。二、基本的二进制加法/减法器基本加法器:半加器和全加器。 .半加器在完毕两数相加时,不考虑低位进位。 .全加器用来完毕两个二进制数相加,并且同步考虑低位的进位。 一般: Ai表达被加数的第i位 Bi表达加数的第i位 Ci为第i-1位向第i位产生的进位 Ci+1为第i位向第i+1位产生的进位 Si为第i位产生的和全加器的体现

8、式为: 内部逻辑图:运用全加器实现两数和或差1)串行加法:从低位开始,每步只完毕一位运算的加法。 行加法器:需要一种全加器和一种进位触发器,高位运算只等低位运算完毕后才干进行,速度较慢。2)并行加法器:可在同一时刻完毕n位数的运算。 采用变形补码表达一种机器数,则符号位需2位,需要n+2个加法器。.运算速度比串行进位加法器高诸多,用足够多的硬件设备换。实验规定: 运用Visual c+定义一种全加器类或函数,然后完毕可以计算两个8位数相的串行加法器。(减法又如何实现?并行加法器又如何实现?)。实验四、乘法器理论知识一、原码一位乘法算法描述设X原=Xs.Xn-1Xn-2XiX1X0=Xs.Xv

9、Y原=Ys.Yn-1Yn-2YiY1Y0=Ys.Yv乘积Z原=Zs.Zv=(XsYs).(XvYv)运算环节:1)从乘数的最低位开始,用乘数B的每个二进制位去乘被乘数A,若B 的某个二进制位为1,则位积A;如为0,则位积0。2)B的各位分别乘以A的所得的位积,由于位权不同,逐次向左移位,即按一定位数错开,这样逐位进行下去,直到乘数各位都乘完为止。.3)把移位对准的各次位积相加起来即得成果。缺陷:1)将多种数一次相加,机器难以实现。2)乘积位数增长了一倍,即2n,而机器字长只有n位。改善:(a)把一次求和的操作,变成逐渐累加求部分积的操作.(b)将求积过程中逐位按权左移位积的操作,改为位积不动,

10、而是上次部分积右移的操作.二、原码一位乘法逻辑构造原理图工作原理: 1)乘法开始,“启动”信号使控制触发器Cx置“1”,于是启动时序脉冲T。 2) 当乘数寄存器R1最末位为“1”时,部分积Zi和被乘数X在加法器中相加,其成果输出至R0的输入端。 3)一旦控制脉冲T到来,控制信号LDR0使部分积右移一位,R1也在控制信号LDR1作用下右移一位,且计数器i计数一次。4)当计数器i=n时,计数器的溢出信号使触发器Cx置“0”,关闭时序脉冲T, 乘法宣布结束。 将R0和R1连接起来,乘法结束时乘积的高n位部分在R0,低n位部分在R1,R1中本来的乘数Y由于移位而所有丢失。实验规定:根据原码一位乘法逻辑

11、构造原理图,运用Visual C+写一程序,来实现4位*4位的原码一位乘法。(规定模拟脉冲,乘法开始的状态,以及每一次脉冲到来后,每一种寄存器的变化状况清晰地显示出来)。实验五、浮点算术运算措施理论知识1) 浮点加减法运算设两个浮点数x和y分别为: x=Sx2Ex y=Sy2 Ey其中,Ex、Ey分别是x和y的阶码,Sx和Sy是x、y的尾数。它们都是规则化的数,即其尾数绝对值总不不小于1(用补码表达,容许为1)。浮点加减运算的环节如下:1 对阶:小阶向大阶看齐 求阶差:E =Ex-Ey 若E =0,表达ExEy,不需要对阶 若E 0,表白ExEy 若E 0,表白Ex0时 1/2S1 对于SS-

12、1-1/2补=11.1000,为了便于鉴别与否是规格化数,不把-1/2列为规格化数,把-1列入规格化数。 -1补=11.000 补码规格化的浮点数应有两种形式: 00.1xxx 11.0xxx补码规格化:A)若和或差的尾数两符号位相等且与尾数第一位相等,则需向左规格化。即将和或差的尾数左移,每移一位,和或差的阶码减一,直至尾数第一位与尾符不等时为止。B)若和或差的尾数两符号位不等,即01.xxx或10.xxx形式,表达尾数求和(差)成果绝对值不小于,向左破坏了规格化。此时应当将和(差)的尾数右移1位,阶码加,即进行向右规格化。4 舍入1)“0舍1入”法,即右移时丢掉的最高位为0,则舍去;是1,

13、则将尾数的末位加1(相称于进入)。2)“恒置1”法,即不管移掉的是0还是1,都把尾数的末位置1。例:x = 0.11011001,y=- (0.1010)1011,求x+y1)对阶:假定两数在计算机中采用补码制,则 x补=0001,00.1101 Ex=0001 y补=0011,11.0110 Ey=0011 阶差:E =Ex-Ey=0001+1101=1110=-2,则ExEy,应使x的尾数右移2位,阶码加2, 则x补=0011, 00.0011,对阶完毕。2)尾数求和(差)对阶后:Sx补=00.0011,Sy补=11.0110则 Sx补+Sy补=11.1001 x+y补=0011,11.1

14、0013)规格化和的尾数的两符号位相等,但小数点后的第一位也与符号位相等,不是规格化数,需要进行左规,即向左规格化,规格化的数成果: x+y补=0010,11.0010实验规定: 运用Visual C+,写一程序,规定实现两个浮点数的加法,其中浮点数的阶码为3位(1位为符号),尾数为5位(1位为符号)。(规定具体展示计算的环节。)实验六、存储器与存储系统理论知识一、 主存储器技术指标存储容量:1)存储容量是指一种功能完备的存储器所能容纳的二进制信息总量,即可存储多少位二进制信息代码。2)存储容量存储字数字长3)规定:大容量。存储器速度存储器取数时间(Memory Access Time): 从

15、存储器读出写入一种存储单元信息或从存储器读出写入一次信息(信息也许是一种字节或一种字)所需要的平均时间。存储器存取周期(Memory Cycle Time): 存储器进行一次完整的读写操作操作所需要的所有时间,称为存取周期。数据传播率 单位时间可写入存储器或从存储器取出的信息的最大数量,称为数据传播率或称为存储器传播带宽bM 。bM =WtM 存储周期的倒数1tM ,W表达存储器一次读取数据的宽度,即位数。可靠性用平均无端障时间MTBF来衡量。1)对于破坏性读出的存储器:设立缓冲寄存器2)断电后信息会丢失:备用电源的措施或采用中断的技术转储3)动态存储:定期刷新价格是衡量经济性能的重要指标。设

16、是存储容量为位的整个存储器以元计算的价格,可定义存储器成本c为:c(CS)元位.二、主存储器原理图三、位扩展构成的8K RAM 8 7 6 5 4 3 28k1 中央解决器CPU D0 : D7位扩展构成的8K RAM四、字扩展 A15 A14CPU A0 A13 WE D0D7 2:4译码器 CE16K8WE CE16K8WE CE16K8WE CE16K8WE.字扩展法构成64K RAM五字位扩展法构成RAM实验规定:运用Visual C+编写一种程序,来模拟实现存储器的读写过程。规定给出相应的信号表达。纯熟掌握存储器的扩展。用flash模拟内存字位扩展后的存储器读取过程。存储器的组织映象

17、基本知识一、Cache存储器的地址映象1、概念 1)地址映象:为了把信息放到Cache中,必须应用某种函数把主存地址映象到Cache中定位。 2)地址变换(地址变换):在信息按这种映象关系装入Cache后,执行程序时,将主存地址变换成Cache地址。直接映象: 主存空间被分为2m 个页,其页号分别为0、1、.i.2m -1,每页大小为2b 个字,Cache存储空间被分为2c个页(页号为0、1、.j.2c-1),每页大小同样为2b 个字,( c m)。主存贮器b位c位t位t位m位页面地址的直接映像页号0页号1页号2 c 1页号2 c页号2 c 1页号2c+11页号2 c+1页号2 m 1页号0页

18、号1 页号2 c1标记标记标记主存页面标记 cache页面地址 页内地址Cache存贮器主存地址全相联映象1)主存中的每一页面可以映象到Cache中的任何一种页面位置上,也容许采用任何替代算法从被占满的Cache中替代掉任何一种旧页面。2)主存地址3)长处:灵活4)缺陷:访问速度太慢,由于要与所有标记所有比较一遍,才干拟定与否命中;成本太高。页号0页号1页号i页号2m1标记 页号0标记 页号1标记 2c 1 主存页面标记 页内地址 全相联映像方式b位m=t+c 位m=t+c 位Cache存贮器主存主存地址组相联映象A)将Cache分为2n 个组,每组涉及2r 个页面,Cache共有2c =2n

19、+r 个页面。其映象关系为:j=(i mod 2 n )2r k (0k2r-1)例,设n=3位,r=1位,考虑主存字块15可映象到Cache的哪一种字块中。可得: j=(i mod 2 n )2 r k =(15 mod 2 3)2 1k =72+k =14+k由于 0k2 r -1=1,因此 :k=0或1代如后得j=14(k=0)或15(k=1)。因此主存模块15可映象到Cache字块14或15。在第7组。B)主存地址C)组间是直接映象,组内是全相联映象。 小结:上述三种映象技术有一定的内在联系:当r0时,就是直接映象;当rc时,就是全相联映象。0页1 页 2 cr1 2 cr 2 cr1

20、2 cr11 2 cr1 2 m1 标记 0页 标记 1页 标记 2页 标记 3页 标记 2 c2 标记 2 c1主存字块标记 组地址 页内地址 页面地址的组相联映像c=nr2 cr1组1组0组Cache(r=1)trb位n位t+r位主存主存地址实验规定规定写一程序或设计一动画,来演示存储器组织的三种映象方式。实验七、CPU理论知识CPU的基本构成1. 寄存器组寄存器:CPU在解决信息的过程中,用来临时寄存多种信息。(1)通用寄存器组 顾客可通过编程访问的寄存器,在指令系统中为它们分派了相应的编号。指令中以寄存器号来批示。通用寄存器通过编程,可以实现多种功能,如提供操作数,寄存运算成果,用作地

21、址指针,作基址寄存器、变址寄存器等。(2)暂存器 暂存器对编程者来说是透明的,即在程序中不会浮现。 作用:临时寄存CPU解决过程中的临时信息,避免破坏通用寄存器的内容。 例如:实现从内存的单元A传送数据到另一种单元B。从单元A读出的数据先送到CPU中的一种暂存器,然后再从暂存器送入单元B。(3)指令寄存器IR 作用:用来寄存目前正在执行的指令。控制器根据其内容(操作码以及地址信息)产生所需要的多种微命令。 为了提高计算机的解决速度,现代计算机一般将指令寄存器扩大为指令队列(指令栈)。形成了指令流水线解决方式.指令流水线:一次预取多条指令,增长指令间执行的衔接速度和并行解决能力。 (4)程序计数

22、器PC 也叫指令计数器或指令指针。作用:批示指令在存储器中的寄存位置。 程序顺序执行时,每当从主存中取出一条指令后,PC内容就自动增量计数,指向下一条指令。程序发生转移时,将转移地址送入PC,使其指向转移目的地的指令地址。(5)程序状态字寄存器PSW 作用:记录现行程序的运营状态和批示程序的工作方式。PSW涉及特性状态位和方式控制位两部分。特性位:进位位C、溢出位V、零值位Z、符号位S、奇偶位P等。方式控制位:跟踪位I、中断容许位I、程序优先级字段、工作方式字段等。(6)地址寄存器MAR作用:CPU访问主存时,临时寄存所访问单元地址。CPU取指令时,先将PC的内容送入MAR,再由MAR将指令的

23、寄存地址送往主存译码。CPU存取数据时,将数据的寄存地址先送到MAR,再送往主存进行地址译码。(7)数据缓冲寄存器MBR作用:寄存CPU与主存之间互换的数据。由CPU写入主存的数据先送入MBR,主存地址译码找到指定单元后,再将数据从MBR送入到该单元。从主存中读出的数据,先送入MBR,然后再送到指定的CPU内部某寄存器。MAR和MBR是连接CPU与主存的桥梁,它们可使CPU与主存之间的数据通路变得比较单一。这两个寄存器不能编程访问,即对顾客透明。2. 运算器的组织3.控制器构成实验规定:根据所学的CPU知识,模拟一段程序的运营过程A=3;B=4;S=a+b;Couts46521,在CPU执行某

24、顾客程序过程中,有了中断源2,和4祈求,在CPU执行4祈求时,又有5,6中断祈求,在执行5祈求时,又有3祈求,请画出CPU解决各中断祈求的过程。(运用动画环境模拟中断执行过程,规定精确的信号表达)2) 根据DMA的数据传播过程,写程序演示数据传播过程,并以动画演示数据传播过程,规定精确的信号表达。 IBM PC 机的指令系统和寻址方式 计算机完毕的任何功能,都是通过执行一系列指令来实现的,因而每种计算机均有一组指令集提供应顾客使用,这组指令集合就称为计算机的指令系统。 什么是寻址方式?计算机指令中,为了获得操作数的地址(目的获得操作数的内容)而进行的寻找该操作数物理地址的方式。 计算机的大部分

25、计算都需要数据参与,这些参与某一指令计算的数据就叫该指令的操作数。汇编语言的指令格式如下: 操作码 操作数1,操作数2,操作数3,操作数n操作码:批示计算机要进行的某种指令操作,在汇编语言中,操作指令采用助记符的形式来表达操作指令,即操作码。操作数:不同的操作码需要不同的操作数数量,大部分操作码需要的操作数不超过3个,也有的指令不需要操作数。操作数的类型也是多种多样,它可以是常数、可以是存储单元、可以是地址、甚至可以某中指令操作码等等。汇编语言中诸多操作码需带有两个操作数,就把前面的操作数称为目的操作数、背面的操作数称为源操作数。第一节 IBM PC机的寻址方式一、与数据有关的寻址方式(一)立

26、即寻址方式操作数直接寄存在指令中,紧跟在操作码之后,它作为指令的一部分寄存代码段中,这种操作数叫立即数(相称高档语言的常量)。立即数可以是8位或16位数,若是16位数则高位字节寄存在高地址中,低位字节寄存在低地址中。这种方式如下图所示:操作码直接对立即数进行操作。 立即寻址方式用来表达常数,它重要用于给寄存器赋初值,注意:只能用于源操作数字段,不能用于目的操作数字段。例1 MOV AL,5则指令执行后,(AL)05H,8位运算例2 MOV AX,3064H则指令执行后,(AX)3064H,16位运算数据的执行过程可用下图示意: OP表达该指令的操作码部分。(二)寄存器寻址 操作数在寄存器,指令

27、指定寄存器号。对于16位操作数,寄存器可以是AX、BX、CX、DX、SI、DI、SP相BP等;对于8位操作数,寄存器可以是AL、AH、BL、BH、CL、CH、DL和DH。这种寻址方式由于操作数就在寄存器中,不需要访问存储器来获得操作数,因而可以获得较高的运算速度。这种方式如下图所示:例3 MOV AX,BX如指令执行前(AX)3064H,(BX)1234H,则指令执行后,(AX)=1234H,(BX)保持不变。 除了上述两种寻址措施外,如下简介的寻址方式的操作数都在除代码段以外的存储区中,通过不同的方式求得操作数地址,从而获得操作数。(三)直接寻址在IBM PC机中将操作数的偏移地址称为有效地

28、址EA。在直接寻址方式中有效地址EA就在指令中,它寄存在代码段中指令操作码之后,但操作数一般寄存在数据段中,因此必须先求出操作数的物理地址,然后再访问存储器才干获得操作数,如下图所示。如操作数在数据段中,则物理地址16d(DS)十EA。1BMPC机中容许数据寄存在数据段以外的其她段中,此时应在指令中指定段跨越前缀,在计算物理地址时应使用指定的段寄存器。例4 AX , H(DS)3000H,则执行状况如下图所示。执行成果为;(Ax)3050H 在汇编语言指令中,可以用符号地址替代数值地址,如:MOV AX,VALUE 此时VAIUE为寄存操作数单元的符号地址。如写成MOV AX,VALUE 也是

29、可以的两者是等效的。如果VALUE在附加段中,则应当指定段跨越前缀如下; MOV AX, ES:VALUE或 MOV AX, ES:VALUE 直接寻址方式合用于解决单个变量,例如需要解决某个寄存在存储器里的变量,可用直接寻址方式,将该变量先取到一种寄存器中,然后在做解决。 IBM PC机规定:除在双操作数中,除立即数外,必须有一种操作数使用寄存器方式。这也是一种常量常常送到寄存器去的因素。(四)寄存器间接址操作数的有效地址在基址寄存器BX、BP或变垃寄存器SI、DI中,而操作数则在存储器中,如下图所示。 如果指令中指定的寄存器是BX、SI、DI,则操作数在数据段(DS)中,因此用DS寄存器的

30、内容作为段地址,即操作数的物理地址为:物理地址16d(DS)十(BX)或 物理地址;16 d(DS)十(SI)或 物理地址16d(DS)十(DI)如指令中指定SP寄存器,则操作数在堆栈段(SS)中,段地址在SS中,因此操作数的物理地址为:物理地址16d(SS)十(SP)例5 MOV AX ,BX如果 (DS)=H , (BX)=1000H则物理地址16d(DS)十(BX) = 0H+1000H = 21000H执行成果见下图所示:执行成果为:(AX)=50A0H指令中也可指定段跨越前缀来获得其她段中的数据。如; MOV AX,ES:BX这种寻址方式可以用于表格解决,执行完一条指令后,只需要修改

31、寄存器内容就可取出表格中的下一项。(五)寄存器相对寻址方式 操作数的有效地址是一种基址或变址寄存器的内容和指令中指定的8位或16位位移量之和。即 同样,除有段跨越前缀者外,对于寄存器为BX、SI、DI的状况,段寄存器用DS,而寄存器BP则使用SS段寄存器的内容作为段地址。这种寻址方式示于下图。其物理地址计算如下:例6 MOV AX,COUNTSI (也可表达为MOv AX,COUKT十SI;其中,COUNT 为16位位移量的符号地址。如果(DS)3000H,(SI)H COUNT3000H则物理地址 30000十十3000 35000H指令执行状况如下图所示,执行成果是(AX)1234H 这种

32、寻址方式同样可用于表格解决,表格的首地址可设立为COUNT,运用修改基址或变址寄存器的内容来获得表格中的数值。 直接变址寻址方式也可以使用段跨越前缀。(六)基址变址寻址方式操作数的有效地址是一种基址寄存器和一种变址寄存器的内容之和。两个寄存器均由指令指定。如果基址寄存器为BX,段寄存器使用DS;如基址寄存器为BP时,段寄存器则用SS。因此,物理地址为:这种寻址方式见下图: 例7 MOV AX,BXDl(或写为: MoV AX,DX十D1如 (DS)=2100H (BX)0158H (D1)l0A5H则 EA0158H十10A5H11FDH 物理地址2l000H十11FDH =221FDH指令执

33、行状况如下图所示。执行成果(AX)1234H。 (七)相对基址变址寻址方式 操作数的有效地址是一种基址寄存器和一种变址寄存器的内容和8位或16位位移量之和。同样,当基址寄存器为BX时,使用DS段寄存器;而当基址寄存器为BP时,则使用SS为段寄存器。因此物理地址为: 这种寻址方式参见下图:刨8 MOV AX,MASKBXSI (也可以写成 M0V AX,MASKDX十SI或 MoV AXMASK十BX十SI ) 如 (DS)3000H,(BX)H、(SI)l000H,MASK0250H, 则 物理地址16d(DS)十(BX)十(SI)十MASK 30000十十1000十0250 33250H 指

34、令执行状况如下图所示。执行成果(AX)1234H。 这种寻址方式为堆栈解决提供了以便。一般(BP)可指向栈顶,从栈顶到数组的首地址可用位移量表达,变址寄存器可用来访问数组中的某个元索。二、与转移地址有关的寻址方式这种寻址方式用来拟定转移指令及CALL指令的转向地址。(一)段内直接寻址 转向的有效地址是目前IP寄存器的内容和指令中指定的8位或16位位移量之和。如下图: 这种方式的转向有效地址用相对于目前IP值的位移量来表达,因此它是一种相对寻址方式。指令中的位移量是转向的有效地址与目前IP值之差,因此当这一程序段在内存中的不同区域运营时,这种寻址方式的转移指令自身不会发生变化,这是符合程序的再定

35、位规定的。这种寻址方式用于条件转移和无条件转移指令,但是,当它用于条件转移时,位移量只容许8位。无条件转移指令在位移量为8位时,叫短跳转。 指令的汇编语言格式为:JMP NEAR PTR PROGIA JMP SHORT QUEST其中,PROGIA和QUEST均为转向的符号地址,在机器指令中,用位移量来表达。在汇编指令中,如果位移量为16位,则在符号地址前加操作符NEAR PTR。如果位移量为8位,则在符号地址前加操作符SHORT。(二)段内间接寻址 转向有效地址是一种寄存器或是存储单元的内容,这个寄存器或存储单元的内容可以用数据寻址方式中除立即数以外的任何一种寻址方式获得,所得到的转向的有

36、效地址用来取代IP寄存器的内容。此种寻址方式如下图所示。 注意:这种寻址方式以及如下的两种段间寻址方式都不能用于条件转移指令。也就是说,条件转移指令只能使用段内直接寻址的8位位移量,而JMP和CALL指令则可以使用任何跳转方式。段内间接寻址转移指令的汇编格式可以表达为 JMP BX JMP WORD PTRBP+TABLE等。其中WORD PTR又称为操作符(伪),用以指出其后的寻址方式所获得的转向地址是一种字的有效地址,也就是说它是一种段内转移。 以上两种寻址方式均为段内转移,因此直接把求得的转移的有效地址送到IP寄存器就可以了。如果需要计算转移的物理地址,则计算公式应当是: 物理地址l 6

37、d(CS)十EA其中EA即为上述转移的有效地址。 下面举例阐明在段内间接寻址方式的转移指令中,转移的有效地址的计算措施假设: (DS)H,(BX)1256H,(SI)528FH, 位移量20A1H,(232F7H)3280H,(264E5H)2450H。例9 JMP BX则执行该指令后(IP)1256H例10 JMP TABLEBX则执行该指令后(IP)(16d(D)十 (BX)十位移量)(0十1256十20A1)(232F7H)3280H例11 JMP BXSI则指令执行后(IP)(16d(DS)十(BX)十(SI) (0十l256十528F)(264E5H)=2450H(三)段间直接转移

38、指令中直接提供了转向段地址和偏移地址,因此只要用指令中指定的偏移地址取代IP寄存器的内容,用指令中指定的段地址取代CS寄存器的内容就完毕了从一种段到另一种段的转移操作,如下图所示。 这种指令的汇编语言格式可表达为:JMP FAR PTR NEXTROUTINT其中,NEXTROUTINT为转向的符号地址,PAR FAR 则是表达段间转移的操作符。(四)段间间接转移 用存储器中的二个相继字的内容来取代IP和CS寄存器中的原始内容以达到段间转移约目的。这里存储单元的地址是由指令指定除立即数方式和寄存器方式以外的任何一种数据寻址方式获得,如下图所示。 这种指令的汇编语言格式可表达为:JMP DWOR

39、D PTRINTERS+BX其中,INTERS+BX阐明数据寻址方式为直接变址寻址方式,DWORD PTR为双字操作符,阐明转向地址需要取双字为段间转移指令。IBM PC机的机器语言指令概况 我们用汇编语言编写的汇编语言程序输入计算机后,由机器提供的“汇编程序”将它翻译成由机器指令构成的机器语言程序,才干由计算机辨认并执行。因此汇编语言程序是由汇编程序翻译成可执行的机器语言程序曲,一般说来,这一过程不必由人来干预。我们这里只简介一下基本原理,以便在必要时也可完毕类似的工作。 机器语言指令由操作码和地址码两部分构成,下面分别加以阐明。一、操作码的机器语言IBM PC机的机器语言指令是多字节指令,

40、一条指令可以由17个字节构成。指令的操作码(用OP表达)采用二进制代码表达本指令所执行的操作,在IBMPC机中,它一般用指令的第一种字节表达,有时由于用8位还不够,因此在指令的第二个字节中还也许占有3位操作码,除此以外的其她字节则用来表达地址码。在多数操作码中,常使用某些位来批示某些信息。例如其中W位用来批示本指令是对字(w1)还是对字节(w0)进行操作。 d值在双操作数指令中才有效。IBMPC机规定双操作数指令的两个操作数必须有一种操作数放在寄存器中,d位指定寄存器用于目的操作数(d1)还是源操作数(d0)。 此外,当使用立即方式寻址时,操作码中用S位表达符号扩展;如立即数为8位,但规定扩展

41、成16位数(高位字节按低位字节的最高有效位作符号扩展)时、S位为l。因此当指令作字节操作时,SW00,当指令有16位立即数且作字操作时SW01;而当指令有8位立即数但需要经符号扩展成l6位立即数作字操作时,则SW11。出于IBM PC的指令格式诸多,这里我们只作某些基本清况简介,必要时读者可通过查子二、寻址方式的机器语言表达 IBMPC机用一种寻址方式字节表达操作数的寻址方式,它一般是机器指令的第2个字节。寻址方式字节可表达如下:其中reg表达寄存器方式,在双操作效指令的状况下规定必须有一种操作致在寄存器中,该寄存器由reg字段指定。它与操作码字节中的w位相结合拟定的寄存器如下表所示。mod字

42、段与rm(registermemory)字段结合在一起拟定另一种操作数的寻址方式。(1)mod11为寄存器方式,由rm的内容拟定选用哪个寄存器,具体值由下表来拟定。其她三种寻址方式则为操作数在存储器中时的寻址方式,由表32表达,下面分别加以阐明: (2)mod00为无位移量字节的存储器寻址方式。其中当rm110时指定为直接寻址方式,此时寻址方式字节之后跟有16位位移量D16,用来指出操作数的有效地址。 (3)mod01为带有一种位移量字节的存储器寻址方式,因此指令中应有其中D8为8位位移量,是带符号数,当用来计算有效地址时,可自动将符号扩展到16位。(4)mod10为带有二个位移量字节的存储器

43、寻址方式,因此指令中有其中D16为16位位移量,它也是带符号数。 上表中每项下的段寄存器是指无段跨越前缀的状况下所使用的隐含的段寄存器。如果指令中指定段跨越前缀,则在机器语言中使用放在指令之前的一种字节来表达,如下所示:其中001及110均为段前缀标志,SEG则指定四个段寄存器中的一种,如下表所示IBM PC机规定下列三种状况下不容许使用段跨越前缀; 1访问堆栈的指令(如PUSH和CALL等)使用SP作为偏移地址指针,只能使用SS作为段奇存器。 2串解决指令规定源寄存器使用SI,源串在DS段中,目的寄存器使用DI,目的串必须在ES段中。这里如果要用段跨越前缀则只能用于源而不能用于目的,也就是说

44、,SI可以更换段寄存器,而DI则只能使用ES作为段寄存器,不容许用段跨越前缀更换。 3指令只能寄存在代码段中。根据以上阐明,我们对IDM PC机的机器指令状况已有了一般的理解,下面在以加法指令为例,对机器指令作某些具体的分析。(三)加法的机器指令举例加法指令的汇编语言格式为: ADD DST,SRC其中SRC表达源操作数地址,DST表达目的操作数地址。 (DST) (DST) + (SRC) 根据不同的寻址方式,加法指令可以有三种格式: 1. ADD memreg1 , memreg2其中memreg1表达目的操作数地址,memres2表达源操作数地址,它们都可以指定一种寄存器或一种存储单元的

45、内容作为操作数。这些操作数可以是8位的或16位的,它们可同步指定两个寄存器,但不能同步指定两个存储单元,因此它的工作方式可以是如下:a) 寄存器与寄存器的内容相加,成果存入寄存器中。b) 寄存器与存储单元的内容相加,成果存入存储单元中。c) 存储单元与寄存器的内容相加,成果存入寄存器中。这种寻址方式的机器语言为;其中000000为操作码。w0为字节运算;w1为字运算。d0时,由mod、rm决定目的memreg1,reg决定源memreg2;d1时,由mod、rm决定源memreg2,reg决定目的memreg1,虚线框中的位移量根据寻址方式拟定其有无。 2 ADD memreg, data 把

46、存储在代码段中的立即数与指定的寄存器或存储单元的内容相加,成果寄存于寄存器或存储单元中。指令的机器语言为: 3 ADD ac , data 把存储在代码段中的立即数与AL(W0时)或AX(W1时)中的内容相加,成果送回AL或AX中。指令的机器语言为:IBM PC机的指令系统 IBMPC机的指令系统可以分为如下6组:数据传送指令 串解决指令算术指令 控制转移指令逻辑指令 解决机控制指令下面分别加以阐明。一、数据传播指令 数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元中。它可以分为如下四种,分别阐明如下:(一)通用数据传送指令MOV(Move) 传送PUSH(Push onto the stack) 进栈POP(Pop from the stack) 出栈XCHG(Exchange) 互换1、MOV(Move) 传送指令 格式为;MOV DST,SRC 执行操作:(DST) (SRC)其中DST表达目的操作数,SRC表达源操作数。如下相似。Mov指令的机器语言可以有7种格式(1) MOV memreg1,memreg2固然,双操作数指令不容许两个操作数都使用存储器,因而两个操作数中必须有一种是寄存器。这种方式不容许指定段寄存器。(2) MOV reg, data其中reg字段指定寄存器。固然,这种方式也不容许指定段寄存器。(3)

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!