Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
如何从内联汇编器调用 Win32 API 函数?
有人可以告诉我这段代码有什么问题吗 我只是从 kernel32 dll 调用 Sleep 函数 怎么了 我使用的是 Visual Studio 2008 任何帮助将不胜感激 非常感谢 asm mov eax 77e2ef66h push 9
c
visualstudio2008
inlineassembly
kernel32
在两个 ASM GCC 内联块之间传播进位位
亲爱的汇编 C 开发人员 问题是 即使它有效 在两个 ASM 块之间传播进位 或任何标志 是现实的还是完全疯狂的 几年前 我开发了一个用于低于 512 位 在编译时 的大型算术的整数库 我当时没有使用 GMP 因为对于这种规模 由于内存分配
c
Assembly
inlineassembly
Clang
强制 GCC 在调用函数之前将参数压入堆栈(使用 PUSH 指令)
我已经开始在 GCC G 下开发一个小型 16 位操作系统 我正在使用 GCC 交叉编译器 它是在 Cygwin 下编译的 我将 asm code16gcc n 作为每个 CPP 文件的第一行 使用 Intel ASM 语法和命令行来编译和
gcc
x86
arguments
inlineassembly
stackmemory
为什么“mov %%rsp, %%rbp”会导致分段错误?
我是内联汇编的新手 我有以下内容C具有内联汇编功能 我只是想看看是否push rbp and mov rsp rbp实际操作正确 我的功能如下 test inlineAssemblyFunction u64 base rsp base1 r
c
segmentationfault
x8664
inlineassembly
自己内核的键盘中断处理程序 (C)
我正在编写一个小型操作系统作为学校作业的一部分 但在获取键盘输入 按一个键 gt 将其显示在屏幕上 时我遇到了困难 我正在使用 osdev org 的 Bare Bones 教程 gcc 交叉编译器 GRUB 引导加载程序 ld 链接器 并
gcc
x86
Kernel
inlineassembly
osdev
当您使用 C++ 中的 asm 代码操作寄存器时,会发生什么情况?
一些代码 int x 1 for int i 1 i lt 10 i x i asm mov eax x 如果这个程序使用eax为了增加价值i 当我操纵时会发生什么eax 编译器会保存之前的寄存器吗 asm在执行 asm 代码后调用并使用它
c
Assembly
inlineassembly
cpuregisters
MASM 中的 _emit 相当于什么
我正在尝试将 Visual Studio 中编写的一些内联汇编代码移植到 MASM64 中 原始代码使用 emit 这是一条伪指令 在当前文本段的当前位置定义一个字节 我如何在 x64 汇编 MASM 中执行相同的操作 你可以只使用db a
Assembly
64bit
inlineassembly
MASM
为什么从 x86_64 汇编函数调用 C abort() 函数会导致分段错误 (SIGSEGV) 而不是中止信号?
考虑该程序 main c include
Linux
gcc
x86
x8664
inlineassembly
在 Dev-C++ 中的 GCC 内联汇编中定义字节(Windows 上 AT&T 语法中的 .ascii)
下面的代码只是在屏幕上显示一个消息框 地址被硬编码以方便 int main asm xorl eax eax n xorl ebx ebx n xorl ecx ecx n xorl edx edx n pushl ecx n 0x0 pu
gcc
Assembly
inlineassembly
devc
att
将CPU寄存器保存到GCC中的变量中
我想获取 EAX EBX ESP EIP 等中的值并将它们保存在 C 变量中 例如 int cEax asm mov cEax eax 你可以用这个 register int eax asm eax register int eax asm
c
gcc
Assembly
x86
inlineassembly
为什么调用 printf 时 EDX 的值会被覆盖?
我写了一个简单的汇编程序 section data str out db d 10 0 section text extern printf extern exit global main main MOV EDX ESP MOV EAX
c
Assembly
nasm
inlineassembly
MSVC 内联汇编中数组的偶数元素求和
我正在尝试在 Assembly 中编写一个函数 该函数将返回数组中偶数元素的总和 这是我的代码 int sum int a int n int S 0 asm mov eax ebp 8 mov edx 0 mov ebx ebp 12 m
Assembly
visualc
x86
inlineassembly
如何在GCC中编写.syntax统一UAL ARMv7内联汇编?
我想编写统一的程序集来摆脱烦人的问题 在我的文字前面 如下所述 ARM 汇编中的立即值是否需要哈希 这是一个最小的非统一代码 include
gcc
arm
inlineassembly
armv7
在 GNU C 内联汇编中使用 LDRD?使用什么限制?
TL DR我在玩 easm 并烧伤了我的手指 我的限制有意义吗 当我玩弄内存时 我想测试在 ARM CPU 皮质 A9 上手动读取一些内存 免责声明 这里的学习目的 当然我同意依赖优化器在 99 999 的情况下都是正确的做法 但我真的很想
Assembly
gcc
arm
inlineassembly
ARM 系统调用作为 C++ 模板
我需要在 newlib 存根中调用一些系统调用 当前的实现使用 C 宏 随着时间的推移 这些宏变得不可读且看起来很糟糕 我讨厌宏 然而 我使用 C 模板的实现仅适用于一个参数 template
c
templates
arm
inlineassembly
systemcalls
“ret”指令访问冲突
我有这个函数 它主要由内联汇编组成 long toarrayl int members asm push esp mov eax members imul eax 4 push eax call malloc mov edx eax mov
c
Assembly
accessviolation
inlineassembly
使用 gcc 中的内联汇编从 stdin 扫描并打印到 stdout
如何在内联汇编 gcc 中读取 stdin 并写入 stdout 就像我们在 NASM 中所做的那样 start mov ecx buffer buffer is a data word initialised 0h in section
c
gcc
nasm
inlineassembly
FLD浮点指令加载常数
根据装配艺术 CH14 死链接 在 archive org 上找不到 14 4 4 1 FLD 指令 fld mem 32 fld mem 64 bx 我的目标是将常数 10 加载到我的 FPU 堆栈中 为什么我不能这样做 asm move
c
Assembly
inlineassembly
FPU
x87
无需内联汇编即可访问标志?
我在 C 中有以下方法 它需要两个 16 位短整型 将两个整数相加 如果设置了进位标志 则结果加 1 对最终结果中的所有位取反 NOT 返回结果 short declspec naked getchecksum short s1 short
c
x86
inlineassembly
carryflag
将寄存器值读入 C 变量 [重复]
这个问题在这里已经有答案了 我记得看到过一种使用扩展 gcc 内联汇编来读取寄存器值并将其存储到 C 变量中的方法 但我一辈子都不记得如何形成 asm 语句 编者注 这种使用本地寄存器asm变量的方法是现在被 GCC 记录为 不支持 它通常
c
gcc
Assembly
inlineassembly
cpuregisters
«
1
2
3
4
5
6
»