小编Pet*_*man的帖子

x86指令中的".s"后缀是什么?

当我拆开.text使用一些二进制文件的部分objdump(与两个AT&T和Intel语法),有时会看到指令用.s后缀,例如:cmpb.s %bh,%ch,sbbl.s %edi,%edi,或adcb.s %bl,%dh.

请问.s后缀有一个有效/有用的意思(也许甚至还不如一个后缀),或这是拆卸一些数据/填充,如果它是一个指令序列的假象?谢谢.

x86 assembly x86-64 att

12
推荐指数
2
解决办法
1174
查看次数

如何使用GDB获取指令的长度?

我试图解决的问题是我想动态计算给定其地址(从GDB内)的指令长度,并将set该长度作为变量的值.挑战在于我不希望在控制台上打印任何无关的输出(例如,拆卸的指令等).

我的常规方法是做x/2i ADDR,然后减去两个地址.我想自动实现同样的事情; 但是,我不想在控制台上打印任何东西.如果我可以禁用控制台输出,那么我可以通过执行此操作x/2i ADDR,然后执行此操作$_ - ADDR.

我还没有找到一种方法来禁用GDB中的命令输出.如果你知道这样的话请告诉我!但是,我发现了interpreter-execGDB/MI.快速测试表明,x/2i在GDB/MI上工作,并且$_MI解释器计算的值与控制台解释器共享.不幸的是,这种方法也吐出了很多输出.

有没有人知道如何计算指令的长度而不显示任何内容,或者如何禁用输出interpreter-exec,从而允许我实现我的目标?谢谢.

gdb

3
推荐指数
1
解决办法
619
查看次数

标签 统计

assembly ×1

att ×1

gdb ×1

x86 ×1

x86-64 ×1