问题标签 [assembly]
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 - 设置 IRQ 映射
我正在关注几个教程和参考资料,试图设置我的内核。我在一个根本没有解释它的教程中遇到了一些不熟悉的代码。我被告知将其映射16 IRQs (0-15)
到 ISR 位置的代码32-47
:
的代码outportb()
如下,但我已经清楚地掌握了它的作用:
我应该提一下,这是在保护模式下的 x86 架构上。此源代码工作正常,我了解它的作用,但我不明白它是如何做到的。有人可以向我解释这里发生了什么,以便万一我需要对此进行扩展,我会知道我在做什么?
gcc - 如何在 x64 计算机上使用 gcc 编译 x86 汇编代码
对于学校作业,我必须编写 x86 汇编代码,但我不能使用 gcc 编译它,因为我的计算机是 x64 机器,而 gcc 只需要 x86 代码。是否有一个命令可以让 gcc 接受它的 x86 汇编代码?谢谢
PS 我知道我的代码是有效的,因为它在 x86 机器上编译得很好。
assembly - 在 1 条 ARM 指令中清除高 16 位
在 ARM 汇编中,立即数由 8 位旋转值编码,这意味着我们只能编码
现在我的问题是我想清除 r0 的高 16 位并将其替换为存储的半字 r1。但是由于立即数的范围有限,我必须做:-
是否可以用一条指令替换 2 条 bic 指令?0xffff0000 是不可编码的。也许我应该使用另一个逻辑操作来清除高 16 位?
谢谢
编辑:对不起,我忘了说 r1 的前 16 位是空的,我使用的是 ARM7TDMI
assembly - IA-32 汇编中的变量初始化
我对 MASM 程序集中的变量初始化有疑问。
如何将 2^32 初始化为变量以及应该初始化哪种变量?DWORD 还是 REAL4?
我尝试这样做:
当我将 var 分配给一个寄存器(例如 mov eax,val)并尝试写入该值时,我看到的不是 2^32。我也试过用 REAL4 类型。结果还是一样。
那么我在这里做错了什么?
提前致谢...
assembly - 在装配应用程序中修改内存
我正在从“x86 汇编的艺术”一书中学习汇编语言,我有一个问题我想不出答案。
程序是这样的:
“在本练习中,您将启动一个运行程序,该程序检查和操作内存中的值。然后您将切换到内存屏幕并修改内存中的值(也就是说,您将在程序继续运行时直接访问内存)。
程序首先将内存位置 1000h 设置为零,然后循环直到满足两个条件之一 - 用户切换 FFF0 开关或用户更改内存位置 1000h 中的值。切换 FFF0 开关会终止程序。
更改内存位置 1000h 中的值会将控制权转移到将 n 个字相加的程序部分,其中 n 是内存位置 1000h 中的新值。”
在对这些值求和后,它使用“put”打印它们的总和
我有这个代码:
问题是当我将值 12h 放在 1000h 上时,程序会输出 2 个值、总和和数字 1。
当我单步执行程序时,它输出 1 个值(总和),但是当我运行它时,它输出 2 个值(总和和数字 1)。
有人可以解释这种行为吗?
data-structures - 汇编器中数据结构的好库/库
汇编程序中的 x86(或其他)标准数据结构(链接列表、数组列表、队列、堆栈等)是否有任何好的库(最好带有注释源)?我不喜欢重新发明(和调试!)轮子......
python - 如何从 x86asm/x64asm 调用 python2.5 函数?
我将有几个必须与汇编代码交互的 python 函数。该解决方案不需要是一个完整的解决方案,因为我不会与 python 代码交互太久。无论如何,我咀嚼了一下:
- python 对象在内存中是什么样的?
- 如何调用python函数?
- 如何将 python 对象作为 ctypes 接口的 python 对象传递?
- ctypes 界面能否以其他方式让我的工作更轻松?
macos - PPC 断点
如何在 PPC 上实现断点(具体来说,在 OS X 上)?
例如,在 x86 上,它通常使用 INT 3 指令 (0xCC) 完成——对于 ppc 是否有与此相当的指令?还是有其他方式设置/实现它们?
c - 每个 C 指令有多少个 asm 指令?
我意识到这个问题不可能绝对回答,但我只是在了解大致数字:
给定一个合理大小的 C 程序(数千行代码),平均会生成多少条 ASM 指令。换句话说,现实的 C 与 ASM 指令比率是多少?随意做出假设,例如“使用当前的 x86 架构”。
我试图谷歌这件事,但我找不到任何东西。
附录:注意到这个问题带来了多少混乱,我觉得需要解释一下:我想通过这个答案知道,实际上是知道“3GHz”是什么意思。我完全清楚每赫兹的吞吐量因架构、硬件、缓存、总线速度和月球位置而有很大差异。
我不是在追求一个精确和科学的答案,而是一个可以放入可理解的尺度的经验答案。
这不是一个简单的地方答案(正如我注意到的那样),这是我最大的努力。我知道每行 C 的 ASM 结果行的数量取决于您在做什么。与- 我知道这i++
一点不在同一个街区。sqrt(23.1)
此外,无论我从 C 中得到什么 ASM,ASM 都会被解释为处理器内的各种微码集,这又取决于您运行的是 AMD、Intel 还是其他东西,以及它们各自的世代。我也知道这一点。
到目前为止,我得到的大致答案是我一直在追求的:一个足够大的项目平均每 1 行 ANSI-C 大约 2 行 x86 ASM。一旦流水线被填满并且给定足够大的样本,今天的处理器可能平均每个时钟周期大约有一个 ASM 命令。
optimization - 8051 汇编语言中内存优化的技术有哪些?
我需要优化代码为一些新代码腾出空间。我没有空间进行所有更改。我不能使用代码库切换(80c31 和 64k)。