AT&T语法是UNIX环境中使用的汇编语法,源自AT&T贝尔实验室。它是MIPS汇编语法的后代。
我是新来assembly.I正在读计算机系统程序员的角度来看。我不明白,我怎么选择MOV指令后缀。我知道,每个寄存器和位计数。后缀使用情况确定...
需要帮助在给定64位汇编指令的C中构造Long循环(long x,int n)函数
我有来自C函数长循环(long x,int n)的以下汇编代码,其中x在%rdi中,n在64位机器上的%esi中。我写了一些关于我认为装配说明是什么的评论......
我有一个简单的自定义操作系统(现在做的不多:D)。现在我正在使用没有键盘支持的汇编文件(boot.s)。汇编文件(boot.s):#设置幻数到...
为什么AT&T jmp * bar汇编到带有SIB字节的机器代码?指令中没有使用寄存器
我在x86机器上有这个绝对的间接跳转指令:ff 24 25 30 10 60 00它是从jmp * bar生成的,但我在解码它的第二个和第三个字节时遇到了麻烦。第二......
我正在为内核编写GDT,一切顺利,我正在学习本教程。 http://www.osdever.net/bkerndev/Docs/gdt.htm将C代码链接到汇编代码时,他使用了这段代码。 ...
我在汇编中编写自己的atoi函数时遇到了一些麻烦。指令是“更改函数,以便它返回传递给...的C字符串(指针)的整数等价物。
计算机系统的第3章程序员的观点(第2版)提到cltq等同于movslq%eax,%rax。为什么他们创建一个新指令(cltq)而不是仅使用...
我很难找到movslq指令的作用。 Google没有太大帮助,此列表中没有此类说明。在这里,我已经读到MOVSLQ正在移动并从...中扩展一个值...
defuse.ca在线GAS汇编程序接受movb和movw的AT&T语法,但不接受movl?
我正在使用https://defuse.ca/online-x86-assembler.htm#disassembly将x86指令汇编到机器代码中。 (编者注:它在.intel_syntax noprefix模式下使用GAS。)以下代码抛出......
我正在编写一个代码,用于在程序集中将十六进制(A-F)转换为十进制。我设法在8086 emu上写它但我需要它用于linux。我需要帮助。该代码在8086仿真器n窗口上工作得非常好。 ...
我正在研究linux内核源码(旧版本0.11v)。当我检查fork系统调用时,有一些asm代码用于上下文切换,如下所示:/ * * switch_to(n)应该将任务切换到任务nr ...
#加载GDT。 mov $ gdt_descriptor,%ecx lgdt(%ecx)mov $ 0x10,%cx mov%cx,%ds mov%cx,%es mov%cx,%fs mov%cx,%gs mov%cx,%ss ljmp $ 0x8 ,$ 1f 1:mov $ kernel_stack,%esp我无法...
我正在完成一项任务,我需要使用GDB来理解已编译的C程序。我正在尝试按照说明操作,但很难准确理解jmp命令是什么...
C ++ ATT程序集我试图理解以下两条指令的行为:pushl%esp和:popl%esp请注意,它们将计算出的值存储回%esp。我在考虑这些......
在Google Native Client的论文中,作者将nacljmp定义为这两个指令:和%eax,0xffffffe0 //清除%eax中的5个最低有效位。 jmp *%eax首先,我可以看到......
编辑:我想,我想出了问题所在。亚行发现我不是最新的更新(在&t发布了一个舞台上的udpate,我不知道)所以亚行没有让我调试。现在一切都很好。一世 ...
如果C文件只有一个函数,为什么pushq和movq仍然存在于开头?
我已经学习了几个月的AT&T程序集,我发现很难在我的.s文件中包含一些重复的指令。特别是main:pushq%rbp ...
在这段代码中,我试图在32位整数溢出时打印1,如果不溢出则打0。但是不管它是否溢出,我都会一直收到0。这是我的代码,其中有一个应该溢出并打印的示例1.任何......
我现在正在AT&T程序集中逐步执行一个函数,无法弄清楚这个特定的jmp命令是如何工作的。 jmp * 0x804a140(,%eax,4)它是如何使用%eax寄存器和...
我相信在x86中实现跳转的标准方法是与以下内容进行比较:cmpl%ebx,%eax将结果存储在eflags寄存器中,然后执行以下跳转...