. .
《指令系统》
12、
地址 0019H 001AH
第一条转移指令:
0019H 001AH
JMP 0006H OP 指令
MOD DISP (PC)=001AH,执行该JMP指令后(PC)=001AH+0006H=0020H
第二条转移指令:
0019H 001AH
JMP 0025H (PC)=001AH,执行该JMP指令后(PC)=001AH+0025H=003FH 13、
寄存器-存储器型指令是指一个操作数来自寄存器,另一个操作数来自存储器。 (1)指令字长32位: OP(6) MOD(3) REG(4) 19ADDR(19) 直接寻址时EA=ADDR,因此主存最大存储空间为2字。(假设存储器按字编址)
19
间接寻址时EA=(ADDR),因此操作数地址存放在主存地址为0~2-1的单元,假设存储器按
32
字编址,则EA应该是32位的地址,则主存最大存储空间为2字。
(2)其实用32位通用寄存器做基址寄存器,类似于80X86机器上存储器分段管理。
32
EA=32位基地址+偏移地址,所以EA是32位,则主存最大存储空间为2字。
16、设某机寄存器字长16位,用16进制表示,已知:变址寄存器容为0004H,PC的容为0003H,存中部分单元容如下:
地址:容 地址:容 0002H:000AH 0007H:000AH 0003H:0002H 0008H:0002H 0004H:0007H 0009H:0003H 0005H:0004H 000AH:0009H 0006H:0005H 000BH:0008H
指令为双字长指令,格式如下:
操作码,寻址方式码,寄存器号(16位)0002H 直接地址/间接地址/立即数/相对位移量/形式地址(16位)0007H
若当前指令分别为下列寻址方式时,试求出操作数填入下表。
寻址方式 EA= 操作数 页脚
. .
直接 间接 立即 变址 0007H 000AH / 0004H+0007H 000AH 0009H 0007H 0008H
某机器字长16位,采用单字长指令,每个地址码6位。试采用操作码扩展技术,设计14条二地址指令,80条一地址指令,60条零地址指令。请给出指令编码示意图。 双操作数指令格式: OP(4位) 14条双操作数指令 OP=0000 … OP=1101 单操作数指令格式:
OP(10位) 80条双操作数指令 OP=1110000000 … OP=1110111111 OP=1111000000 … OP=1110001111 无操作数指令格式:
OP(16位) 60条双操作数指令 OP=00000 … OP=11011
页脚
A1(6位) A2(6位) A1(6位) A2(6位) A1(6位) A1(6位) . .
设某8位计算机,除HALT指令外,指令均为双字长,格式如下:
OP(4位) M(2位) Rd(2位) A(8位) 其中,
M为源操作数的寻址方式,编Rd为目的操作数码分配如下: 的寄存器号,编 00—立即数寻址 码分配如下: 01—直接寻址 00——R0 10—相对寻址 01——R1 11—变址寻址 10——R2 (变址寄存器为R3) 11——R3 A为源操作数的立即数、直接 地址、间接地址或偏移地址。
假设:PC的容为22H;变址寄存器R3的容为30H;主存部分单元的容如下:
主存地址:容 主存地址:容 主存地址:容
20H: 22H 27H: 02H 2EH: 00H
21H: 33H 28H: 21H 2FH: 01H
22H: 35H 29H: 0FH 30H: 02H
23H: 20H 2AH: 48H 31H: 03H
24H: 01H 2BH: 01H 32H: 04H
25H: 20H 2CH: 55H 33H: 05H
26H: 1DH 2DH: F0H 34H: 06H
问:CPU启动执行指令到停机,期间执行了哪几条指令?写出每条指令的功能、寻址方式、操作数及执行结果。
解:由于(PC)=22H,即程序的第一条指令地址为22H,从22H开始,执行到2DH(HALT指令)为止,共五条指令。经分析,所有指令的目的操作数的寻址方式均为寄存器寻址方式,为R1。下面列出每条指令的功能、源操作数的寻址方式、源操作数及执行结果。 PC 22H 23H 24H 25H 26H 27H 28H 29H 2AH 2BH 2CH 2DH 页脚
OP为操作码,编码分配如下: 0000——ADD 0001——SUB 0010——AND 0011——MOV 0100——JMP 0101——INC(自增1) …… 1111——HALT(动态停机) 指令 助记符 寻址方式 35H 20H 01H 20H 1DH 02H 21H 0FH 48H 01H 55H F0H MOV ADD SUB AND JMP —— HALT 直接寻址 立即数 EA 20H —— 源操作数 (20H)=22H 20H 执行结果 (R1)=22H (R1)=(R1)+20H =42H (R1)=(R1)-04H =3EH (R1)=(R1)·0FH =0EH· (PC)=2DH —— 停机 变址寻址 (R3)+02H=32H (32H)=04H 立即数 相对 —— —— —— (PC)+01H =2CH+01H =2DH —— —— 0FH —— —— —— . .
《控制器》
6、设某机平均执行一条指令需要两次访问存,平均需要三个机器周期,每个机器 周期包含4个节拍周期。若机器主频为25MHz,试回答:
1)若访问主存不需要插入等待周期,则平均执行一条指令的时间为多少? 2)若每次访问存需要插入2个等待节拍周期,则平均执行一条指令的时间是
又多少?
解:(1)
时钟周期?11? 主频25MHz平均指令周期?3?4?时钟周期?0.48?s
(2)
平均指令周期?3?4?时钟周期?2?2?时钟周期?0.64?s
7、设某机主频为8MHz,每个机器周期包含4个节拍周期,该机平均指令执行速度为1MIPS。试回答:1)该机的平均指令周期是多少时间?2)平均每条指令周期包含几个机器周期? 解:(1)平均指令周期?1?1?s
机器速度4(2) 8MHz平均每条指令???机器周期???2机器周期?
页脚
. .
8、参见图7-41的数据通路,指令“INC R1”将R1寄存器的容加1,画出其指令周期微程序流程图,并根据表7-11和表7-12写出每一条微指令码。
解: INC R1;(R1)+1R1
PC? AR、PC+1R1?DA1RAM? IRDA1+1?R1J1# BTO 110 011 000 001 100 OTB 111 000 000 011 001 FUNC 000 010 001 000 0 FS 1 0 1 0 0 S3-S0MCi 000000 000000 000000 000000 000000 空 0 0 0 0 0 M6-M0 0000010 0000011 0010000 0000100 0000001
9、根据图7-41所示的模型机结构和数据通路,写出以下指令从取址到执行的全部微操作序列,说明各条指令需要哪几个机器周期,需要几次访问存及完成什么操作。 1)SUB A,R ,该指令完成(A)-R→(A),源操作数一个为寄存器寻址,目标操作数为指令提供的存有效地址A。
2)JMP 偏移量,该指令完成PC+偏移量→PC。 解:(1)SUB A,R ;(A)-R→(A) 指令为双字节格式: OP(SUB) ** Addr PC? AR、PC+1PC? AR、PC+1Rd Rs?DA2RAM? IRRAM? ARDA1-DA2?RAMJ1#RAM? DA1 所以,共需要8个机器周期,共访存4次。
页脚