machine-code

    4热度

    1回答

    在英特尔64和IA-32架构软件开发人员手册中,行F表A-4附录A.3卷2C(订购号326018-045US,2013年1月)是独一无二的,因为它具有组合的前缀子行两个前缀:0x66和0xF2。 与此相关的唯一操作码是0x0F38F1(CRC32)。对于前缀0xF2,源操作数是Ey(内存或通用寄存器; 32位或64位),前缀0x66和0xF2一起,源操作数为Ew(内存或通用寄存器;始终为16位)

    2热度

    1回答

    执行ndisasm /dev/urandom似乎永远不会给我任何错误。这表明我非常幸运,或者所有字节真正反汇编成16位汇编器。 我面临一个实际问题,因为我想知道如果我可以依靠这种行为来测试我的反汇编程序。

    3热度

    2回答

    我已经看到逻辑左移可以做1-31位的移位形式。算术右移和逻辑右移取1-32作为移位量。为什么左右轮班的区别?

    0热度

    1回答

    我们如何把程序指令c = a-b;在机器代码说明中?我已经提供了操作码,内存地址为a = 80,b = 81,c = 82和程序计数器= 30十六进制。指令长16位,4位操作码,4位寄存器,16位存储器地址。 我只需要知道它是如何启动的正式方式。这是因为我真的不明白我的讲师教授什么。如果我能得到一个明确的方向,那么我有信心在没有我的讲师的帮助下做到这一点。

    0热度

    1回答

    我尝试使用mmap来分配可读,可写和可执行的内存。 我写的是x86_32汇编语言。 内存中的代码基本上试图跳转到一个函数,但我总是得到分段错误。 以下是我的C代码。 #include<stdio.h> #include<stdlib.h> #include<sys/mman.h> void print(); char*p; void out8(char v) { *p = v;

    -1热度

    3回答

    我即将开始对大量代码进行优化,并且我需要确切知道使用模运算符时执行的操作。我一直在寻找相当长的一段时间,但我无法找到任何关于它背后的机器代码。有任何想法吗?

    4热度

    4回答

    来自高层次的编程背景,我有兴趣了解低级编程。我想知道编译器是如何编译的? 看过wiki中的一些文章后,Numerical machine code被认为是最低级的语言,但必须有编译器才能编译此机器码。编译器编写的语言是什么?

    2热度

    2回答

    我在组件 .text .globl _start _start: movl $1, %eax movl $1, %ebx int $0x80 我已组装它有一个简单的程序的程序。我有倾倒它的内容如下 [email protected]:~# objdump -d out out: file format elf32-i386 Disassembly

    0热度

    1回答

    我有以下三个地址码,其中n是一些外部常数: x = 0 i = 0 L: t1 = i * 4 t2 = a[t1] t3 = i * 4 t4 = b[t3] t5 = t2 * t4 x = x + t5 i = i + 1 if i < n goto L 我想就像我可以优化它。这是我到目前为止: x = 0

    2热度

    2回答

    是否有用于处理x86/x64机器码的任何C库?具体来说,我想在运行时修改程序地址空间中的函数。 例如,我有功能foo和bar,对此我有自己的内部运作的来源或知识,但不能重新编译他们所在的库,和我有功能baz我写我自己。现在我希望能够说出如下内容:“在功能foo中,查找对bar的呼叫,并在其前注入baz的说明。”该工具必须相应地调整程序中的所有相关地址。 我知道所有的零碎都存在,例如有工具可以做ho