att

    0热度

    1回答

    我是X86汇编语言的初学者。我知道如何从标准输入读取并使用内置函数写入标准输出,但我不知道如何用普通的汇编代码(即操作寄存器和利用系统调用)来完成这项工作。 #include <stdio.h> #include <unistd.h> int main(){ /* copy input to output */ char buf[BUFSIZ]; int n;

    0热度

    2回答

    这个任务是解释一些汇编代码,找到一个没有调用“爆炸炸弹”即可运行的短语。我使用gdb来反汇编当前阶段。我被卡住了,关于我是否正朝着正确的方向前进的建议将非常感激。 0x0000000000400fb5 <+0>: sub $0x18,%rsp 0x0000000000400fb9 <+4>: lea 0x8(%rsp),%r8 0x0000000000400fbe <+9>: lea 0x

    0热度

    2回答

    我是Assembly(x86 ATT语法)的初学者。我正在做一个任务,我必须通过二维数组的每个索引并找出1的数目。该方法接受2d int数组,int w,int h。我如何实现循环从0到W,并用循环指令反弹出来。我知道如何用jmp指令来做到这一点,但循环只是给我错误/ segFaults。这是我尝试使用跳跃声明并且工作正常。我将如何使用循环指令转换内部循环? pushl %ebp movl %e

    -1热度

    2回答

    我已经练习了很久以前的汇编程序,我想了解一个简单的程序(我从C代码生成汇编代码),它添加了2个向量(实际上是2个数组)并将结果存储在另一个向量中一个输出数组)。我的目标是研究矢量化。为此,我在i7内核处理器上使用Debian Wheezy下的gcc-4.9。 这里C代码片段(未矢量版本): #include <stdio.h> #define SIZE 10000 void test(do

    0热度

    2回答

    我已经写了下面的汇编代码来将字符串从小写字母转换为大写字母,它并不完全工作,因为我无法访问字符串的地址, m转换。这段代码不工作为什么? #include<stdio.h> int convert(char *str) { char *ptr; __asm__ __volatile__ ("movl (%1),%%ebx;" "subl

    0热度

    1回答

    我有一个复杂的变量,实际上是一个wav文件,我从AT & T的请求中接收回来。变量存储为ATT_MSSDK.TextToSpeechv1.TextToSpeechResponse(var )。我希望Unity能够将它作为一个audioclip播放,但我不能为了我的生活而弄清楚如何做到这一点。你有什么建议吗?如果我可以怎么解析这个变量到一个字节[]我可以将它转换成音频剪辑​​,但我不知道如何解析一个

    0热度

    2回答

    32bit,AT & T/GAS语法 有时我会对存储到寄存器的内容有些困惑。这是价值还是地址? 假设我们的函数的开头在代码中有这个。 movl 12(%ebp), %eax //Get i leal (%eax,%eax,2), %eax //Compute 3*i 所以12(%ebp)不是我自己的价值。它具有我的值实际位于内存中的地址。这意味着&我正在发送到寄存器eax。 下一行 Leal

    -7热度

    2回答

    工作学习汇编和我有下面的代码,我必须转化为C: pushl %ebp movl %esp, %ebp movl 12(%ebp), %eax imull $886836204, %eax, %edx movl 8(%ebp), %eax addl %edx, %eax addl $629084528, %eax popl %ebp ret 我知道,它需要两个参数,格式为int

    1热度

    1回答

    误差`在数类型不匹配是: INB %% EAX,%% EDX 我尝试这样做: inb %% eax,$ 0x00000064 和 inb %% eax,$ 0x64 没有改变输出。我也尝试过'in'而不是'inb',但我现在在黑暗中拍摄。 任何想法?

    0热度

    1回答

    我目前正在尝试为我的学习学习汇编语言。我想我只是尝试试验和错误,但我不了解足够的装配对我来说能够做到这一点。我想写一个简单的程序,允许我输入2个数字,然后将这两个数字打印在一起,所以只需简单地加上即可。 我试着开始只是想输入两个数字,比打印这两个,但我得到了分段错误,当我进入第二个数字。 我想知道的另一件事就是为什么我有当我放入“%d \ n”而不是“%d”时,连续两次输入一个数字。我想打印分开的