问题标签 [program-counter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
747 浏览

cpu-architecture - 处理器中程序计数器的门级电路是什么样的?还是时间步长计数器?

计算机体系结构似乎是计算机工程中一个非常困难的领域,我认为需要进一步的材料。对于不同单元如何相互工作,特别是关于 MOS 6502 处理器中的寄存器,有很好的概念解释。

这是一个基本的程序计数器: https ://www.clear.rice.edu/elec422/1996/bomb/finalmw.html https://www.clear.rice.edu/elec422/1996/bomb/IMG00003.GIF

我一直在阅读各种教科书,尤其是以下关于计算机系统的教科书:

David Patterson,John Hennessy:计算机组织和设计,修订版第 4 版,Morgan Kaufman,2011。[购买]

Randal Bryant,David O'Hallaron:计算机系统,Prentice Hall,2011。[购买]

但是我没有找到处理器内部程序计数器和其他寄存器的任何门级电路图。

如果有人知道我在哪里可以找到这些原理图,那对个人充实来说会很棒,看看这些在基本的 AND、OR、XOR 等门中是什么样子会很有趣!

编辑:我并不是特别在寻找一本书或资源,而是理想情况下,如果我们社区中的任何人都有为程序计数器之类的东西绘制电路图的经验。我很想看看它们长什么样。

0 投票
2 回答
145 浏览

vhdl - 信号从 0100 变为 0X00

我正在研究必须在 clk 的每个上升沿添加 4 的程序计数器:

代码:

在 ISIM 中进行仿真时,

我已经在这个“简单”的事情上工作了几个小时,我尝试过:

  1. 将 +4 线也更改为同步(进入流程),但问题仍然存在。
  2. 其他一些没用的东西。

我怎样才能修复那个X?我已经测试了其他数字而不是 4,并且我猜想 if_CounterSim 中的所有 '1' 在分配后都转换为 'X'。

0 投票
1 回答
297 浏览

c - Pthread 程序计数器

对 C 使用 pthreads,有没有办法访问特定线程的程序计数器/指令指针?

例子:

0 投票
0 回答
81 浏览

c - 如何从另一个线程继续一个线程的工作?

我有两个线程(在 C 中)执行以下指令:

现在,我的问题与无锁编程领域有关,它是这样的:

  • 线程 1 执行 (1) 并进入睡眠状态
  • 线程 2 执行 (1) 和 (2) 并进入睡眠状态
  • 线程 1 醒来并注意到(通过 CAS 指令)tail变量已更改并回滚其更改((1)指令)并希望通过继续线程 2 工作(来自Bar方法的第三条指令)来提供帮助

我的问题是:我们能否以某种方式从线程 1 继续线程 2 的工作?[例如通过以某种方式改变指令指针或通过任何其他方式] 我们可以修改或保留所有类型的线程状态信息。

0 投票
0 回答
896 浏览

recursion - ARM 程序集 - 阶乘递归程序计数器超出有效内存范围

您好,我对编写汇编非常陌生,并且对我尝试编写递归函数来计算 n 的阶乘有疑问。

这是我编写阶乘函数的尝试:

问题是这样的:我成功地计算出 3 阶乘是 6 并且它在程序结束时存储在 r1 中;但是,在循环的第三次执行中,我永远无法通过最后一个“MOV pc,lr”语句,我无法理解原因背后的逻辑。

当我进入 MOV pc 的第三个循环时,lr 我收到一条错误消息:“PC 超出有效内存范围”,但我不确定为什么会这样。任何指向正确方向的指针都将不胜感激,因为我是一个绝对的初学者,无法理解为什么会发生这个错误。感谢您的时间!

0 投票
1 回答
601 浏览

c - 访问内核模块中进程的调度指令

我想编写一个内核模块来检查正在运行的进程的预定指令。我已经看过Linux Kernel Process Management,它解释了如何迭代进程。

但是,一旦我掌握了 a task_struct,我如何才能获得说明?我假设我需要先找到程序计数器,看看接下来要执行哪些指令。

task_struct我需要检查哪个成员才能按照说明结束?它们以何种struct类型存储?

谢谢你的帮助。我对内核编程没有那么丰富的经验。

0 投票
1 回答
429 浏览

binary - MIPS PC 和标签跟踪

假设当前 PC 为 0x00400010(增量后),目标标签的值为 0x00400040。指令中常量的二进制值是多少?

我不太确定如何处理这个问题。我将不胜感激提示或解释如何找到解决方案。

0 投票
1 回答
1120 浏览

6502 - 这两个程序计数器寄存器在 6502 中是如何工作的?

我目前正在 LogiSim 中开发 6502 的一个子集,在当前阶段,我正在确定要实施哪些部分以及可以删除哪些部分。我的主要资源之一是Hanson 的框图

我目前正在尝试确定增量逻辑的工作原理。在我之前在学校工作的一个项目中,程序计数器是通过来自解码指令存储器的一条指令递增的。在此图中,程序计数器逻辑的工作方式与我之前遇到的不同。

令人困惑的部分

这个逻辑究竟是如何工作的,它是否使用指令存储器中的指令来递增?作为后续,是否可以简化程序计数器逻辑以使用指令存储器中的一条或两条指令来递增?

0 投票
0 回答
323 浏览

cpu - 指令寄存器 Motorola 68k

您好,我想知道摩托罗拉 68k 的程序计数器是如何递增的,因为 Mc68k 指令是长度可变的。此外,指令寄存器的长度是多少?指令寄存器如何保存长度可变指令?

0 投票
0 回答
579 浏览

windows - 我需要知道如何制作一个合适的 4 位二进制计数器

我尝试从下图中制作一个 4 位二进制计数器:

在此处输入图像描述 在此处输入图像描述

由于在没有人字拖或任何带有积木的游戏中制作该电路,我对以下内容感到困惑:

  • 输出在哪里?
  • 时钟速度重要吗?
  • 为什么它不起作用?
  • 这对吗?