x86

    0热度

    1回答

    表达的意思是: times 512-($-$$) db 0 我知道什么是美元符号的手段,但我不知道这意味着什么时,它的两倍。 双美元符号是什么意思?

    0热度

    1回答

    我已经创建了一个包含不同功能的程序,具体取决于按键的操作。我的程序在该文件夹内创建一个文件夹,然后创建一个.txt文件。我想显示文件夹中的.txt文件的更新列表,因为我添加了更多并检查它。 但是,当我运行我的程序时,它只显示创建的最新.txt文件。我该如何解决这个问题并显示所有.txt文件的列表? 声明的变量: file_spec db "*.*", 0 DTA db 128h dup(0)

    0热度

    1回答

    0x0 0x6 0x0 0x1 BIG - 00000000 00000110 00000000 00000001 LIT - 00000001 00000000 00000110 00000000 所以我期待0xcfb01420 + 2是为0x6,但事实并非如此。我错过了什么吗? (gdb) p &tx_q_sem->mlock.u.mtxa_owner $41 = (volatil

    5热度

    1回答

    让我们假设一个32位值被写入跨越2页的内存位置。为了说明起见,我们假设2个字节在第一个页面中结束,另外2个字节在第二个页面中结束。第一页是可写的,但第二页是未映射的。整体执行指令会触发页面错误,这很好。 我的问题是:将页面错误触发前或后的值的前2个字节写入内存?换句话说,在故障后(例如,故障处理程序)能够观察到部分写入的代码运行? 让我们假设一个X86环境,因为我怀疑这个行为可能是体系结构,甚至可

    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热度

    1回答

    可以说,%eax有内容0x123和0x123有内容0x987.和地址0xabc有内容0x100。 然后,与movl (%eax), 0xabc, 将不会0x987作为内容0xabc?为什么我们需要另一个注册表来执行此操作?即 movl (%eax), %eax movl %eax, 0xabc 同样,movl 0xabc, (%eax)不会将其移动到0x100的%eax i.e. 0x12

    1热度

    2回答

    Hopper反汇编器如何理解函数名称是什么? 例如,我有一个简单的名为function()的Swift函数,并在使用该函数对可执行文件进行反汇编之后,Hopper告诉我它的名称为__T04file8functionyy。我可以在可执行文件中找到这些符号的位置,但是我找不到它如何将函数的地址与其名称进行映射。

    0热度

    1回答

    我期望SSE比不使用SSE更快。我是否需要添加一些额外的编译器标志?难道我没有看到加速,因为这是整数代码而不是浮点数? 调用/输出 $ make sum2 clang -O3 -msse -msse2 -msse3 -msse4.1 sum2.c ; ./a.out 123 n: 123 SSE Time taken: 0 seconds 124 milliseconds vect

    -1热度

    1回答

    你好,我正在努力解决大学中的一个问题。 我们正在学习x86 asm,到目前为止,我花了很多时间来正确理解代码。 我试图以签名的方式添加+ b -c + d并返回一个64位值(long long) 问题是,代码实际上起作用,我不明白它为什么会这样做。 以下变量声明main.c中作为全局 char op8 = 0; short op16 = 0; int op32a=0,op32b=0; in