x86-64是Intel x86架构的64位扩展
mov&jmp to&jmp back vs call&ret
我正在查看一些汇编代码,我看到了这个:mov r12,_read_loopr jmp _bzero _read_loopr:... _bzero:inc r8 mov byte [r8 + r15],0x0 cmp r8,0xff jle _bzero jmp ...
我正在调试以下程序(这是正确的)。 [OP @ localhost 04] $ cat factorial.s .section .text .globl _start .globl _factorial _start:push $ 4 call factorial add $ ...
执行“movq%rax,(%rdi)”后%rax会发生什么?
我很好奇的是执行代码后%rax中的剩余值。例如,让%rax为0xFFFFFFFFFFFFFFFF我执行了代码。然后是0xFF ... FF还在%rax?而我的最后......
我正在用C语言编写一个用于x86_64 linux的JIT编译器。目前的想法是在可执行存储器的缓冲区中生成一些字节码(例如通过mmap调用获得)并使用函数跳转到它...
据我所知'jmp'使用64位地址作为操作数是不可能的,但我相信使用x64内存位置(从这里JMP r / m64)。但是我怎么能用十六进制写呢?什么的插图......
我想得到这些命令:jl some_label(%rip)#或jl *%rax在我为英特尔x64架构编写的asm程序中。当我尝试编译时,GCC说“jl的操作数类型不匹配”...
如果C文件只有一个函数,为什么pushq和movq仍然存在于开头?
我已经学习了几个月的AT&T程序集,我发现很难在我的.s文件中包含一些重复的指令。特别是main:pushq%rbp ...
我试图在64位Linux上的GCC扩展内联ASM中输出相同的字符串两次。 int main(){const char * test =“test \ n”; asm(“movq%[test],%% rdi \ n”//调试器显示...
研究从yuv到rgb的ffmpeg转换,我遇到了在程序集中实现的等式,yuv2rgb_template.c位于ffmpeg / libswscale / x86中。我想知道如何指令packuswb ...
下面的asm代码是使用gcs -O4 ..在x64 osx上生成的,它对它进行了优化(有关-O4的更多信息,请查看gcc手册)。 (gdb)disas main函数的汇编代码转储...
与此处相同的问题:计算JMP指令的地址如何在64位计算机上使用此代码?应该改变什么? // TODO:64位void Manager :: InjectCode(PBYTE&p,int k,...
是否所有实现AMD64指令集的CPU都具有相同的指令和寄存器?
实现IA-32指令集(即32位x86指令集)的CPU没有相同的指令和寄存器,例如Intel Pentium III具有SSE寄存器......
对于一个项目,我为特定的语言编写了一个编译器。我必须处理异常。我的问题在于汇编代码。我在jmpq指令上遇到分段错误,我不明白为什么。 ...
我正在使用GDB调试Mac OS X 64位应用程序。我看到跳过一大堆代码解决了我所有的问题。但是:如何修补可执行文件以实现跳转?我想要应用程序...
我想将64位相对跳转编码为x64汇编中存储在%rax中的地址。 AFAIK,没有这个的操作码,所以我计算相对地址的相应绝对地址...
我目前正在使用带有SSE-2指令的x86-64程序集编写一些C99标准库字符串函数的高度优化版本,如strlen(),memset()等。到目前为止,我已经设法得到......
我试图通过X86主机中的虚拟化来弄清楚Linux系统中的EPT PTE和主机PTE之间的关系。例如,当管理程序通过提供主机设置EPT条目时...
关于linux x86 64中MSR_GS_BASE的详细信息
我试图弄清楚Linux内核中MACRO当前的细节。当前的最终汇编代码是:movq %% gs:0xb000,%0上面的代码可以工作!但是当我打印%% gs时,它的值为0,所以......
MOVHPD将xmm寄存器的高四字提取到存储器中。 PEXTRQ提取xmm寄存器的高位四字,并将其放入整数寄存器(仅整数)。 SHUFPD洗牌。 ...