软导作业2016年11月27日16:32:47

Bubble Sort the list: 33, 56, 17, 8, 95, 22。Make sure the final result is from small to large。Write out the list after the 2nd pass

33, 17, 8, 56, 95, 22


Give a sorted array as list={60,65,75,80,90,95}. Design an algorithm to insert the value of x into the sorted array. Then test the algorithm with value 50,67,99.

  输入插入数据A
 for (i = 0; i < 6; ++i) {
      if ( a[i] < A < a[i + 1])
          链表  a[i] < A < a[i + 1]
      else if (A < a[0])
         链表 A < a[0]
     else
         链表 A > a[5]
}

思考:为什么选择插入点在list头上、中间、尾巴上的三个数作为算法测试的数据,你能解释吗

恰好对应链表的三种情况

What is the state of the stack after the following sequence of Push and Pop operations?

  • anne
  • get
  • my
  • gun

PC,IR 寄存器的作用。

  • PC:程序计数器,是用来计数的,指示指令在存储器的存放位置,也就是个地址信息
  • IR:IR的全称应该是Instructinon register
    指令寄存器是用来存放指令的,存放当前正在执行的指令,包括指令的操作码,地址码,地址信息

ACC 寄存器的全称与作用。

ACC就是单片机里最常用的8位寄存器,名叫累加器。累加器ACC是一个8位的存储单元,是用来放数据的。但是,这个存储单元有其特殊的地位,是单片机中一个非常关键的单元,很多运算都要通过ACC来进行.


用“LOD #3”指令的执行过程,解释Fetch-Execute周期。

1)pc 根据地址从RAM取指令LOD #3
2)指令传入IR,指令传入Decoder,无需取址,3直接传入MUX
3)数据3传入ALU,再传入ACC

用“ADD W” 指令的执行过程,解释Fetch-Execute周期。

1)PC根据地址从RAM取指令ADD W
2)指令传入IR,再传入Decoder
3)ALU从ACC中取值
4)IR再次访问RAM中的W,从W中取值
5)W的值读入ALU
6)ALU执行加法,结果传入ACC


“LOD #3” 与 “ADD W” 指令的执行在Fetch-Execute周期级别,有什么不同

  • ADD W需要两次访问RAM,LOD #3只有一次

写出指令 “LOD #7” 的二进制形式,按指令结构,解释每部分的含义。

  • 00010100 00000111

解释 RAM 的地址。

  • 指令和数据都存储在RAM

该机器CPU是几位的?(按累加器的位数

  • 16位

写出该程序对应的 C语言表达

while (x >= 0)
  x--;
end while

用一句话总结程序的功能

  • 递减x直到x < 0

写出对应的 c 语言程序

int x;
while (x >= 0)
  --x;

用机器语言实现 10+9+8+..1 ,输出结果存放于内存 Y


写出 c 语言的计算过程

int total = 0
for (x = 10; x >= 1; --x) {
  total = total + x;
}
y = total;

写出机器语言的计算过程

  • LOD X
  • SUB #1
  • JMZ 16
  • STO X
  • ADD Y
  • STO Y
  • JMP 0
  • HLT

用自己的语言,简单总结高级语言与机器语言的区别与联系。

  • 联系:机器语言和高级语言都可以实现顺序,选择和循环
  • 区别:高级语言更加直观,机器语言必须根据机器的执行顺序运行

你可能感兴趣的:(作业,软导作业)