att

    0热度

    1回答

    我想写使用内联汇编用C离开操作的旋转,像这样: byte rotate_left(byte a) { __asm__("rol %0, $1": "=a" (a) : "a" (a)); return a; } (凡字节通过typedef unsigned char型)。 这就提出了一个错误 /tmp/ccKYcEHR.s:363: Error: operand size

    0热度

    2回答

    这是从我的腿上弹问题的汇编代码,我陷在阶段2; 炸弹实验室要求我们根据汇编代码找出正确的输入,否则会爆炸。 从< +20>我知道%rbp -0x30(48)== 0或者它会调用< +32>并炸开炸弹;因此%rbp = 48(DEC) 之后(+26)%rbp - 0x2c(44)必须等于1或它会爆炸炸弹... 但是由于%rbp = 48,炸弹会爆炸到任何地方所以我现在迷惑...... 我想我误解了并

    0热度

    1回答

    我在写一个内联汇编代码来读取实时时钟。我正在加载寄存器编号(4)以读取到'dl'并将其加载到端口0x70。我正在尝试将这个寄存器值(4)读入al。欲了解更多信息 - RTC asm( "mov $4, %%dl;" "out 0x70, %%dl;" "in %%al, 0x71;" : : :"%al","%dl" ); 我正在上编译包含该代码的C文件下面的错误消息。 Assem

    2热度

    2回答

    我正在尝试在程序集中制作一个小程序(对于AT & T)。我试图以整型的形式从用户那里得到一个输入,然后递增,然后输出递增的值。但是,该值不会增加。我花了最后几个小时尝试所有我能想到的东西,但它仍然不起作用,所以我有这样的想法,即我可能理解集会中的一个概念不好,导致我没有发现错误。这是我的代码: 1 hiString: .asciz "Hi\n" 2 formatstr: .asciz "

    0热度

    1回答

    这是第一次我写汇编代码。 在第一个开始,我写了 #include<stdio.h> int main(){ int x,y; asm("movl $2,%eax"); asm volatile( "movl $1,%0\n\t" "movl %0,%%ebx\n\t" "leal 2(%%ebx,%%eax,$2)

    2热度

    1回答

    我无法找到答案。从我读过的%ebp有32位,将%esp移动到%ebp,你仍然会有32位,然后减去70到32,我不明白其余的。我对此很陌生,所以我不是很精通。请给出详细的解释。谢谢! 下面是我遇到的问题。 在这个指令序列的末尾,多少个字节将esp和程序堆栈上存储的返回地址分开?假设我们使用标准的32位x86调用约定来调用这个函数。 804847c functioname: 804847c: pus

    0热度

    1回答

    我看到这种情况下,从一个网站: cmpl $0x0,-0x20(%ebp) jne xxx (program terminated so -0x20(%ebp) == 0) cmpl $0x1,-0x1c(%ebp) jne xxx (program terminated so -0x1c(%ebp) == $1) 则: lea -0x18(%ebp),%ebx mov -0x

    2热度

    1回答

    我正在与AT & T语法,但认为我会尝试英特尔。我有这样的代码: .text .global _start _start: mov ebx, 0 mov eax, 1 int 80h 应该返回0,对不对?它在转换之前做了AT & T. as out.s -msyntax=intel --32 -o out.o ,但我得到: 我使用组装

    6热度

    1回答

    我有一个工具生成的x86_64体系一些GNU汇编代码,并有以下说明: movq %rsp, %rbp leaq str(%rip), %rdi callq puts movl $0, %eax 我无法找到关于“callq”指令实际的文件。 我看过http://support.amd.com/TechDocs/24594.pdf这是“AMD64体系结构程序员手册第3卷:通用和系统指令”,但

    0热度

    2回答

    所以,我有一个汇编函数,它在C中调用。它编译并且没有给出警告,但是当我尝试运行它时,它给了我一个分段错误。我认为这是因为我不能将一个常量移动到一个寄存器中,但是使用mul/div命令它需要一个值在EAX寄存器中。 我如何在Assembly中乘两个常量? 下面的代码到目前为止... .section .data .global n .equ A, 50 .equ B, 5 .section