Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 操作的微操作顺序?_Assembly_Operating System_Interrupt_Computer Architecture_Isr - Fatal编程技术网

Assembly 操作的微操作顺序?

Assembly 操作的微操作顺序?,assembly,operating-system,interrupt,computer-architecture,isr,Assembly,Operating System,Interrupt,Computer Architecture,Isr,考虑以下微操作序列 MBR ← PC MAR ← X PC ← Y Memory ← MBR 以下哪一项是此序列可能执行的操作 指令提取 操作数提取 条件分支 中断服务的启动 答案是选项(4) 我的尝试: 指令获取:获取指令:从PC地址读取指令代码并放入IR。(IR)← 内存[PC]) 操作数提取:必要时从内存中提取操作数:如果任何操作数是内存地址,则启动内存读取周期以将其读入CPU寄存器。如果操作数在内存中,而不是在寄存器中,则操作数的内存地址称为有效地址,简称EA

考虑以下微操作序列

  MBR ← PC
  MAR ← X  
  PC ← Y  
  Memory ← MBR
以下哪一项是此序列可能执行的操作

  • 指令提取
  • 操作数提取
  • 条件分支
  • 中断服务的启动

  • 答案是选项(4)

    我的尝试:

  • 指令获取:获取指令:从PC地址读取指令代码并放入IR。(IR)← 内存[PC])
  • 操作数提取:必要时从内存中提取操作数:如果任何操作数是内存地址,则启动内存读取周期以将其读入CPU寄存器。如果操作数在内存中,而不是在寄存器中,则操作数的内存地址称为有效地址,简称EA。因此,操作数的取数可以表示为寄存器← 内存[EA]。在今天的计算机上,CPU比内存快得多,因此操作数获取通常需要多个CPU时钟周期才能完成
  • 如果满足条件(且寄存器不为0),条件分支指令将使PSW中的位置计数器设置为寄存器或寄存器中指定的地址加上12位偏移量
  • 中断服务例程(ISR)是硬件响应中断而调用的软件例程。ISR检查中断并确定如何处理。ISR处理中断,然后返回逻辑中断值


  • 对于选项中给出的操作,您能否按微操作的顺序进行解释


    这个问题使用了威廉·斯泰林的一本教科书中的符号。问题本身没有足够的背景材料,不熟悉Stalling教科书的人无法回答(我没有Stalling的教科书,也不知道这个问题引用的版本)

    然而,在看到指向答案的评论后,我在谷歌上搜索“时钟周期分组规则”。这导致了一系列指向不同幻灯片集的链接

    对我来说,第三个链接是一个链接,其中包括一张幻灯片,我在下面复制了一张图片。有一张幻灯片解释了MAR和MBR的含义:

    存储器地址寄存器(MAR)

    • 连接到地址总线

    • 指定读或写操作的地址

    内存缓冲寄存器(MBR)

    • 连接到数据总线

    • 保存要写入或上次读取的数据


    因此,似乎正在发生的是,首先将
    PC
    放置在
    MBR
    中。接下来,将保存
    PC
    的地址从
    X
    复制到
    MAR
    。在同一循环中,
    PC
    被设置为中断服务程序的开始,该程序在
    Y
    中可用。最后,
    MBR
    中的数据通过总线传输到内存。

    问题是什么?我要求执行给定的
    MBR之类的微操作← 个人电脑市场← X个人电脑← Y记忆← MBR
    用于启动中断服务。类似地,如果你能为其他选项(1)、(2)和(3)给出正确的
    代码,我有点困惑,
    内存不是吗?如果返回地址写在内存中某个预定义的位置,它可能会被中断,但我怀疑…你能解释一下选项中给出的操作的微操作顺序吗?谢谢你的解释。我不明白两个不同的地址如何在一个时钟周期(时钟周期t2)内通过一条地址总线同时传递到寄存器MAR和PC。