问题标签 [nasm]

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 回答
3472 浏览

gcc - 帮助组装。在 Mac OS X 上编译样本时出现分段错误

我正在尝试使用 Paul Carter 博士的 pcasm 书来学习组装:http ://www.drpaulcarter.com/pcasm/

作者没有打包 Mac OS X 示例,然后我从 linux 源开始使用。这是第一个示例,它使用了他的库 asm_io。

运行时出现分段错误。为什么?在mac中运行需要改变什么?

我想如果你知道 asm,也许你可以告诉我发生了什么。

这是来源。

asm_io.asm:

asm_io.inc:

第一个.asm

驱动器.c:

现在我使用以下方法编译它:

nasm -f macho first.asm

nasm -f 男子气概 asm_io.asm

gcc first.o asm_io.o driver.c -o first -arch i386

然后运行:./first

分段故障

仅当我使用 asm_io lib 时才会发生这种情况。

谢谢,

丹尼尔·科赫

0 投票
1 回答
7575 浏览

c - 使用 NASM extern 语句访问 printf 时,GCC 输出错误“undefined reference to `printf'”

我正在学习 NASM 并准备编译这段代码(我在这里找到了)。它使用这个 NASM 命令组装:

printf.o但是这个 gcc 链接命令:

失败并出现错误:

我究竟做错了什么?提前致谢。(编辑:我在 Windows 7 上);

0 投票
5 回答
43732 浏览

assembly - 一个好的 NASM/FASM 教程?

有谁知道任何好的NASM或 FASM 教程?我正在尝试学习汇编程序,但似乎找不到任何好的资源。

0 投票
5 回答
23232 浏览

assembly - 理解汇编语言的mul和imul指令的问题

我正在从Paul caurter 的 PC Assembly 中学习 80386

  • 如果操作数是字节大小的,则将其乘以 AL 寄存器中的字节,并将结果存储在 AX 的 16 位中

美好的。

  • 如果源是 16 位,则乘以 AX 中的字,并将 32 位结果存储在 DX:AX 中。

Q1:为什么选择 DX:AX ?为什么不能存储在 EAX / EDX 中?

imul真的很混乱

替代文字

我在理解表格时遇到了问题。

Q2:在表格的第二个条目中。再次,为什么选择 DX:AX。为什么不是 EAX 或 EDX?

现在考虑以下代码片段:

Q3:之前说的The notation EDX:EAX means to think of the EDX and EAX registers as one 64 bit register with the upper 32 bits in EDX and the lower bits in EAX.那么答案也存储在edx中吧?在上面的代码中,我们没有考虑任何 EDX,我们只是指 EAX 这仍然有效吗?

Q4:我对表中所有条目的其余部分有疑问。两个 n 位数字(n = 8/16/32 位)的最坏情况相乘结果为 2n 位。它如何将两个 16/32 位乘法结果存储在相同大小的寄存器中?

0 投票
1 回答
292 浏览

assembly - 单 ASM 生成

我想尝试用 C# 编写一个简单的内核,比如 cosmos,只是为了学习。是否可以从 Mono 程序集生成 x86 或 x86-64 ASM?因为 mono --full-aot 生成一个可执行文件...

在生成 ASM 之后,我需要使用 NASM 对其进行编译。有任何想法吗?

0 投票
1 回答
1526 浏览

video - 在内核 ASM(NASM 汇编器)中将视频模式设置为 1920x1080 (HD) 或更高

我想将我正在处理的 ASM 内核中的视频模式设置为 1920x1080 或更高的视频模式(或至少高于 VESA 中的通常限制)。有没有办法做到这一点,如果有,提供示例代码?

我正在使用 NASM 对内核进行编码。

0 投票
4 回答
1223 浏览

nasm - 汇编语言“汇编器”也是特定的吗?哪个汇编程序最好?

我正在学习汇编语言。PC Assembly Language我从使用 NASM(The Netwide Assembler)的 Paul A. Carter's 开始。然后在中间我切换并开始阅读Introduction to 80×86 Assembly Language and Computer Architecture使用 MASM 的内容。

在我曾经写过的 NASM 中,用于初始化一个字节

分贝 110101b

在 MASM 我正在​​使用

字节 110101b

我正在阅读中。由于这些是汇编器指令,它们对于每个汇编器都是不同的。对?这些汇编程序开发人员不遵循这些指令的标准吗?因为,他们知道助记符是特定于 CPU 的。因此,用汇编语言学习和编码是一件很痛苦的事情。

现在,如果他们遵循不同的指令,那么如果您更改汇编程序或切换操作系统(如果 MASM 开发人员使用 linux,他将陷入困境),那就更痛苦了。

我的困惑是我应该熟悉 NASM 还是 MASM?我是 Windows 的粉丝,但我可能(将来)也必须在 Linux 上工作。

每本书的标题都应该是“_________Assembly Language using __________ Assembler”

0 投票
9 回答
56575 浏览

assembly - x86 asm 的 NASM 语法中的括号是什么意思?

给定以下代码:

里面的括号[L1]代表什么?


这个问题专门针对 NASM。英特尔语法程序集的另一个主要风格是 MASM 样式,当不涉及寄存器时,括号的工作方式不同:
请参阅MASM32 中的混淆括号

0 投票
2 回答
34453 浏览

assembly - MASM/NASM 差异

NASM 和 MASM 汇编器之间的语法差异是什么?

0 投票
2 回答
5807 浏览

assembly - NASM 汇编器调试器

是否有像 CodeView 这样的实用程序,我可以使用它来逐步执行由NASM组装的代码,在其中我可以看到寄存器/内存的当前状态?