第二章2 指令系统_第1页
第二章2 指令系统_第2页
第二章2 指令系统_第3页
第二章2 指令系统_第4页
第二章2 指令系统_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

1、2.3 2.3 指令信息的表示指令信息的表示 指令:计算机要执行某种操作的命指令:计算机要执行某种操作的命 令,称为指令。令,称为指令。 指令系统:一台计算机所能执行的指令系统:一台计算机所能执行的 全部指令的集合。全部指令的集合。 本节主要讨论:一般指令格式本节主要讨论:一般指令格式 常用寻址方式常用寻址方式 面向用户指令类型面向用户指令类型 2.3.1 2.3.1 指令格式指令格式 指令基本格式指令基本格式 操作码操作码OP OP 地址码地址码 ADAD 一个一个一个或几个一个或几个 1.操作码是指明指令操作性质的命令操作码是指明指令操作性质的命令 码。它提供指令的操作控制信息。码。它提供

2、指令的操作控制信息。 2. 地址码指明与操作数相关的信息。地址码指明与操作数相关的信息。 2.3.1 2.3.1 指令格式指令格式 对指令格式,应注意如下问题:对指令格式,应注意如下问题: 1)指令字长需多少位,是定字长,还是变字长)指令字长需多少位,是定字长,还是变字长 2)操作码长度)操作码长度 若长度为若长度为n,则可表示,则可表示2n条指令。条指令。 3)地址结构)地址结构 指令中涉及哪些地址,在指令中给指令中涉及哪些地址,在指令中给 出哪些地址,哪些地址隐含约定。出哪些地址,哪些地址隐含约定。 4)寻址方式)寻址方式 如何获得操作数的值,是直接给出如何获得操作数的值,是直接给出 还是

3、间接给出,或是经过变址计算获得。还是间接给出,或是经过变址计算获得。 2.3.1.1 2.3.1.1 指令字长指令字长 指令字长与主存的编址单位及指令字长与主存的编址单位及CPU的机器字长的机器字长 有一定关系。有一定关系。 指令字长位数越多,所能表示的操作信息和地指令字长位数越多,所能表示的操作信息和地 址信息也就越多,指令的功能越丰富,但所占址信息也就越多,指令的功能越丰富,但所占 空间和时间也越多。空间和时间也越多。 定长指令格式定长指令格式 变长指令格式变长指令格式 便于控制便于控制 合理利用存储空间合理利用存储空间 2.3.1.2 2.3.1.2 操作码格式操作码格式 操作码一般在指

4、令格式的前面一个或几个字操作码一般在指令格式的前面一个或几个字 节。根据它可以判明该指令的基本类型及相节。根据它可以判明该指令的基本类型及相 应的字节数。应的字节数。 1.1.定长操作码定长操作码 各指令中操作码的位置、位数固定相同。各指令中操作码的位置、位数固定相同。 例:例:INTEL 8088 的前的前6位为操作码。位为操作码。 2.2.扩展操作码扩展操作码 各指令中操作码的位置、位数不固定,根据各指令中操作码的位置、位数不固定,根据 需要变化。需要变化。关键在设置扩展标志。关键在设置扩展标志。 例例. . 指令字长指令字长1616位,可含有位,可含有3 3、2 2、1 1或或0 0 个

5、地址,每个地址占个地址,每个地址占4 4位。位。 操作码操作码 地址码地址码 15 12 11 8 7 4 3 0 0000 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 . . . . 一地址指令一地址指令 1515条条 11

6、111111 11111111 11111111 0000 0000 1111 11111111 1111 11111111 1111 1111 . . . . 零地址指令零地址指令 1616条条 练练 习习 1.1.设指令系统指令字长是设指令系统指令字长是1212位,每个地址长位,每个地址长3 3位,位, 该指令系统有一地址、二地址和三地址三种格该指令系统有一地址、二地址和三地址三种格 式。假设该指令系统有式。假设该指令系统有6 6条三地址指令,条三地址指令,1212条条 二地址指令,请问一地址指令有多少条?二地址指令,请问一地址指令有多少条? 2.2.某计算机指令字长某计算机指令字长161

7、6位,每个地址是位,每个地址是6 6位,指位,指 令有零地址、一地址和二地址三种格式,设有令有零地址、一地址和二地址三种格式,设有 二地址指令二地址指令N N条,零地址指令条,零地址指令M M条,试问一地址条,试问一地址 指令最多有多少条?指令最多有多少条? 练习答案练习答案 1、解:、解:指令字长是指令字长是1212位,每个地址长位,每个地址长3 3位。位。 6条三地址指令,条三地址指令,12条二地址指令。条二地址指令。 操作码操作码 地址码地址码 11 9 8 6 53 2 0 三地址指令三地址指令 6 6条条 2 23 3 6 = 2 6 = 2 (23- 6)*23 12)* 23 =

8、 32 000 000 X X Y ZY Z 101 101 X X Y ZY Z . . . . 二地址指令二地址指令 1212条条 2 23 3 * *2=16 16-12=4 2=16 16-12=4 110 110 000000 Y ZY Z 110 110 111111 Y ZY Z . . . . 111 111 000000 Y ZY Z 111 111 011 011 Y ZY Z . . . . 一地址指令?地址指令? 2 23 3 * *4 4 练习答案练习答案 2、解:、解:指令字长指令字长1616位,每个地址是位,每个地址是6 6位位 二地址指令二地址指令N N条,零地

9、址指令条,零地址指令M M条条 设一地址指令有设一地址指令有X条条 (24-N)*26-X)*26=M 得:得:X=(24-N)*26-M*2-6 2.3.1.2 2.3.1.2 操作码格式操作码格式 3. 3. 单功能型或复合型操作码单功能型或复合型操作码 复合型操作码复合型操作码: : 操作码分为几部分,每部分表示一种操作。操作码分为几部分,每部分表示一种操作。 例如:NOVA系列和ECLIPSE系列的算逻指令 0 1 2 3 4 5 6 7 8 15 基本操作基本操作 进位进位 移位移位 回送回送 判跳判跳 操作数操作数 2.3.1.3 2.3.1.3 地址结构地址结构 指令中提供的地址

10、数指令中提供的地址数 存储单元地址码存储单元地址码 寄存器编号寄存器编号 1.1.指令提供地址的方式指令提供地址的方式 显地址方式显地址方式:指令中明显指明地址。指令中明显指明地址。 隐地址方式隐地址方式: :地址隐含约定地址隐含约定, ,如事先隐含约定操作如事先隐含约定操作 数在某个寄存器中或在堆栈中数在某个寄存器中或在堆栈中,不出现在指令中。不出现在指令中。 直接或间接给出直接或间接给出 使用使用隐地址隐地址可以减少指令中的地址数,可以减少指令中的地址数,简简 化地址结构化地址结构。 2.3.1.3 2.3.1.3 地址结构地址结构 2. 地址结构地址结构 1)四地址指令)四地址指令 操作

11、数操作数 地址地址 格式格式: :OP OP D1 D2 D3 D4 D1 D2 D3 D4 结果结果 地址地址 下条指下条指 令地址令地址 功能功能:(D1)OP(D2) D3(D1)OP(D2) D3 (D4) (D4) 下条指令下条指令 2.3.1.3 2.3.1.3 地址结构地址结构 2)三地址指令)三地址指令 格式:格式: 操作数操作数 地址地址 OPOP D1 D2 D3 D1 D2 D3 结果结果 地址地址 下条指令地址下条指令地址 功能:功能: 转移时,用转移地址修改转移时,用转移地址修改PCPC内容。内容。 (D1)OP(D2) D3(D1)OP(D2) D3 (PC) +

12、n PC(PC) + n PC 用指令计用指令计 数器数器PCPC指指 示指令地示指令地 址。址。 现行指令所占字节数现行指令所占字节数 2.3.1.3 2.3.1.3 地址结构地址结构 3)二地址指令)二地址指令 格式:格式: 目的目的 OPOP D1 D2 D1 D2 源源 功能:功能: (D1)OP(D2) D1(D1)OP(D2) D1 (PC) + n PC(PC) + n PC 2.3.1.3 2.3.1.3 地址结构地址结构 4)一地址指令)一地址指令 格式:格式: 双操作数:双操作数: OPOP D1 D1 隐含约定隐含约定 单操作数:单操作数: 功能功能: (D1)OP(A)

13、 A(D1)OP(A) A (PC) + n PC(PC) + n PC OP(D1) D1OP(D1) D1 (PC) + n PC(PC) + n PC 5)零地址指令)零地址指令 格式:格式: OPOP 功能功能: a. 用于堆栈:用于堆栈: (SP)(SP)OPOP(SP)+1) (SP)+1(SP)+1) (SP)+1 (SP)+1 SP(SP)+1 SP 栈顶内容栈顶内容 栈顶下一栈顶下一 单元内容单元内容 新栈顶新栈顶 指向新栈顶指向新栈顶 例例.ADD.ADD;执行前:执行前: 低低 b.b.操作数隐含指令:操作数隐含指令: SPSP 1010 2020 4646 SPSP 3

14、030 4646 执行后:执行后: 高高 低低 高高 OP(A) A OP(A) A (PC) + n PC(PC) + n PC 2.3.2 2.3.2 寻址方式寻址方式 什么叫寻址方式?什么叫寻址方式? 指令中提供操作数或提供操作数地指令中提供操作数或提供操作数地 址的方式,称为寻址方式或编址方址的方式,称为寻址方式或编址方 式。式。 一个指令系统采用什么样的寻址方式与一个指令系统采用什么样的寻址方式与 存储结构及其存取方式有关。存储结构及其存取方式有关。 2.3.2.1 2.3.2.1 存储结构与存取方式存储结构与存取方式 1.1.在指令中在指令中 通过指令可直接获得操作数。通过指令可直

15、接获得操作数。 2.CPU2.CPU中的寄存器中的寄存器 访问时只需给出寄存器号或隐含约定(根据访问时只需给出寄存器号或隐含约定(根据 操作码)。称为可编址寄存器。操作码)。称为可编址寄存器。 3.3.主存主存 访问时应给出相应的存储单元号访问时应给出相应的存储单元号 2.3.2.1 2.3.2.1 存储结构与存取方式存储结构与存取方式 4.4.堆栈堆栈 堆栈的操作在栈顶实现,栈顶地址有堆栈的操作在栈顶实现,栈顶地址有 堆栈指针寄存器堆栈指针寄存器SPSP给出,用隐地址访给出,用隐地址访 问。问。 5.5.外设外设 访问时,主机通过外设中的相关寄存访问时,主机通过外设中的相关寄存 器实现与外设

16、的器实现与外设的I/OI/O传送。可将这些寄传送。可将这些寄 存器与主存统一编址,或为其分配专门存器与主存统一编址,或为其分配专门 的的I/OI/O端口地址。端口地址。 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 立即寻址方式立即寻址方式 由指令直接给出操作数。由指令直接给出操作数。 操作码操作码OP OP 立即数立即数S S定长格式:定长格式: 变长格式变长格式:基本指令 基本指令 立即数立即数S S 数在指令中,数在指令中, 其长度固定、其长度固定、 有限。有限。 数在基本指令之后,数在基本指令之后, 其长度可变。其长度可变。 用来提供常数、设置初值等。用来提供常数、设置初值

17、等。 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 直接寻址方式直接寻址方式 指令直接给出操作数地址指令直接给出操作数地址 存储单元号存储单元号 寄存器号寄存器号 ( (数在数在M M中中) ) ( (数在数在R R中中) ) 操作码操作码OP OP 寄存器号寄存器号R R (1 1)寄存器直接寻址)寄存器直接寻址 (寄存器寻址)(寄存器寻址) 格式格式 R R所占位数少;所占位数少; 访问访问R R比访问比访问M M快快 S =S =(R R) 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 例例. 指令:指令:INC R1 1000HR02000HR1 3A00HR2

18、3C00HR3 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 (2 2)存储器直接寻址)存储器直接寻址 操作码操作码OP OP 有效地址有效地址D D (直接寻址)(直接寻址) 定长格式定长格式 变长格式变长格式 基本指令基本指令 D DL L D DH H D D的位数可覆盖的位数可覆盖 整个存储空间整个存储空间 S =S =(D D) 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 例例. 指令:指令:INC 2000H 1000H1000H 1A00H1A00H 2000H2000H 1B00H 1B00H . M 直接寻址主要用于访问固定的存储单元直接寻址主要用于

19、访问固定的存储单元 或寄存器。或寄存器。 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 3. 间接寻址方式间接寻址方式 指令给出操作数的间接地址。指令给出操作数的间接地址。 存储单元号存储单元号 寄存器号寄存器号 ( (数在数在M M中中) ) ( (数在数在M M中中) ) 格式格式 (1 1)存储器间址)存储器间址 操作码操作码OP OP 间接地址间接地址D D D=0030D=003000600060 . 00600060 S S . S =(D)S =(D) M 间址单元间址单元 地址指针地址指针 间址单元地址间址单元地址操作数地址操作数地址操作数操作数 MM 2.3.2.

20、2 2.3.2.2 常见寻址方式常见寻址方式 (2 2)寄存器间址)寄存器间址 操作码操作码OP OP 寄存器号寄存器号R R 格式格式 R R所占位数少;所占位数少;R R可提供全字长地可提供全字长地 址码;修改址码;修改R R内容比修改内容比修改M M内容快。内容快。 S =(R)S =(R) R=02R=02 M 00400040 S S . . 地址指针地址指针 0040 寄存器号寄存器号操作数地址操作数地址操作数操作数 RM 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 (3 3)自增型寄存器间址)自增型寄存器间址 寄存器号寄存器号操作数地址操作数地址操作数操作数 RM

21、(R)+1 先操作后修改先操作后修改 (4 4)自减型寄存器间址)自减型寄存器间址 寄存器号寄存器号操作数地址操作数地址操作数操作数 RM 寄存器内容减寄存器内容减1 先修改后操作先修改后操作 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 (5 5)堆栈寻址)堆栈寻址 格式格式 操作码操作码OP OP 堆栈指针堆栈指针S SP P SPSP S =(SP)S =(SP) 00700070 栈顶栈顶 SPSP既可出现在指令中,也可隐含约定。既可出现在指令中,也可隐含约定。 M 低低 高高 堆栈向上生成堆栈向上生成 压栈:压栈:SP SP自动减自动减1 1,再存数。,再存数。 -(SP

22、)-(SP),自减型间址自减型间址。 先取数,先取数,SPSP再自动加再自动加1 1。 (SP)+(SP)+,自增型间址自增型间址。 出栈出栈: S S . . 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 (6 6)多重间址)多重间址 存储器多重间址:存储器多重间址: 间址单元地址间址单元地址操作数地址操作数地址操作数操作数 MM 间址单元地址间址单元地址 M 寄存器多重间址寄存器多重间址 寄存器号寄存器号操作数地址操作数地址操作数操作数 RM 间址单元地址间址单元地址 M 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 4. 变址、基址及其变化变址、基址及其变化 (1

23、)变址寻址方式)变址寻址方式 指令给出一个寄存器号和一个地址量,寄存指令给出一个寄存器号和一个地址量,寄存 器内容与地址量之和为有效地址。器内容与地址量之和为有效地址。 变址寄存器号变址寄存器号 S =(S =(R(RX X) )+ + D D) ) 格式格式操作码操作码OP OP R RX X D D 形式地址形式地址 变址量变址量 基准地址基准地址 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 例例. . 用变址方式访问一组连续区间内的数组元素。用变址方式访问一组连续区间内的数组元素。 D=D=首址首址 D D为存储区首址;为存储区首址; (RX)(RX)为所访单元距离为所访单

24、元距离 首址的长度;首址的长度; RXRX初值为初值为0 0,每访问一,每访问一 个单元,个单元,(RX)+1(RX)+1。 n-1n-1 . 0 0 1 1 2 2 . D+1D+1 D+2D+2 D+n-1D+n-1 . 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 (2)基址寻址方式)基址寻址方式 指令给出一个寄存器号和一指令给出一个寄存器号和一 个地址量,寄存器内容与地个地址量,寄存器内容与地 址量之和为有效地址。址量之和为有效地址。 格式格式 基址寄存器号基址寄存器号 R Rb b 4K 4K 操作码操作码OP OP R Rb b D D 位移量位移量 S =(S =(R

25、(Rb b) )+ + D D) ) 基准地址基准地址 相对于基址的位移相对于基址的位移 M . R Rb b 4K 4K D=2D=2 D=2D=2 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 便于访问两维数组中某类指定的元素。便于访问两维数组中某类指定的元素。 比如比如: 4K 4K 4K 4K R Rb b M . R Rb b D=2D=2 D=2D=2 学生姓名学生姓名 性别性别 性别性别 年龄年龄 年龄年龄 学生姓名学生姓名 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 变址与基址的区别:变址与基址的区别: 变址变址:指令提供:指令提供基准量基准量( (不

26、变不变) ),R R提供提供修改量修改量 ( (可变可变) );适于处理一维数组。;适于处理一维数组。 基址基址:指令提供:指令提供位移量位移量( (不变不变) ),R R提供提供基准量基准量 ( (可变可变) );用于扩大有限字长指令的访存空间。;用于扩大有限字长指令的访存空间。 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 (3)基址加变址方式)基址加变址方式 指令给出两个寄存器号和一个地址量,指令给出两个寄存器号和一个地址量, 寄存器内容与地址量之和为有效地址。寄存器内容与地址量之和为有效地址。 S =(RS =(Rb b)+(R)+(RX X)+ D)+ D) 格式格式 基

27、址寄存器号基址寄存器号 位移量位移量 操作码操作码OP OP R Rb b R RX X D D 便于处理两维数组。便于处理两维数组。 变址寄存器号变址寄存器号 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 例例. . 访问二维表格。访问二维表格。 S =(RS =(Rb b)+(R)+(RX X)+ D)+ D) 令:令: (R(Rb b)+(R)+(Rx x) )指向各行起始;指向各行起始; D D指向一行中各元素指向一行中各元素。 (Rb)+(Rx) (Rb)+(Rx) D D (R Rb b)为表格首址为表格首址 R Rx x初值为初值为0 0,每访问一行,每访问一行,(R

28、(RX X)+4)+4; D D初值为初值为0 0,每访问一列,每访问一列,D+1D+1。 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 (4)相对寻址方式)相对寻址方式 指令给出位移量,指令给出位移量,PCPC内容与位移量之和内容与位移量之和 为有效地址。为有效地址。 格式格式 位移量位移量 操作码操作码OP OP PCPC D D 程序计数器,由寄存器号选定或隐含指定程序计数器,由寄存器号选定或隐含指定 S =(PC)S =(PC)D)D) 有效地址相对有效地址相对PCPC上下浮动上下浮动, ,给编程带来方便给编程带来方便。 (5)页面寻址方式)页面寻址方式 指令给出位移量,指

29、令给出位移量,PCPC的高位部分与位移量拼接,的高位部分与位移量拼接, 形成有效地址。形成有效地址。 格式格式 位移量位移量 操作码操作码OP OP PCPC D D 或隐含指定或隐含指定 S =(S =(PC)(PC)H H,D D) ) 页号页号页内地址页内地址 PC 0165H 017CH D=7C . S 用于页式管理存储系统。用于页式管理存储系统。 寻址速度快,适于组织寻址速度快,适于组织 程序模块,有效利用存程序模块,有效利用存 储空间。储空间。 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 v相关问题:相关问题: 寻址方式如何表示寻址方式如何表示? ? (1 1)指令

30、中设置专门字段说明寻址方式)指令中设置专门字段说明寻址方式 例例. .某机指令的每个地址字段中各设置一个某机指令的每个地址字段中各设置一个 3 3位的寻址方式字段。位的寻址方式字段。 操作码操作码OP OP 寻址方式寻址方式 R R 寻址方式寻址方式 R R 目的地址字段目的地址字段源地址字段源地址字段 3位位3位位 2.3.2.2 2.3.2.2 常见寻址方式常见寻址方式 (2 2)操作码隐含说明不同寻址方式)操作码隐含说明不同寻址方式 例例. .某机指令操作码最高两位某机指令操作码最高两位 0000:RRRR型指令,寄存器型指令,寄存器- -寄存器寻址寄存器寻址 0101:RXRX型指令,

31、寄存器型指令,寄存器- -变址寻址变址寻址 1010:SISI型指令,基址型指令,基址- -立即寻址立即寻址 1111:SSSS型指令,基址型指令,基址- -基址寻址基址寻址 2.3.2.3 2.3.2.3 堆栈操作堆栈操作 1.堆栈的存取规则:堆栈的存取规则:“先进后出先进后出”。 2.堆栈的硬件设置:堆栈的硬件设置: 一端固定,另一端浮动。设置堆栈指针一端固定,另一端浮动。设置堆栈指针SP指向指向 浮动端。浮动端。 3.堆栈的工作方式:堆栈的工作方式: (1)向上生成方式)向上生成方式 (P57图图2-16) (2)向下生成方式)向下生成方式 (P59图图2-19) (3)栈顶固定方式)栈

32、顶固定方式 (P60图图2-20) 2.3.3 2.3.3 指令的功能和类型指令的功能和类型 不同的机种,对指令的分类方法不同。通常有不同的机种,对指令的分类方法不同。通常有 三类:三类: 1. 按指令格式分类按指令格式分类 分为双操作数指令、单操作数指令、程序转移指令等。分为双操作数指令、单操作数指令、程序转移指令等。 2. 按操作数寻址方式分类按操作数寻址方式分类 如如IBM370,其指令可分为:,其指令可分为:RR型、型、RX型、型、RS型、型、SI 型及型及SS型。型。 3. 按指令功能分类按指令功能分类 可分为传送指令、访存指令、算术运算指令、逻辑运可分为传送指令、访存指令、算术运算

33、指令、逻辑运 算指令、算指令、I/O指令、程序控制类指令、处理机控制类指指令、程序控制类指令、处理机控制类指 令等。令等。 2.3.3.1 2.3.3.1 传送类指令传送类指令 机器的绝大部分操作(数据传送、字符机器的绝大部分操作(数据传送、字符 串处理、堆栈操作、输入串处理、堆栈操作、输入/输出操作等),输出操作等), 从广义角度看,都可以归结为信息的传从广义角度看,都可以归结为信息的传 送,或在传送过程中作了运算处理。送,或在传送过程中作了运算处理。 源地址源地址 目的地址目的地址 数数 传送指令一次可以传送一个数据或一批传送指令一次可以传送一个数据或一批 数据,有些机器设置了数据交换指令

34、,可数据,有些机器设置了数据交换指令,可 实现双向传送。实现双向传送。 2.3.3.1 2.3.3.1 传送类指令传送类指令 在设置传送指令时,应考虑三个方面:在设置传送指令时,应考虑三个方面: 规定传送范围规定传送范围 (1)寄存器与寄存器寄存器与寄存器 (2)存储器与寄存器存储器与寄存器 (3)I/O接口寄存器与主机接口寄存器与主机 传送指令传送指令 访存指令访存指令 I/O指令指令 2.3.3.1 2.3.3.1 传送类指令传送类指令 2.2.指明传送单位指明传送单位 传送指令用某种方式指明数据是按字节、传送指令用某种方式指明数据是按字节、 字、双字还是数组为单位进行传送。字、双字还是数

35、组为单位进行传送。 例例. VAX11 . VAX11 ( (用操作码说明用操作码说明) ): 8 80 0X86 X86 ( (用地址量说明用地址量说明) ): MOVMOVB B 8 8 MOVMOV AXAX,BXBX (16)(16) MOVMOVW W 1616 MOVMOVL L 3232 MOVMOV ALAL,BLBL (8)(8) MOVMOV EAXEAX,EBXEBX (32)(32) 2.3.3.1 2.3.3.1 传送类指令传送类指令 3.3.设置寻址方式设置寻址方式 传送指令以什么方式给出数据的源地址传送指令以什么方式给出数据的源地址 和目的地址,这涉及到寻址方式的

36、选择。和目的地址,这涉及到寻址方式的选择。 在寻址方式的设置上几乎不受限制,能在寻址方式的设置上几乎不受限制,能 比较集中地反映指令系统各种寻址方式比较集中地反映指令系统各种寻址方式 的实现。的实现。 2.3.3.2 2.3.3.2 输入输入/ /输出指令输出指令 这是用来实现主机与外部设备之间进行这是用来实现主机与外部设备之间进行 信息交换的一类指令。信息交换的一类指令。 以主机为基准,信息由外部设备传向主以主机为基准,信息由外部设备传向主 机称为机称为输入输入(Input)(Input),信息由主机传给,信息由主机传给 外部设备称为外部设备称为输出输出(Output)(Output)。 各

37、种信息各种信息 主机主机 外设外设 2.3.3.2 2.3.3.2 输入输入/ /输出指令输出指令 在设置输入在设置输入/输出指令时,应考虑:输出指令时,应考虑: 1. I/O1. I/O指令的功能扩展指令的功能扩展 如何用通用如何用通用I/OI/O指令实现对各种具体设指令实现对各种具体设 备的控制?备的控制? (1 1)I/OI/O指令中留有扩展余地指令中留有扩展余地 指令中某些字段编码事先不定义,需要指令中某些字段编码事先不定义,需要 时再约定其含义。时再约定其含义。 用于外设种类、数量不多的场合。用于外设种类、数量不多的场合。 2.3.3.2 2.3.3.2 输入输入/ /输出指令输出指

38、令 (2 2)I/OI/O接口中设置接口中设置控制控制/ /状态寄存器状态寄存器 如何设置控制如何设置控制/ /状态寄存器是接口设计状态寄存器是接口设计 的关键的关键。 主机用主机用输出指令输出指令或或传送指令传送指令将具体设备的控制将具体设备的控制 命令按约定的代码格式送往接口中的命令按约定的代码格式送往接口中的控制寄存器控制寄存器, 向外设发出命令。向外设发出命令。 外设的状态信息也以某种格式放在接口的状态外设的状态信息也以某种格式放在接口的状态 寄存器中,主机用寄存器中,主机用输入指令输入指令或或传送指令传送指令从从状态寄状态寄 存器存器中取出有关信息进行查询、分析。中取出有关信息进行查

39、询、分析。 2.3.3.2 2.3.3.2 输入输入/ /输出指令输出指令 2. 2. 主机对外设的寻址方式主机对外设的寻址方式 寻找寻找I/OI/O接口中的寄存器接口中的寄存器的方式。的方式。 (1 1)单独编址)单独编址 编址到设备编址到设备:每个设备有各自的设备编:每个设备有各自的设备编 码;码;I/OI/O指令中给出设备码,并指明访指令中给出设备码,并指明访 问该设备的哪个寄存器。问该设备的哪个寄存器。 编址到寄存器编址到寄存器:为每个寄存器:为每个寄存器(I/O(I/O端口端口) ) 分配独立的端口地址;分配独立的端口地址;I/OI/O指令中给出端指令中给出端 口地址。口地址。 2.

40、3.3.2 2.3.3.2 输入输入/ /输出指令输出指令 I/OI/O地址空间不占主存空间,可与主存空地址空间不占主存空间,可与主存空 间重叠。间重叠。 =1 =1 访问存储器访问存储器 =0 =0 访问访问I/OI/O端口端口 需设置标志区分访问对象,如需设置标志区分访问对象,如 M/IOM/IO 2.3.3.2 2.3.3.2 输入输入/ /输出指令输出指令 (2 2)统一编址)统一编址 编址到寄存器:编址到寄存器:为每个寄存器为每个寄存器(I/O(I/O端端 口口) )分配总线地址;访问外设时,指令中分配总线地址;访问外设时,指令中 给出总线地址。给出总线地址。 I/OI/O端口占据部

41、分主存空间。端口占据部分主存空间。 常将存储空间的低端分配给主存单元,高常将存储空间的低端分配给主存单元,高 端分配给端分配给I/OI/O端口,以示区分。端口,以示区分。 2.3.3.2 2.3.3.2 输入输入/ /输出指令输出指令 3. I/O3. I/O指令设置方式指令设置方式 (1 1)设置)设置专用专用I/OI/O指令指令 针对单独编址,用针对单独编址,用I/OI/O指令访问指令访问I/OI/O端口。端口。 指令中说明输入指令中说明输入/ /输出操作,并给出设备码输出操作,并给出设备码 或端口地址。或端口地址。 2.3.3.2 2.3.3.2 输入输入/ /输出指令输出指令 例例.

42、80X86 I/O. 80X86 I/O指令设置指令设置 输入:输入:IN ALIN AL,n n; 端口地址端口地址 (n) AL(n) AL 输出:输出:OUT nOUT n,ALAL; (AL) n(AL) n 2.3.3.2 2.3.3.2 输入输入/ /输出指令输出指令 (2 2)用通用)用通用传送指令传送指令实现实现I/OI/O操作操作 (隐式(隐式I/OI/O指令)指令) 针对统一编址,用传送指令访问针对统一编址,用传送指令访问I/OI/O端端 口。不设专用口。不设专用I/OI/O指令。指令。 例例. . 某机某机I/OI/O接口中设置两个寄存器:接口中设置两个寄存器: 控制控制

43、/ /状态寄存器状态寄存器CSRCSR, ,其总线地址为其总线地址为 177550177550(8(8进制进制) ), 数据缓冲寄存器数据缓冲寄存器DBRDBR,其总线地址,其总线地址177552177552 2.3.3.2 2.3.3.2 输入输入/ /输出指令输出指令 主机调用输入机主机调用输入机: 控制控制/ /状态字格式:状态字格式: 出错出错 故障故障 忙忙 完成完成 允许中断允许中断 维护维护 校验校验 启动启动 15 14 12 7 6 2 1 015 14 12 7 6 2 1 0 启动:启动: 测试:测试: 取数:取数: 主机主机 177550(CSR)177550(CSR)

44、 控制字控制字( (启动位为启动位为1)1) MOVMOV指令指令 主机 177550(CSR)177550(CSR) 状态字状态字 MOVMOV指令指令 主机主机 177552(DBR)177552(DBR) 数据数据 MOVMOV指令指令 2.3.3.2 2.3.3.2 输入输入/ /输出指令输出指令 (3 3)通过)通过I/OI/O处理机进行处理机进行I/OI/O操作操作 CPUCPU执行简单执行简单I/OI/O指令指令 ( (启动、停止、查询、清除启动、停止、查询、清除) ) 两级两级I/OI/O指令指令 I/OI/O处理机执行处理机执行I/OI/O操作指令操作指令 ( (输入、输出输

45、入、输出) ) 2.3.3.3 2.3.3.3 算术逻辑运算指令算术逻辑运算指令 算术运算指令算术运算指令 主要有加主要有加ADD、减、减SUB、加、加1 INC、减、减 1 DEC、求补、求补NEG等基本运算指令。等基本运算指令。 目前主流微型计算机还设置了乘除运目前主流微型计算机还设置了乘除运 算指令和浮点运算指令。算指令和浮点运算指令。 设置时需考虑:设置时需考虑:操作数类型操作数类型、符号符号、 进制进制等;等; 运算结束后设置相应运算结束后设置相应状态标志状态标志。 2.3.3.3 2.3.3.3 算术逻辑运算指令算术逻辑运算指令 2. 逻辑运算指令逻辑运算指令 逻辑运算主要是对布尔

46、变量的运算逻辑运算主要是对布尔变量的运算。 主要的逻辑运算指令有:逻辑与、逻主要的逻辑运算指令有:逻辑与、逻 辑或、逻辑非、异或四种。辑或、逻辑非、异或四种。 实现对代码位的实现对代码位的设置、测试、清除、修改设置、测试、清除、修改等等。 与与或或 异或异或 2.3.3.3 2.3.3.3 算术逻辑运算指令算术逻辑运算指令 (1)利用)利用“逻辑或逻辑或”作按位设置作按位设置 目的操作数目的操作数A:1 1 0 0 0 1 0 屏蔽字屏蔽字B: 0 0 0 0 1 0 1 A OR B: 1 1 0 0 1 1 1 (2)利用)利用“逻辑与逻辑与” 按位测试按位测试 目的操作数目的操作数A:1

47、 1 0 0 1 0 1 0 屏蔽字屏蔽字B: 0 0 0 0 1 0 0 0 A AND B: 0 0 0 0 1 0 0 0 2.3.3.3 2.3.3.3 算术逻辑运算指令算术逻辑运算指令 (3)利用)利用“逻辑与逻辑与”作按位清除作按位清除 目的操作数目的操作数A:1 1 0 0 1 0 1 0 屏蔽字屏蔽字B: 1 1 1 1 0 1 1 1 A AND B: 1 1 0 0 0 0 1 0 (4)利用)利用“异或异或” 按位修改按位修改 目的操作数目的操作数A:1 1 0 0 1 0 1 0 屏蔽字屏蔽字B: 1 1 1 1 1 0 0 0 A EOR B: 0 0 1 1 0 0

48、 1 0 2.3.3.4 2.3.3.4 程序控制指令程序控制指令 主要用于控制指令执行的顺序,即控制主要用于控制指令执行的顺序,即控制 程序的流程。程序的流程。 1. 转移指令:转移指令: 无条件转移无条件转移 条件转移条件转移 循环循环 :操作码操作码 转移地址转移地址 如:如: JMP BXJMP BX :操作码操作码 转移地址转移地址 转移条件转移条件 :转移条件为循环计数值转移条件为循环计数值 2.3.3.4 2.3.3.4 程序控制指令程序控制指令 2. 转子程序指令与返回指令:转子程序指令与返回指令: 主程序在执行过程中需要主程序在执行过程中需要 调用子程序时,调用子程序时, 执

49、行一条执行一条转子指令转子指令,程序便转到子程序,程序便转到子程序 的入口地址;子程序在执行完后,使用的入口地址;子程序在执行完后,使用 一条一条返回指令返回指令取出取出返回地址返回地址,从而返回,从而返回 到主程序。到主程序。 在转入子程序时,将其保存起来在转入子程序时,将其保存起来 转子指令:转子指令:操作码操作码 子程序入口子程序入口 返回指令:返回指令:操作码操作码 返回地址返回地址 2.3.3.4 2.3.3.4 程序控制指令程序控制指令 v返回地址的存取方式返回地址的存取方式 (1)用子程序的第一个字单元存放返回)用子程序的第一个字单元存放返回 地址地址 主程序主程序 子程序子程序

50、A A 子程序子程序B B D1D1 D2D2 多重转子:多重转子: D1D1 D2D2 主程序主程序 D1D1 子程序子程序A A D1D1 2.3.3.4 2.3.3.4 程序控制指令程序控制指令 (2)用寄存器存放返回地址)用寄存器存放返回地址 返回地址返回地址1 寄存器寄存器R 转子指令 子程序 存储器存储器 返回地址返回地址1 返回地址返回地址2 返回地址返回地址1 返回地址返回地址2 返回地址返回地址2 (3)用堆栈保存返回地址)用堆栈保存返回地址 SPSP 主程序主程序 子程序子程序A A 子程序子程序B B D1D1 D2D2 . D1D1 SPSPD2D2 主程序主程序 子程序子程序A A 子程序子程序B B D1D1 D2D2 子程序子程序A A D3D3 SPSP SPSPD3D3 多重转子多重转子 递归调用递归调用 子程序不复子程序不复 杂,支持多杂,支

温馨提示

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

评论

0/150

提交评论