cost 72 ms
学习 x86 和 windows 的 x64 程序集并将它们用作 exe 文件 - Learn both x86 and x64 Assembly for windows and use them as exe files

我想学习如何为windows编写汇编,然后将它们汇编成exe文件供个人使用! 我想知道我可以用于此任务的任何资源我已经尝试使用教程并且它们有效,但我可以重新创建的大部分都是在 64 位程序集中,而我确实找到的 32 位程序集在 Windows 10 上不起作用。这可能是由于我缺乏经验。 我想了解如何 ...

为什么在打印浮点数时需要将相同的值 +4 压入? - Why do I need to push the same value +4 when printing a float?

很长一段时间以来,我一直试图在 FASM 中打印一个浮点值,直到我终于找到了一个解决方案,它起作用了,但是,为什么会这样呢? 在一个 C 程序上,我让 x64dbg 生成的汇编代码是这样的: 我认为事实fld将浮点值加载到 st(0) 中,而fstp将 st(0) 值加载到一个地址上,基本上,非常 ...

任何可用的操作/围栏比发布更弱但仍提供同步语义? - Any operation/fence available weaker than release but still offering synchronize-with semantic?

std::memory_order_release和std::memory_order_acquire操作提供同步语义。 除此之外, std::memory_order_release保证所有加载和存储不能在释放操作之后重新排序。 问题: C++20/23 中是否有任何东西提供相同的同步语义但 ...

为什么 x86 位串操作指令对于 memory 目标很慢? (防弹少年团、比特瑞、比特币) - Why are the x86 bit-string manipulation instructions slow with a memory destination? (BTS, BTR, BTC)

Agner发现,在大多数支持它们的处理器上,应用于 memory 操作数的 x86 位操作指令(btr bts btc,无锁)比其他读-修改-写指令(如 add、xor 等)慢。 为什么是这样? 这些说明似乎很容易实现。 是否因为实际加载的地址与 memory 操作数指定的地址不同,这混淆了一些 ...

如果 `objdump -d --start-address` 从 x86 指令的中间开始打印会发生什么? - What happens if `objdump -d --start-address` starts printing from the middle of an x86 instruction?

...换句话说,x86-64 是否是一个独特的可解码代码,无论我从哪里开始解码,最终总是会产生正确的反汇编代码? 假设这(基本事实)是 ELF 文件的一部分。 第一条指令有六个字节长,从 0x5de5a2 到 0x5de5a7: 如果我执行objdump -d --start-address=0 ...

如何在memory区域和output地址中查找8位值的memory地址? SBC86总成 - How to search for 8-bit value in a memory area and output the memory address? SBC86 Assembly

我必须为大学创建一个程序,用于在 memory 区域 C000H-CFFFH(SBC86 的监控程序)中搜索先前指定的 8 位值。 我们使用 i8086 模拟器。 但是我完全不知道我究竟是如何搜索 memory 区域和 output 找到的 memory 地址的值。 ...

C 程序集:%eax 的返回值超出跳转指令错误:在“:”标记之前应为“)” - C Assembly : Return value from %eax beyond jump instruction error: expected ‘)’ before ‘:’ token

在下面 c function #1 返回值存放在eax寄存器中这在 gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 上编译得很好但是由于错误执行在其他地方抱怨 所以为了让 gcc 可以接受werror我添加了一个堆栈变量作为返回值到 #1 即使在非错误情况下,gc ...

我可以比较两个浮点数而不将它们加载到 x87 堆栈上吗? - Can I compare two floats without loading them on the x87 stack?

对不起,基本问题。 在汇编中比较存储在不同(固定)memory 位置的两个浮点而不将它们加载到堆栈中是否可以接受? 除了 CMP 和 JLE 之外,我还需要使用任何东西吗? 例如,Memory 地址 [A] 当前等于 95,memory 地址 [B] 当前等于 [90]。 如果 [A] 小于或等于 ...

从缓存或 memory 在 CPU 微架构中获取数据时端口是否被阻塞? - Is port blocked when data is fetching from cache or memory in CPU microarchitecture?

Intel Skylake 内核有两个相同的 memory 读端口(端口 2 和 3)和一个写端口(端口 4)。 假设有两条加载指令并行发给端口2和端口3: 当两个数据都可以从 L1 缓存中获取时(大约 ~10ns),端口 2 和 3 是否会被阻塞,直到数据被获取并且加载指令退出? 如果数据在缓 ...

编写一个 x86(32 位)汇编程序,将 1 到 100,000 之间的质数发送到标准 output - Write a x86 (32-bit) assembler program that sends prime numbers from 1 to 100,000 to standard output

我想编写一个 x86(32 位)汇编程序,将 1 到 100,000 之间的质数发送到标准 output。我写了一些代码,但它似乎无法正常工作。 我是汇编语言的新手,所以我不知道该怎么做才能使它正常工作。 也许有人可以修复此代码并告诉我我做错了什么。 ...

将 integer 打印为标准 output 的十六进制汇编程序 - Assembler program that prints an integer as hex to standard output

我必须为 x86 处理器编写一个 nasm(或其他)汇编程序,它在标准 output 上打印一个 32 位十六进制数,例如 printf("%x\n",123456),并使用写入系统调用来展示。 我写了一些代码,但它似乎不起作用。 谁能帮帮我? 我是汇编程序的新手,所以我不知道如何让它正常工作 ...

如何在 64 位进程中使用 ptrace 修改 32 位进程中的寄存器并使其进行系统调用? - How to use ptrace in 64 bit process to modify registers in a 32-bit process and make it do a system-call?

我正在开发一个需要让 32 位进程调用系统调用的程序。 我希望保持我的程序架构独立,但目标始终是 32 位。 要设置寄存器,我将ptrace与PTRACE_SETREGS使用,它将 regs 结构指针作为其数据参数。 x86_64 和 x86 对struct user_regs_struct u ...

自定义结构数组 MASM Windows API - Array of custom Structs MASM Windows API

这是我一直想弄清楚的事情。 我想制作一个具有自定义结构和这些结构数组的 MASM 程序,然后将其保存到文件中。 我找不到任何关于如何/可以如何完成的好信息。 我认为 resb 半指令可能会有所帮助。 无论如何,这就是我到目前为止所做的,但显然遇到了麻烦。 基本上从长远来看,我想制作一个简单的类似 ...

LEA 指令可以模仿每条 MOV 指令吗? - Can the LEA instruction mimic every MOV instruction?

最近遇到了M/o/Vfuscator 一个完整的单指令 C 编译器,它将程序编译成“mov”指令,并且只编译成“mov”指令。 算术、比较、跳转、function 调用,以及程序需要的所有其他内容,都通过 mov 操作执行; 没有自修改代码,没有传输触发的计算,也没有其他形式的非移动作弊。 问题我 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM