嵌入在另一个更高语言的源中的程序集,例如嵌入在C或C ++中的x86程序集。
C 程序中的 Asm 块在 Visual Studio 2022 中给出错误 C2400
我正在编写一个包含一些反反汇编技术的 C 程序,特别是我正在实现这个: https://unprotect.it/technique/dynamically-computed-target-address/ 这是我的注意...
我正在尝试将此代码用于 attiny10。在这里,我尝试使用 _delay_loop_2 但它有时不起作用。 #包括 #包括 #define LED_PIN PB0 #定义
GNU 内联 asm:哪些寄存器被 __stdcall 破坏了?
如果我使用 call 指令,通过 GNU 的 C++ 代码中的内联汇编器调用一个我知道使用 __stdcall 约定的函数,我是否必须将任何寄存器列为已损坏? 我没有找到...
我正在尝试使用函数宏读取 csr 寄存器 我有一个结构数组,其中包含 csr 寄存器的名称和地址 typedef 结构 csr_lists { 内部地址; 常量 cahr* 名称; } csr_...
我有一个通用构建的二进制文件,它需要包含一个查找例程,该例程被编译成矢量化指令或基于 cpu 是否支持 avx/avx2。 查找例程...
我需要将一个具有 asm 片段的 C 程序编译为 32 位 PE 文件,asm 代码以这种方式声明: __asm__("jz $ + $13; “ “jnz $ + $7; “ &quo...
Inserting inline assembly code into C function - I/O questions
我正在使用 GNU arm-none-eabi 工具链为我的 Cortex M3 微控制器开发嵌入式 C 应用程序。 我计划采用供应商在我的 C 中实现的汇编子程序
void new2d(int* aInit, int* aResult) { int cyclic[34] = {0}; for (int i = 0; i < 32; i++) { cyclic[i] = aInit[i]; } cyclic[32] = aInit[0]; ...。
这是我的新内核代码,它应该打印a(顺便说一下,之所以叫printstack是因为我试图通过堆栈传递参数,但没有成功): void printstack(char in){ *print ...。
如何在FreeBSD的内联程序中调用gettimeofday系统调用?
我试图在FreeBSD 5.2.1 32-bit中使用syscalls和内联汇编来获取当前时间。我的问题是,我很难将所需的结构作为参数传递给函数,结果出现错误: ...
clang __asm__在case statment中使用标签,得到错误:指令操作数无效。
我正在尝试在C源代码中添加Label(仪器仪表);对汇编有一点经验,comipler是clang;我在CASE语句中的__asm__和Label有一个奇怪的行为!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)。
我目前正试图用Rust(Windows 32-bits)写一个程序,它基本上会从它自己的.text部分提取一些特定的部分机代码。基本上,如果我定义并调用一个函数 ...
如果在ASM模板中没有指定输入和输出操作数,那么提供这些操作数有什么意义呢?
我在u-bootarcharmlibsemihosting.c中发现了以下一段代码,它使用了bkpt和其他指令,并提供了输入和输出操作数,即使它们没有在ASM中指定......
如何找到是哪条指令使我的程序崩溃,出现Illegal Instruction错误?
我在windows上使用Mingw32,试图读取CPU的微码修订版。我得到了一个非法指令的崩溃(通过gdb看到),但我一直无法确定哪条指令是 ...
在x86_64中,我知道mul和div opp代码支持128个整数,把下位64位放在rax中,上位放在rdx寄存器中。我一直在寻找一种内在的方法来实现这个功能。
在x86上实现std::atomic_thread_fence(std::memory_order_seq_cst),而不会产生额外的性能惩罚。
一个后续问题,为什么这个`std::atomic_thread_fence`能用,作为一个虚拟的联锁操作比_mm_mfence要好,而且实现的方法也不少,哪个联锁 ...
我正在为我自己的类C语言(x86-64)制作自己的编译器。但我很困惑,如何编译另一种语言的片段,即x86-64汇编,如:int main() { ...。
x86_64汇编器的gcc错误(操作码0x83 cmp m64 / imm8)
[当我尝试编译int main(void){__asm __(“ cmp $ 0x1,0x555557e20b58”);返回0; }我得到main.cpp:汇编程序消息:main.cpp:6:错误:'cmp'的操作数类型不匹配...
使用__builtin_extract_return_addr()函数查找ret指令的RSP值
我最近一直在尝试使用此处描述的__builtin_extract_return_addr函数(https://gcc.gnu.org/onlinedocs/gcc/Return-Address.html)来获取RSP指针的编码值。我...
D7:使用asm 32位stdcall调用proc后读取var参数
您好,使用下面的代码通过asm调用函数,并在调用后读取结果。很好现在,-如何读取参数会发生变化,最好的问候//推送参数:对于i:= lst.cnt ...