x86-64 相关问题

x86-64是Intel x86架构的64位扩展

使用带有对齐内存的movapd崩溃

我在Windows上使用64位NASM为malloc分配了一块内存。当我使用movapd(移动两个对齐的打包双精度浮点值)时,我的程序崩溃,但我可以使用...

回答 1 投票 0

来自CS的Windows x64上的不同asm:APP x86-64用于交换long的Linux示例函数

我正在阅读CS:APP第3版(第3章。图3.7 GAS汇编代码)长期交换(长* xp,长y){long x = * xp; * xp = y;返回x; } exchange:movq(%rdi),%r ax movq%rsi,(%rdi)...

回答 1 投票 0

X86-64传递float和int作为参数

将float作为第一个参数传递给函数时,%xmm0寄存器被设置。如果我们想要将整数作为函数中的第二个参数传递,该怎么办? %rdi或%rsi中的哪一个获得...

回答 1 投票 0

如何将C库函数加载到汇编中,并在另一个C或汇编项目中使用汇编库函数

目前我正在构建一个foo.h和foo.c:$ clang -I。 -dynamiclib \ -undefined dynamic_lookup \ -o foo.dylib foo.c我可以在其他C库中使用它:clang -I。 -...

回答 1 投票 2

如何在x86程序集中获取长字符串的长度以在断言上打印

我正在尝试构建一个将文件读入内存的x86程序。它使用了一些不同的系统调用,以及内存等等。那里有很多要弄清楚。为了简化调试和......

回答 1 投票 1

如何在Mac上的x86程序集(NASM)中打印有符号整数

我在x86程序集中找到了无符号整数转换的实现,我尝试将其插入但是对程序集是新的并且还没有调试环境,这很难理解......

回答 1 投票 0

如果在x86程序集中有任何暂停/休眠或事件

我想知道在x86-64中的汇编级别是否有任何允许你休眠/等待的东西,这样在等待完成之前就不会运行任何指令。我见过WAIT和PAUSE指令,......

回答 2 投票 1

优化处理标签(空结构)函数参数

在某些情况下,我们使用标签来区分功能。标记通常是一个空结构:struct Tag {};假设我有一个使用这个标签的函数:void func(Tag,int a); ...

回答 1 投票 4

如何从Mac(NASM)上的x86-64程序集将结构传递给C函数

从这里:nanosleep((const struct timespec []){{0,500000000L}},NULL);它传递一个结构。我不知道如何通过寄存器将结构传递给syscall或库函数。想知道是否可以......

回答 2 投票 3

在汇编中使用printf会导致空输出

我尝试从我的汇编程序代码中使用printf,这是一个最小的例子,它应该只打印hello到stdout:。section .rodata hello:.ascii“hello \ n \ 0”.section .text .globl _start ...

回答 2 投票 2

为什么clang用-O0生成效率低的asm(对于这个简单的浮点和)?

我在llvm clang Apple LLVM版本8.0.0(clang-800.0.42.1)上反汇编代码:int main(){float a = 0.151234;浮动b = 0.2; float c = a + b; printf(“%f”,c);我编译没有......

回答 1 投票 1

为什么rbp和rsp称为通用寄存器?

根据英特尔在x64中,以下寄存器称为通用寄存器(RAX,RBX,RCX,RDX,RBP,RSI,RDI,RSP和R8-R15)https://software.intel.com/en-us/articles/引进至64 -...

回答 2 投票 18

测试所有相邻的真实位

我通过遍历树来构建霍夫曼前缀代码LUT。我正在使用寄存器来跟踪当前前缀。我退出解析树的算法的条件使用...

回答 2 投票 2

如何使用NASM for x86-64bit读取和写入文件

我有一个64位Linux系统的NASM程序,它与标准I / O设备一起工作,它看起来像这样:section .data prompt db“输入你的文字:”,10长度等于$ - 提示......

回答 1 投票 1


是否保存了rdi和rsi调用者或被调用者保存的寄存器?

根据维基百科x86调用约定,它表示对于Microsoft x64调用约定:寄存器RBX,RBP,RDI,RSI,RSP,R12,R13,R14和R15被认为是非易失性的(callee -...

回答 1 投票 0

如何以编程方式禁用不可屏蔽中断?

我已经读过,为了根据英特尔的系统编程指南(第3卷第9.9章)暂时关闭分页,我应该在做其他事情之前禁用中断。我可以轻松禁用......

回答 2 投票 4

我可以在Windows 7中禁用看门狗定时器吗?

我正在尝试禁用所有中断,包括NMI在处理器中的单个内核上,并将该内核置于无限循环中,并使用JMP指令作为目标(字节码0xEBFE)我尝试使用...

回答 1 投票 -1

等待按键组装NASM,Linux

我正在使用x86-64的Assembly中的Hello World。我已设法创建一个按下Enter键时完成的,但是我必须在按下任意键时完成它。这是...的代码

回答 2 投票 1

了解分支预测效率

我试着测量分支预测成本,我创建了一个小程序。它在堆栈上创建一个小缓冲区,填充随机0/1。我可以用N设置缓冲区的大小。代码重复导致......

回答 1 投票 1

© www.soinside.com 2019 - 2024. All rights reserved.