问题标签 [microprocessors]
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.
assembly - Atom-32bit-intel板子的BIOS可以做IDT和GDT吗?
我有 Atom-32bit-intel board n450,里面只有 BIOS,我的目标是使用 APIC 计时器并将其与 ISR (0x21) 链接。过了一会儿,我发现IDT和GDT已经存在(可能是BIOS构建的),不需要构建它们(软件是C语言和AT&T汇编的):
所以我尝试使用 IDT 的地址将我的 ISR 链接到 IDT:
当我尝试调用 ISR33:int $0x21 时,软件崩溃:SingleStep CPU[1] 错误:处理器正在运行。
那么哪里错了???
备注:我使用eclipse Heros(AT&T程序集),代码处于保护模式(CR0.PE = 1我检查过,可能由BIOS设置)。
assembly - 指令长度可变时的指令解码
以下是一些说明及其相应的编码:
今天的微处理器通常是 32 位或 64 位的,我猜它们通常以 4 字节或 8 字节块的形式从内存中读取数据。但是,指令可以具有可变长度。微处理器如何解码这些指令,为什么它们的长度不是固定的以便于执行?
c++ - 对于用 C 编写的 AVR micro,Const Char 数组被修改为全 0
我正在帮助一个朋友在他的 AVR 上安装一个图形 LCD,几个月前一切正常,从那时起就没有受到影响。该芯片现已从 ATMega32 换成 ATMega164P。基本上相同的芯片具有更多的闪存,因为这种变化很多代码已经停止工作。
我们已经缩小了错误发生的位置,但无法纠正它。这是我们传递一个指向 const char 字符串的指针,并尝试打印该字符串的地方,但是由于某种原因,堆栈(堆,其他东西?)被破坏并且指针包含所有零。有谁知道这是怎么发生的?我们启用了正确时序所需的 -O1 级优化,我们也已切换到 winAVR 编译器,没有任何更改。我们也无法使用调试器,只能进行有限的“打印”样式调试。
这是导致问题的代码部分:
现在,当代码运行时,显示屏会打印出“atest”,这表明 const char 数组是如何归零的?我还尝试了以下行,这些行也都打印了“test”
这表明它获得了一个有效的指针,但它似乎指向全零。
我们还尝试将对该方法的调用更改为:
这段代码几个月前就可以运行了,我们甚至有一段运行它的视频,现在程序中的每个函数都出现了同样的问题,被传递的字符数组(在堆栈上?)似乎不起作用并且清零。
如果有人感兴趣,我可以安排托管完整源代码的副本。任何帮助或指示都将不胜感激!
vhdl - 从微处理器 VHDL Spartan 3A 获取数据
我有一个应用程序正在实例化我们在 vhdl 课程上开发的微处理器,它还在 FPGA 的 LCD 显示器上显示数据。
我们已经分别测试了微型和液晶显示器,它们确实可以工作。
现在的想法是将 micro 的数据(这是一个生成斐波那契数列的程序)显示到 LCD 上,但我无法让它显示系列的条款。
这是整个代码,但我认为问题可能出在微的实例化中,然后当我获取数据时(敏感列表具有 DATO_VALIDO 并重置的进程)
它可能正在处理正确的条款,但是当我在 LCD 上显示它们时,它们没有以正确的顺序显示。
伪代码是:
我想要做的是将每个术语存储在不同的信号上,一旦它们被转换为 ASCII,这些信号是:dT1、uT1、dT2、uT2 等。
最后在主状态机上,每个信号都有一个状态,每个信号都有一个值,它应该显示这些术语。
io - 端口到底是什么?
通常,微处理器中的 I/O 端口是指微处理器正在侦听的 RAM 中的某个内存地址(如果我错了,请纠正我)。
当我们谈论 TCP/IP 端口、FTP 端口等时,“端口”的含义是否相同?
我不确定这个问题的措辞是否正确。如果不正确,可能是由于我对端口的理解不准确。
c# - 确定处理器的高速缓存扇区大小
我正在尝试围绕与并行处理相关的处理器缓存线优化构建测试。具体来说,我正在测试我的产品部分如何受到虚假共享效率低下的影响。为此,我需要能够确定我的处理器缓存扇区大小(例如 64 字节),以便我可以设计具有适当对象大小范围的测试。那么......我如何或从哪里可以获得这些信息(例如处理器规格页面、C# API 调用等......)?缓存扇区大小也称为缓存行大小。
注意:我在英特尔网站上查看了我的 i7 处理器规格,但找不到这些详细信息,或者我只是无法识别它。
x86 - 我们是否也将寄存器 RAX、RBX 等称为 R1、R2 等?
我正在研究 8086/8080 微处理器。其中使用的寄存器有名字,
- 拉克斯
- RBX
- RCX
- RDX
并继续直到 R8,此时寄存器被命名为 R8、R9... 到 R15。我想知道
我们是否也将寄存器 RAX、RBX 等称为 R1、R2 等?
assembly - LDA:在 8 位寄存器中插入 16 位?这是什么意思?
我读过 8085 中的累加器是一个 8 位寄存器。那么下面的指令怎么会是真的:
其中地址是 LH 顺序的“16 位”地址
我们如何在 8 位寄存器中插入 16 位地址?
assembly - 这个英特尔汇编代码是什么意思?
以下是查找 2 个数字中较大者的程序:
在上面的程序中,EQU表示什么?EQU中的指令MVI A,01H是做什么的?
PORT1在这里表示什么?