Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
如何减轻 Intel jcc 勘误表对 gcc 的影响?
如果我有一个芯片受英特尔 jcc 勘误表 https stackoverflow com questions 61016077 32 byte aligned routine does not fit the uops cache 6101
gcc
x86
intel
gnuassembler
compilerflags
GNU Gas 中的 .zero 是什么?
在以下编译器输出中 a long 4 b byte 99 x zero 4 c byte 12 f zero 4 什么是 zero指令是什么意思 好像是唯一一个没被收录的gas directives https ftp gnu org ol
Assembly
gnuassembler
在汇编代码中调用 C 函数 (gas)
我找到了一个例子并正在对其进行编辑以用于气体 extern printf global start data hello db Hello 0xa 0 text start mov rdi hello mov rax 0 call prin
Assembly
x8664
gnuassembler
GNU 工具链如何决定使用近跳转指令与短跳转指令?
我有一些代码gcc 4 8 5 如果重要的话 在两台不同的机器上编译成几乎相同的二进制文件 除了一个地方 其中一台机器上的工具链中的某些东西决定使用 近 JE指令 而另一台机器上的工具链决定使用 简短 JE 指令 41e274 85 ed
c
gcc
Optimization
x86
gnuassembler
从 Windows 移植到 Linux。汇编命令翻译
我最近开始学习从 Windows 到 Linux 的移植 我一直在将程序从 Intel 语法翻译为 AT T 语法 并将其从 x32 转换为 x64 由于我对汇编程序特别是 AT T 还很陌生 所以我在移植时遇到了一些麻烦 只是提一下 我故
Assembly
systemcalls
gnuassembler
att
GCC 汇编优化 - 为什么它们是等价的?
我正在尝试在初级水平上学习汇编是如何工作的 所以我一直在玩 Sgcc 编译的输出 我编写了一个简单的程序 它定义两个字节并返回它们的总和 整个程序如下 int main void char A 5 char B 10 return A B
c
gcc
Assembly
x8664
gnuassembler
气体中断
我正在尝试将我的简单程序从 Intel 语法转换为 AT T 用 GAS 编译 我已经成功转换了应用程序的很大一部分 但仍然收到错误int 中断 我的功能是这样的 printf mov 0x0e ah mov 0x07 bl nextcha
Assembly
gnuassembler
intelsyntax
如何在 MacOS 上正确使用“write”系统调用打印到标准输出?
我看过类似的问题 但似乎找不到我的代码有什么问题 我正在尝试在 MacOS 上进行 write 系统调用以将字符串打印到标准输出 我能够做到printf完美 并且熟悉在 x64 汇编中调用其他函数 然而 这是我第一次尝试syscall 我正
MacOS
Assembly
x8664
systemcalls
gnuassembler
.-main 表达式的含义
这个表达的意思是什么 main 在以下情况下 size main main 这里 点 意思是 当前位置 Then main将是到 main 开始的距离 如果放在 main 的末尾 它也将是size主要的
Assembly
gnuassembler
.asciz 和 .string 汇编器指令之间有什么区别?
我知道 ascii指令不会在字符串末尾放置空字符 因为 asciz指令就是用于此目的 不过 我不知道是否 string指令在字符串末尾放置一个空字符 如果它确实附加了空字符 那么两者之间有什么区别 asciz和 string指令 对我来说
gcc
Assembly
x86
directive
gnuassembler
x86_64 汇编 Linux 系统调用混乱
我目前正在 Linux 上学习汇编语言 我一直在使用 Programming From the Ground Up 一书 所有示例都是 32 位的 我的操作系统是 64 位 并且我一直尝试在 64 位中完成所有示例 但是我遇到了麻烦 sec
Linux
Assembly
x8664
systemcalls
gnuassembler
如何配置gcc默认使用-no-pie?
我想在Linux上编译以下程序 global start text start mov 1 rax mov 1 rdi mov msg rsi mov 13 rdx syscall mov 60 rax xor rdi rdi syscal
gcc
configuration
ld
gnuassembler
positionindependentcode
混合 C 和汇编。 64 位 Linux 上的“Hello World”
基于此tutorial https pl wikibooks org wiki C C5 81 C4 85czenie z innymi j C4 99zykami 我正在尝试写Hello World到 64 位 Linux 上的控制台 编
c
Assembly
x8664
gnuassembler
在 GNU 汇编器中处理或记住 cmp 的向后参数的好方法是什么?
以下是一些采用 Intel 语法的汇编代码 Jump to done if rsi gt rax cmp rsi rax jae done 这对我的大脑来说是有道理的 如果 rsi 高于或等于 rax 你就会跳 匹配中参数的顺序cmp操作说
Assembly
x86
GNU
gnuassembler
为什么 GCC 发出“lea”而不是“sub”来进行减法?
我正在查看一些通过反汇编一些 C 程序生成的程序集 我对经常重复看到的单个优化感到困惑 当我没有对 GCC 编译器进行优化时 使用subl减法指令 但是当我打开优化时 O3准确地说 编译器使用leal指令而不是减法 示例如下 没有优化 83
gcc
Assembly
x86
compileroptimization
gnuassembler
系统调用后 Gnu 汇编器 .data 节值损坏
我有以下代码 data result byte 1 lcomm input 1 lcomm cha 2 text some other code syscalls 起初一切都很好 当调用系统调用 例如读取 时 标签 结果 处的值更改为某个随
Linux
Assembly
x86
gnuassembler
使用 GNU 汇编的主引导记录:平面二进制输出中的额外字节
我尝试编译以下简单的 MBR code16 globl start text start end jmp end Don t bother with 0xAA55 yet 我运行以下命令 gt as 32 o boot o boot s g
gnuassembler
MBR
如何使用 AVR 的 gnu 汇编器相对于 PC 跳转?
我有一个使用 avr objcopy 反汇编的二进制文件 中断向量表如下所示 00000000 VECTOR TABLE 0 13 c0 rjmp 38 0x28 RESET 2 b8 c1 rjmp 880 0x374 INT0 4 fd
Assembly
AVR
disassembly
gnuassembler
relativeaddressing
GAS 汇编器不使用 2 字节相对 JMP 位移编码(仅 1 字节或 4 字节)
我正在尝试为不允许 0x00 字节的 CTF 挑战编写 shellcode 它将被解释为终止符 由于挑战的限制 我必须这样做 shellcode bulk 0x514 sizeof shellcode bulk filler bytes f
Assembly
x86
gnuassembler
Shellcode
machinecode
GNU GAS:标签没有相对引用
我正在写一个小引导扇区用于学习目的 这是boot S code16 text movw 0xB800 ax 0xB000 is the text screen video memory movw ax es set it as the es
Assembly
Linker
nasm
Boot
gnuassembler
«
1
2
3
»