x86 相关问题

x86是一个源自Intel 8086 CPU的架构。 x86系列包括32位IA-32和64位x86-64架构,以及传统的16位架构。关于后者的问题应该标记为[x86-16]和/或[emu8086]。如果您的问题特定于64位x86-64,请使用[x86-64]标记。对于x86 FPU,请使用标记[x87]。对于SSE1 / 2/3/4 / AVX *,也可以使用[sse]和[avx] / [avx2] / [avx512]中的任何一个

为什么汇编程序员想要从这个位置减去ebp而不是esp?

关于在x86汇编语言中设置堆栈帧的ebp和esp的使用,我有点混淆。在下面的代码中:section。。code'代码可读的可执行文件; ...

回答 2 投票 1

在发布与调试模式下生成本地堆栈变量的代码

作为我在Rust中操作系统的一部分,我有以下系统调用入口点:#[no_mangle]#[naked]#[inline(never)] unsafe extern“C”fn syscall_handler(){//切换到内核堆栈专用...

回答 1 投票 1

找不到错误!!尝试循环遍历字符串并使用x86汇编语言将小写字母更改为大写字母

section .data msg db“x和y的和是”;字符串部分.text global _start _start:Change_letter:mov ECX,-1; set counter mov ESI,[msg];将字符串地址移动到ESI mov Eax,32; ...

回答 1 投票 -4

装配检查数字是否均匀

我有编写汇编代码的功课,用于检查数字是奇数还是偶数。我有这段代码code_seg SEGMENT ASSUME cs:code_seg,ds:data_seg; mov ax,11;试验斧,1;结束:jmp结束; ...

回答 3 投票 2

在C ++内联asm中使用基指针寄存器

我希望能够在内联asm中使用基址指针寄存器(%rbp)。这样的玩具示例如下:void Foo(int&x){asm volatile(“pushq %% rbp;”//'prologue'...

回答 2 投票 12

ResourceEntries资源表的RVA在复制到不同的映像/ PE时需要重定位吗?

我已经成功地构建了一个基本的JAVA反汇编程序,仅仅因为已经构建的开源代码(pecoff4j及其分支)尽管非常出色但没有帮助。我已经设法解析了所有......

回答 1 投票 2

MUL指令将32位组装成64位[重复]

使用MUL指令将位于存储器中的两个无符号32位操作数P和Q相乘,并将结果存入64位存储器位置W.这是不可能的,对吧?我试过:mov eax,dword [...

回答 1 投票 -3

使用LD_PRELOAD指定多个文件

我知道如何用LD_PRELOAD覆盖一个库,例如,如下所示。 LD_PRELOAD =。/ getpid.so ./testpid现在我的问题是如何覆盖多个文件。说我想要覆盖两个getpid ...

回答 2 投票 39

内联程序集返回:在创建共享对象时,不能使用针对未定义符号的重定位R_X86_64_32S [重复]

我正在研究Xeno Kovah在中级装配第18卷中的例子。他正在使用Visual Studio和Intel Assembly,内联。我已经尝试将其改编为GCC,如下所示。我用-masm =编译...

回答 1 投票 1

cmp后汇编x86调用

我有以下代码来比较数字并增加变量如果为true或false failcheck1:mov eax,val1 add ebx,4 cmp eax,40 jl failinc1 ...

回答 2 投票 1

使用GDB for NASM程序集中断本地标签

我想使用GDB打破NASM汇编代码中的本地标签。发出以下命令将产生输出:(gdb)break * start.label1 + 217尝试提取值的组件...

回答 1 投票 2

在单CPU指令中可以在0和1之间翻转位/整数/布尔值的任何可能代码

单个x86指令可以在“0”和“1”之间切换布尔值吗?我想到了以下方法,但都导致了两个指令与-cc标志的gcc。 status =!状态; status = 1 - 状态; ...

回答 3 投票 1

如何在16位模式下使用GDB?

我有以下代码,我试图实现一个使用BIOS函数打印字符串的函数:int printString(char * string){int i = 0; while(*(string + i)!='\ 0'){...

回答 2 投票 4

装配ADC(随附进位)到C ++

有一个汇编指令ADC。我发现这意味着“随身携带”。但我不知道这意味着什么。或者如何用C ++编写这个指令。我知道它与ADD不同。所以......

回答 6 投票 15

从编译器asm输出反向设计数组维度/结构布局?

在此代码中,A和B是使用#define定义的常量。 A和B的值是多少? typedef struct {int x [A] [B];长y; } str1; typedef struct {char array [B]; int t; ...

回答 1 投票 2

为什么va_arg()会对x86_64和arm产生不同的影响?

代码:#include #包括 #包括 typedef unsigned int uint32_t; float average(int n_values,...){va_list var_arg; int count; ...

回答 2 投票 0

需要从MASM转换到NASM

附加文件:文件dosbox_003.png(5.722 KB)编写一个NASM,它将:在一行显示您的名字。 (使用int 21h,函数9.回车符和换行符是0Dh和0Ah,...

回答 1 投票 -4

Linux上的程序集:程序集的意外行为[重复]

运行下面的代码生成一个文件,欢迎使用jj Shashwat作为内容。我没有得到的是为什么它在文件的末尾写Shashwat,Shashwat是一个完全不同的变量。 ...

回答 1 投票 2

如何在画面上打印SVGA信息?

我是装配和图形的完整初学者,任何帮助将不胜感激。我得到了svga信息,但是当我打印它时,它不会打印任何东西。如果有人能解释为什么那会很棒。这里 ...

回答 2 投票 3

如何在x86程序集中正确索引数组

我试图确保我理解SI和DI寄存器。我在汇编语言方面的背景仅限于6502,所以请耐心等待。我有一个快速的例子,说明我将如何...

回答 4 投票 3

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