问题标签 [att]

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 投票
2 回答
2557 浏览

linux - 使用 scanf 进入全局或局部变量(在堆栈上),32 位调用约定

给定以下代码:

输出将是“Hello World!”。


现在我尝试从用户那里获取一个数字,然后在屏幕上打印出来,但它不起作用(代码编译,但我做错了什么)。我的错误在哪里?

0 投票
2 回答
7286 浏览

assembly - NASM(英特尔)与 AT&T 语法:有什么优势?

我正在浏览英特尔处理器文档并同时编写一些基本的汇编代码。我的服务器上同时拥有nasmas(GAS),并且我了解这两个汇编程序的基本区别。

从长远来看:

  • 专注于这些语法中的哪一个是更好的主意?
  • 这些语法的优点和缺点是什么?
  • 哪一种被更广泛地使用和理解?

我也很感激你能与我分享的任何偏好。

0 投票
2 回答
25490 浏览

assembly - lea 汇编指令

我只是想确保我读的是正确的:

我将第一行读为:edx = [epb + 12],第二行读为:eax = edx + edx*4

有人可以澄清吗?

另外,如果我有以下两行怎么办:

一旦执行了第二行,eax寄存器会被覆盖吗?

并且eax = edx + edx*4是将地址乘以4?还是地址内容减4?

0 投票
1 回答
2520 浏览

assembly - x86 lea 指令

我试图很好地掌握 x86 中的 LEA 指令:

鉴于这两行,我知道:

eax = edx + edx*4

进而

eax = edx + edx*2

两个问题。首先,如果这些指令像本例中那样按顺序出现,那么一旦执行第二行,eax 寄存器就会被覆盖?究竟什么会被加载到寄存器中?另一个地址?或者这是对这些寄存器指向的值进行算术运算?

0 投票
2 回答
807 浏览

assembly - 切换到保护模式后“呼叫”

我正在尝试切换到 intel x86 中的保护模式。

我已经用 lgdt 加载了我的 gdt,将 cr0 的 P 标志设置为 1 和所有段选择器,但是当我从函数调用返回时,我无法调用任何其他函数,或者我收到此错误

这是我的 switch_to_pmode 函数:

我的电话

谢谢

0 投票
5 回答
29391 浏览

assembly - x86 汇编中的美元 ($) 和百分比 (%) 符号代表什么?

我试图了解汇编语言如何用于微型计算机体系结构类,并且在示例中我一直面临不同的语法:

这些代码是什么意思?esp寄存器的32个操作数是什么?

0 投票
7 回答
27806 浏览

assembly - 在 x86-64 AT&T 程序集中,地址前的星号 * 是什么意思?

以下行是什么意思:

内存地址前面的星号是什么意思?另外,当内存访问方法缺少它的第一个寄存器值时,这意味着什么?

通常它类似于 ("%register", %rax, 8),但在这种情况下它没有第一个寄存器。

有小费吗?

0 投票
2 回答
342 浏览

assembly - ASM——“%”是干什么用的?

汇编中的“%”有什么用?例如,有时一条指令写成:

其他时候它写成:

(没有百分号)有什么区别?

0 投票
1 回答
1329 浏览

linux - x86:中断处理程序循环

我正在尝试通过 IDT 处理内核中断。我在 Linux 下的 Intel x86 上工作。

我已经设置了我的 IDT 和我的中断条目,并且我启动了一些测试来查看我的中断处理程序。

当我尝试int $0x0时,它工作得很好:我的处理程序被调用但是当我尝试一些带有错误代码的异常时,我进入了一个无限循环。

架构如下:

当异常到来时,我的处理程序的第一部分在 ASM 中并调用一个通用的 C 部分。

my_handler.c

my_handlers.S

如果我尝试运行以下代码:

它有效,执行后恢复*a = 42;

但如果我尝试:

它进入一个无限循环:

为什么处理第一个异常 Page Fault(14) 然后在 General Protection(13) 上循环?

谢谢您的回答。

0 投票
2 回答
78588 浏览

assembly - MOVZBL 指令在 IA-32 AT&T 语法中的作用是什么?

这条指令具体是做什么的?