问题标签 [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 投票
10 回答
9602 浏览

macos - Where can I find tools for learning assembler on OS X?

I'd like to learn assembler. However, there are very few resources for doing assembler with OS X.

Is there anyone out there who has programmed in assembly on a Mac? Where did you learn?

And, is there any reason I shouldn't be doing assembly? Do I risk (significantly) crashing my computer irreparably?

0 投票
8 回答
7374 浏览

c# - .NET 的汇编程序库,将运行时变量字符串组装成机器代码以进行注入

有没有可以通过 C# 调用的 x86 汇编器之类的东西?我希望能够将 x86 指令作为字符串传递并返回一个字节数组。如果一个不存在,我如何制作自己的?

明确一点——我不想从 C#调用汇编代码——我只想能够从指令中汇编代码并在字节数组中获取机器代码。

我将注入此代码(将即时生成)以完全注入另一个进程。

0 投票
1 回答
1400 浏览

assembly - 如何从时钟中获取随机生成器的种子,在汇编程序中编程

编译器,TASM 5

架构 x86。

对于随机数生成器算法,将时钟作为种子。


我找到了解决方案:

0 投票
2 回答
374 浏览

assembly - 无法运行汇编程序

我刚刚开始阅读 80x86 汇编语言和计算机体系结构简介。我正在尝试使用 NASM 来运行第 3 章中显示的第一个示例,但没有成功。有人读过这本书并运行示例吗?

0 投票
9 回答
2958 浏览

theory - 在大会中学习的关键概念

我坚信从学习一门新语言中获得的最重要的东西之一不是如何使用一门新语言,而是你从中获得的概念知识。我不是在问你认为 Assembly 有多重要或有用,我也不关心我是否从未在我​​的任何实际项目中使用它。

我想知道的是您认为对于任何普通程序员来说最重要的汇编概念是什么?它不必与 Assembly 直接相关——它也可能是您认为将所有时间都花在高级语言上的典型程序员无法理解或认为理所当然的东西,例如 CPU 缓存。

0 投票
8 回答
86592 浏览

assembly - `testl` eax 对 eax?

我试图了解一些装配。

汇编如下,我感兴趣的testl行:

我试图理解testl介于%eax和之间的那个点%eax?我认为这段代码的细节并不重要,我只是想用它本身来理解测试——这个值不总是正确的吗?

0 投票
10 回答
12196 浏览

assembly - 在没有 Sparc 硬件的情况下运行 Sparc 二进制文件

在过去的几个月里,我一直很好奇尝试为 SPARC 处理器(V8 或 V9)做一些组装。我的问题是,我无法访问 SPARC 机器,有没有办法可以在我的 x86 机器上运行 SPARC 二进制文件?我看过 QEMU,但我不太确定如何设置它。

0 投票
5 回答
380 浏览

com - 来自 x86 程序集的 COM?

是否可以通过 x86 汇编语言调用 COM 对象?如果是这样,怎么做?

我为什么要这样做?假设我有两个没有源代码的程序——我只有二进制文件。其中一个实现了 COM 接口,另一个没有。我想将代码注入第一个程序以使用此 COM 接口调用第二个程序,这需要我使用 x86 程序集。

0 投票
3 回答
95275 浏览

assembly - 如何使用 gcc 生成 Intel 语法的汇编代码?

gcc -S选项将以 AT&T 语法生成汇编代码,有没有办法以 Intel 语法生成文件?或者有没有办法在两者之间转换?

0 投票
12 回答
6888 浏览

c++ - Borland x86 内联汇编器;获取标签的地址?

我正在使用带有一些内联汇编代码的 Borland Turbo C++,所以大概是 Turbo Assembler (TASM) 风格的汇编代码。我希望执行以下操作:

所以 SomeLabel 的地址被放入 EAX 中。这不起作用,编译器抱怨:未定义的符号'SomeLabel'。

在 Microsoft Assembler (MASM) 中,美元符号 ($) 用作当前位置计数器,这对我的目的很有用。但这似乎在 Borlands Assember 中不起作用(表达式语法错误)。

更新:更具体地说,我需要编译器在编译/链接期间而不是在运行时生成它作为常量移动到 eax 中的地址,因此它会像“mov eax,0x00401234”一样编译。

任何人都可以建议如何让这个工作?

更新:为了回答 Pax 的问题(请参阅评论),如果 Windows 加载程序在运行时更改了基地址,则 DLL/EXE PE 映像仍将由 Windows 加载程序重新定位,并且标签地址将在运行时由加载程序使用基于重的地址,因此使用标签地址的编译/链接时间值不是问题。

提前谢谢了。