
21题:
(R0)=7F 释:执行INC R0的结果 R0 ←7E+1
(7E)=0H 释:执行第一条INC @R0的结果 0FFH+1=100H,字长8位、溢出;
(7F)=3AH 释:执行第二条INC @R0的结果 39H+1
22题:
(1)执行完程序需所时间:(1+1+1+2)x(2μs)=10μs 释:每机器周期2μs
(2) 寻址方式:立即寻址
(3) NOP指令:空 *** 作,起“逗留”延时1个机器周期作用
23题:
(PC)= 5678H 释:子程序入口地址
(61H)= 36H 释:暂存于堆栈的主程序下一条指令地址低8位
(62H)= 12H 释:暂存于堆栈的主程序下一条指令地址高8位
Stackjava
import javautilconcurrentlocksCondition;import javautilconcurrentlocksLock;
import javautilconcurrentlocksReentrantLock;
public class Stack {
private int[] data;
private int index;
private Lock lock;
private Condition moreSpace;
private Condition moreEelment;
public Stack(int size){
thisdata = new int[size];
thisindex = 0;
thislock = new ReentrantLock();
thismoreSpace = locknewCondition();
thismoreEelment = locknewCondition();
}
public void push(int value){
locklock();
try {
while(index == datalength){
moreSpaceawait();
}
data[index++] = value;
moreEelmentsignalAll();
} catch (InterruptedException e) {
eprintStackTrace();
} finally {
lockunlock();
}
}
public int popup(){
locklock();
int value = 0;
try {
while(index == 0){
moreEelmentawait();
}
value = data[--index];
moreSpacesignalAll();
} catch (InterruptedException e) {
eprintStackTrace();
} finally {
lockunlock();
}
return value;
}
}
写入线程 WriteStackjava
import javautilRandom;public class WriteStack implements Runnable {
private Stack stack;
public WriteStack(Stack stack){
thisstack = stack;
}
@Override
public void run() {
Random r = new Random(SystemcurrentTimeMillis());
for(int i = 0;i < 10; i++){
int value = rnextInt(500);
stackpush(value);
Systemoutprintf("Write: push %d in stack\n",value);
try {
Threadsleep(rnextInt(500));
} catch (InterruptedException e) {
eprintStackTrace();
}
}
}
}
读取线程 ReadStackjava
import javautilRandom;public class ReadStack implements Runnable {
private Stack stack;
public ReadStack(Stack stack){
thisstack = stack;
}
@Override
public void run() {
Random r = new Random(SystemcurrentTimeMillis());
for(int i = 0;i < 10; i++){
int value = stackpopup();
Systemoutprintf("Read: popup an element %d\n",value);
try {
Threadsleep(rnextInt(500));
} catch (InterruptedException e) {
eprintStackTrace();
}
}
}
}
主测试线程 StackExamplejava
public class StackExample {public static void main(String[] args) throws InterruptedException {
Stack stack = new Stack(5);
WriteStack writeStack = new WriteStack(stack);
ReadStack readStack = new ReadStack(stack);
Thread writeThread = new Thread(writeStack);
Thread readThread = new Thread(readStack);
writeThreadstart();
readThreadstart();
}
}
以上就是关于分析程序全部的内容,包括:分析程序、用java编写程序,利用线程同步编写一个栈 *** 作程序,包括数据的进栈和出栈。、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)