x86

    1热度

    1回答

    我已经开始学习NASM汇编器& RE。我已经得到了第一个问题是下一个(简称): 使用objconv实用我不能恢复反编译的程序。 我的简单的应用程序: #include <stdio.h> char* msg = "Hello World!"; int main(void) { printf("%s\r\n", msg); return 0; } 1)。第一步骤中,

    2热度

    1回答

    对于娱乐,我正在学习GNU扩展程序集,使用带有32位Linux目标的x86的AT & T语法。我刚刚花了最后三个小时编码两个可能的解决方案,以交换两个整数变量a和b的值,我的解决方案都不能完全解决我的问题。首先,让我们来看看我的TODO障碍在一些细节: int main() { int a = 2, b = 1; printf("a is %d, b is %d\n", a,

    3热度

    1回答

    这是我的汇编程序add.s .globl add add: movl 4(%esp), %eax movl 8(%esp), %ebx addl %ebx, %eax ret 这是我的C程序。我正试图从C程序中调用汇编程序。 #include <stdio.h> int add(int a, int b); int main() {

    -1热度

    1回答

    我在x64上使用C++多线程。我想更好地理解数据总线。我想知道如果我尝试从2个线程设置变量而没有任何防范(无互斥锁,CV,信号量和无原子)会发生什么。数据总线依赖于什么? 例如,如果我有变量: int32_t i; 如果我设置在不同的线程变量: 线程1: i =0x11223344; 线程2: i =0x44332211; 正如我知道针对x64数据总线是64位。所以变量i可以设置为1条

    0热度

    1回答

    我在学习汇编,它在某种程度上是有意义的,但我有一个问题。我有这个源文件hello.sfml: ; nasm -felf64 hello.asml && ld hello.o global _start section .text _start: ; write(1, message, 13) mov rax, 1 ; syscall 1 is w

    3热度

    1回答

    多少的性能提升,如果有的话,可以从一个最近高端的Intel CPU重新排序的x64(x86-64的)指令得到。在极度危急的情况下值得一提吗? 我也想知道关于通过改变寄存器的使用取得的成果的可能性/使用附加寄存器(如果免费),以允许在某些情况下,奇较长距离的代码移动?

    0热度

    2回答

    Employee STRUCT IdNum BYTE "000000000" ; 9 LastName BYTE 30 DUP(0) ; 30 ALIGN WORD ; 1 byte added Years WORD 30 ; 2 ALIGN DWORD ; 2 byte added SalaryHistory DWORD 0,0,0,

    2热度

    1回答

    我尝试添加几个像素在一起,以便做罗嗦滤波器NASM。我已经设法添加三个像素,其值为00 + d3 + d8(0 + 211 + 216)。当我尝试添加一个像素,值为0时,程序无法打印变量blurr的值。 更新: 似乎增加了可变总和产品可在完成三次,因为如果我注释掉另一个add,该值将在我的输出文件打印。 blurrTopRow: ;from 0 - 251 there will be n

    3热度

    1回答

    我以汇编(x86,linux)开始,只是为了好玩。这是我的第一个小程序,它只是检查,如果我通过一个参数通过命令行,如果没有它打印一个消息,它后退出: section .text global _start _start: pop ebx ;argc dec ebx test ebx,1 jne print_string exit:

    -1热度

    1回答

    我想编译一个简单的C程序(Win7 32bit,Mingw32 Shell和GCC 5.3.0)。 C代码是这样的: #include <stdio.h> #include <stdlib.h> #define _set_tssldt_desc(n,addr,type) \ __asm__ ("movw $104,%1\n\t" \ :\ :"a" (addr),\