View on GitHub

Homework Space

Homework Space for Introduction to Software Engineering

机器语言编程

任务一

  1. PC,IR 寄存器的作用。
    PC:全称为computer counter, 即程序计数器,指示指令在存储器中的存放位置。
    IR:全称为Instructinon register, 即指令寄存器,用来存放指令的,存放当前正在执行的指令,包括指令的操作码,地址码,地址信息。
  2. ACC 寄存器的全称与作用。
    ACC: 全称即accumulator, 即累加器A,累加器A是一个具有特殊用途的二进制8位寄存器,专门用来存放操作数或运算结果。在CPU执行某种运算前,两个操作数中的一个通常应放在累加器A中,运算完成后累加器A中便可得到运算结果。
  3. 用“LOD #3”指令的执行过程,解释Fetch-Execute周期。
    (1) PC指针从RAM中读取到”LOD #3”指令。 (2) 将指令传入Decoder,并根据读取的指令格式进行译码。
    (3) 数字3经过MUX后传入ALU进行计算.
    (4) 将ALU的计算结果送入ACC。
  4. 用“ADD W” 指令的执行过程,解释Fetch-Execute周期。
    (1) PC指针从RAM中读取到“ADD W”的指令
    (2) 将指令传入Decoder,并根据读取的指令格式进行译码。
    (3) 将ACC的值与RAM中W的值传入ALU,进行计算。
    (4) 将计算结果送入ACC。
  5. “LOD #3” 与 “ADD W” 指令的执行在Fetch-Execute周期级别,有什么不同。 “LOD #3” 只访问了一次RAM,而 “ADD W” 有两次。

  6. 写出指令 “LOD #7” 的二进制形式,按指令结构,解释每部分的含义。
    00010100 00000111
    前八位是命令指示,后八位是操作数,其中第四位为寻址方式,五到八为为操作码
  7. 解释 RAM 的地址。
    用于暂时存储程序与数据。
  8. 该机器CPU是几位的?(按累加器的位数)
    16位
  9. 写出该程序对应的 C语言表达。
    int w = 3;
    int x = 7;
    int z = x + w;

任务二

  1. 用一句话总结程序的功能
    X从3开始减一,直到X=0
  2. 写出对应的 c 语言程序
    int x = 3;
    for (;x!=0;x–) ;

  1. 写出 c 语言的计算过程
    int x, y = 0;
    for(x=10;x!=0;x–)
    y += x;
  2. 写出机器语言的计算过程
    00010100 00001010
    00000101 10000001
    00010001 00000001
    00000101 10000000
    00000000 10000001
    00000101 10000000
    00000100 10000000
    00001101 00010010
    00001100 00000100
    00000101 10000010
    00001111 00000000
  3. 用自己的语言,简单总结高级语言与机器语言的区别与联系。
    联系:高级语言是高度概括的机器语言,经过编译后仍可成为机器语言。
    区别:高级语言更容易被人看懂,而机器语言是给机器看的,不易被人看懂。