44. (10分)题43中描述的计算机,其部分指令执行过程的控制信号如如题44图a所示。
题44图a 部分指令控制信号
该机指令格式如题44图b所示,支持寄存器直接和寄存器间接两种寻址方式,寻址方式位分别为0和1,通用寄存器R0~R3的编号分别为0、1、2和3。
题44图b 指令格式
请回答下列问题。
(1) 该机的指令系统最多可定义多少条指令?
(2) 假定inc、shl和sub指令的操作码分别为01H、02H和03H,则以下指令对应的机
器代码各是什么?
① inc R1 ; R1 + 1→R1
② shl R2,R1 ; (R1) << 1→R2
③ sub R3, (R1),R2 ; ((R1)) – (R2) → R3
(3) 假定寄存器X的输入和输出控制信号分别为Xin和Xout,其值为1表示有效,为0表示无效(例如,PCout=1 表示PC内容送总线);存储器控制信号为MEMop,用于控制存储器的读(read)和写(write)操作。写出题44图a中标号①⑧处的控制信号或控制信号的取值。
(4) 指令“sub R1,R3,(R2)”和“inc R1”的执行阶段至少各需要多少个时钟周期?
【参考答案】
(1) 128
(2) ① 0280H,② 04A8H,③ 06EEH
(3) ① 0,② mov,③ mova,④ left,⑤ read,⑥ sub,⑦mov,⑧ Srout。
(4) 至少各需要8和7个时钟周期。
【考查知识点】指令的格式与寻址方式,指令执行过程
45. 有A、B两人通过信箱进行辩论,每人都从自己的信箱中取得对方的问题。将答案和向对方提出的新问题组成一个邮件放入对方的邮箱中,设A的信箱最多放M个邮件,B的信箱最多放 N个邮件。初始时A的信箱中有x个邮件(0
A、B两人操作过程:
Code Begin
A{
While(TRUE){
从A的信箱中取出一个邮件;
回答问题并提出一个新问题;
将新邮件放入B的信箱;
}
}
B{
While(TRUE){
从B的信箱中取出一个邮件;
回答问题并提出一个新问题;
将新邮件放入A的信箱;
}
}
Code End
当信箱不为空时,辩论者才能从信箱中取邮件,否则等待。
当信箱不满时,辩论者才能将新邮件放入信箱,否则等待。
请添加必要的信号量和P、V(或wait, signed)操作,以实现上述过程的同步,要求写出完整过程,并说明信号量的含义和初值。
【参考答案】
Semaphore mutexA=1;
Semaphore mutexB=1;
Semaphore emptyA=M;
Semaphore emptyB=N;
Semaphore fullA=0;
Semaphore fullB=0;
Code Begin
A{
While(TRUE){
P(fullA);
P(mutexA)
Get a mail from A_mailbox;
V(mutexA);
V(fullA);
Answer the question and raise a question;
P(emptyB);
P(mutexB)
send the mail to B;
V(mutexB);
V(emptyB);
}
}
B{
While(TRUE){
P(fullB);
P(mutexB)
Get a mail from B_mailbox;
V(mutexB);
V(fullB);
Answer the question and raise a question;
P(emptyA);
P(mutexA)
send the mail to A;
V(mutexA);
V(emptyA);
}
}
Code End
【考查知识点】 考察了利用信号量进程同步问题。