x86 程序集:“subl”命令如何在 AT&T 语法中工作

Posted

技术标签:

【中文标题】x86 程序集:“subl”命令如何在 AT&T 语法中工作【英文标题】:x86 assembly: How does the 'subl' command work in AT&T syntax 【发布时间】:2016-04-12 09:35:00 【问题描述】:

%edx 的值为0x3%eax 的值为0x100。 然后我们有指令:subl %edx, %eax %eax的结果值是多少?

【问题讨论】:

您可以随时查看 instruction set reference 。尽管指令集参考用于 Intel 排序 (dest, src),但您仍然可以通过在读取指令集时交换操作数 (src,dest) 来使用指令集参考。或者,您可以在 GDB 之类的调试器中加载汇编代码并使用 layout asm,然后您可以逐步查看说明以查看结果和标志。 【参考方案1】:

你有

movl $3, %edx
movl $0x100, %eax

作为输入值。说明

subl %edx, %eax

只需从 EAX 中的 100(十六进制)减去 EDX 中的 3(十进制),得到 100h-3h=0FDh

【讨论】:

结果存储在哪里? 结果存储在%eax

以上是关于x86 程序集:“subl”命令如何在 AT&T 语法中工作的主要内容,如果未能解决你的问题,请参考以下文章

x86 AT&T 语法程序集的注释语法

将 ISR 链接到向量中断 80x86 32 位 AT&T 程序集

我可以将 x86 程序集的 Intel 语法与 GCC 一起使用吗?

x86 程序集:比较(GAS 语法)

x86 汇编 (AT&T):如何在运行时为变量动态分配内存?

x86汇编程序基础(AT&T语法)