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 语法中工作的主要内容,如果未能解决你的问题,请参考以下文章
将 ISR 链接到向量中断 80x86 32 位 AT&T 程序集
我可以将 x86 程序集的 Intel 语法与 GCC 一起使用吗?