问题标签 [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.

0 投票
8 回答
119126 浏览

xcode - Mac 上的 x86 汇编

有谁知道在 Mac 上编写程序集的任何好工具(我正在寻找 IDE)。Xcode 对我来说有点麻烦。

另外,在 Intel Mac 上,我可以使用通用 x86 asm 吗?还是有修改过的指令集?有关发布英特尔的任何信息。

另外:我知道在 Windows 上,asm 可以在操作系统创建的模拟环境中运行,让代码认为它在自己的专用机器上运行。OS X 是否提供相同的功能?

0 投票
4 回答
3292 浏览

operating-system - 使用 nasm 混合 32 位和 16 位代码

这是一个低级系统问题。

我需要混合 32 位和 16 位代码,因为我试图从保护模式返回到实模式。作为一些背景信息,我的代码在 GRUB 启动之后执行此操作,因此我没有任何讨厌的操作系统来告诉我我能做什么和不能做什么。

无论如何,我在我的程序集中使用 [BITS 32] 和 [BITS 16] 来告诉 nasm 它应该使用哪些类型的操作,但是当我测试我的代码使用 bochs 时,看起来对于某些操作 bochs 没有执行的代码我写。看起来汇编程序正在添加额外内容0x660x67's,这让 bochs 感到困惑。

那么,在同一文件中混合 32 位和 16 位代码的情况下,如何让 nasm 成功组装代码?有什么技巧吗?

0 投票
6 回答
8573 浏览

gnu-assembler - 汇编语言中从 0 递增到 100

这有点奇怪,但我今天正在研究 GNU 汇编器(我希望至少能够阅读语法),并试图让我这个人为的小例子工作。也就是说,我只想从 0 到 100,一直打印数字。所以几分钟后我想出了这个:

我从中得到的只是 3 一遍又一遍地打印。就像我说的,只是一个人为的例子,所以不要太担心,这不是生死攸关的问题。

(格式有点乱,但没什么大不了的)。

0 投票
16 回答
42429 浏览

simulator - 适合初学者的汇编 IDE/模拟器

我想学习如何在汇编程序中编程。我之前做过一些组装(在我的 A-Level 计算课程期间),但这绝对是一个简化的“伪组装器”。我借了我爸爸的旧 Z80 汇编器参考手册,这看起来很有趣,所以如果可能的话,我想尝试一下 Z80 汇编器。

但是,我手头没有 Z80 处理器,想在我的 PC 上做(我有 windows 或 linux,所以两者都很好)。我在互联网上找到了各种汇编程序,但我对汇编成 hex 文件并不是特别感兴趣,我只想能够将它汇编成 PC 上某种模拟器可以运行的东西。最好这个模拟器会向我显示所有寄存器的内容、内存位置等,并让我逐步完成指令。我发现一些软件暗示他们可能会这样做——但他们要么拒绝编译,要么似乎不能正常工作。有没有人有任何建议?如果有很好的模拟器/IDE 可用于另一种类型的汇编器,那么我可以尝试使用它(假设有一个很好的在线参考手册可用)。

0 投票
11 回答
1399 浏览

assembly - 学习一种装配方言值得吗?

我的目标集中在软件应用程序开发,也许是 Web 应用程序开发,但最有可能是桌面应用程序。我正在走上一条更熟悉 C/C++ 的道路,但我应该比这低得多,进入汇编吗?或者我对我的长期目标没有好处?

0 投票
11 回答
1450 浏览

c - Is GCC broken when taking the address of an argument on ARM7TDMI?

My C code snippet takes the address of an argument and stores it in a volatile memory location (preprocessed code):

I used an SVN version of GCC for compiling this code. At the end of function foo I would expect to have the value 1 stored in the stack and, at 0x40000d4, an address pointing to that value. When I compile without optimizations using the flag -O0, I get the expected ARM7TMDI assembly output (commented for your convenience):

It clearly stores the argument first on the stack and from there stores it at 0x40000d4. When I compile with optimizations using -O1, I get something unexpected:

This time the argument is never stored on the stack even though something from the stack is still stored at 0x40000d4.

Is this just expected/undefined behaviour? Have I done something wrong or have I in fact found a Compiler Bug™?

0 投票
3 回答
5929 浏览

c - 如何从 VS2005 中的 C 文件中获取汇编程序输出

我认为生成的文件是一个 .asm 文件,知道在构建时如何在 Visual Studio 中生成它吗?

0 投票
3 回答
43062 浏览

x86 - x86中“非临时”内存访问的含义是什么

这是一个有点低级的问题。在 x86 汇编中有两条 SSE 指令:

MOVDQA xmmi, m128

MOVNTDQA xmmi, m128

IA-32 Software Developer's Manual 说 MOVNTDQA 中的NT代表Non-Temporal,否则它与 MOVDQA 相同。

我的问题是,非时间是什么意思?

0 投票
5 回答
94345 浏览

c - 有没有办法将汇编代码插入C?

我记得在过去使用旧的 bo​​rland DOS 编译器时,您可以执行以下操作:

现在有半平台独立的方式来做到这一点吗?我需要进行 BIOS 调用,所以如果有办法在没有 asm 代码的情况下做到这一点,那对我同样有用。

0 投票
10 回答
11486 浏览

timer - 组装CPU测频算法

测量处理器频率的常用算法有哪些?