Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
__libc_start_main@plt 如何工作?
为了研究目标文件在linux中是如何加载和运行的 我制作了最简单的c代码 文件名为simple c int main 接下来 我创建目标文件并将目标文件另存为文本文件 gcc simple c objdump xD a out gt sim
Linux
gcc
dynamiclinking
x86
ELF
assembly x86 qemu:致命:尝试在 RAM 或 ROM 之外执行代码
我正在开发一个非常基本的 shell 其中当前唯一的命令是 help 如果您输入错误 系统会通知您该命令无法识别 在段和堆栈设置的某个地方 我有一个错误 导致 shell 在我输入任何内容后吐出一些废话 然后完全冻结 我在终端中遇到错误 q
Assembly
operatingsystem
x86
nasm
qemu
在保护模式下读取键盘
我正在尝试制作 PS 2 键盘控制器 但无法正常工作 outb 0x60 0xED outb 0x60 2 Turn on CapsLock LED doesn t works char c 0 while c 1 if inb 0x60
c
x86
osdev
baremetal
protectedmode
为什么 GCC 减去 1 并比较 <= 2?在汇编中使用 2 的幂时 cmp 是否更快?
我正在编写一些代码来将屏幕清除为特定颜色 C 代码 void clear screen unsigned int color void memory int height int width unsigned int pixel unsig
c
Assembly
gcc
x86
x8664
为什么我有 PUSH ecx?
有人可以告诉我这两个的目的是什么吗push ecx下面的说明 我不明白他们到底要做什么 我意识到push epb正在保存堆栈基指针 然后mov epb esp正在将堆栈指针分配给前一个堆栈基指针 int main 01301190 push
Assembly
x86
NDK:libm 静态链接
我在尝试使用最新的 android 9 x86 平台编译源代码时遇到问题 主要问题 为什么是静态库libm a和动态的libm so是不同的 问题是我尝试编译 path to android ndk r8 toolchains x86 4
Android
static
x86
androidndk
libm
mov ah、word_variable 上的“无效指令操作数”以及在 16 位数字上使用 imul
这是我想要实现的目标 a x b x a y b y a z b z 我正在尝试在汇编中创建一个宏来执行上述计算 我在用WORDs 代表我所有的号码 这是我的代码 dotProduct MACRO A X A Y A Z B X B Y B
Assembly
macros
x86
MASM
用汇编语言更改 CS:IP
怎么可以强行改变CS and IP都是汇编语言 ORG指令可用于更改的数量IP 但是你如何改变CS 基本上我想使用汇编来实现多线程 许多论坛 包括堆栈溢出中的一个问题都说这是不可能的 但是即使 C 是由汇编代码制成的 它如何具有多线程选项呢
Assembly
x86
memorysegmentation
如何将以下 NASM 代码转换为 AT&T 语法,以修复“无法处理 jmp 中的非绝对段”错误
我是 AT T 语法新手 我想将以下 NASM 语法代码转换为 AT T 语法只是为了便于理解 我尝试将其转换为 AT T 语法 lgdt gdtpointer jmp gdtcode start gdt quad 0x0000000000
Assembly
x86
nasm
BootLoader
att
“mov eax, [num]”和“mov eax, num”之间的区别
我是一名初学者 正在编写汇编程序 使用以下代码打印从 1 到 9 的数字 section text global start start mov ecx 10 mov eax 1 l1 mov num eax mov eax 4 mov e
Assembly
x86
nasm
32bit
如何使用 SIMD 检查偶数/奇数通道是否在给定范围内?
Given a m128i其中存储 16char是 偶数索引车道指的是even车道 即 0 2 4 14 处的车道 奇数索引车道指的是odd车道 即 1 3 5 15 处的车道 在我的应用程序中 偶数 奇数车道必须在给定范围内 例如 假设e
x86
SIMD
SSE
JNZ 和 CMP 组装说明
如果我错了请纠正我 这是我的理解JNZ and CMP JNZ 跳跃将会发生 如果Z标志不为零 1 CMP 如果两个值相等 则Z标志已设置 1 否则未设置 0 这是我正在看的 Flash 教程 它正在教授一个简单的 CrackMe 的解决方
Assembly
x86
reverseengineering
OllyDbg
cmp
为什么 Evan 的调试器说我要转向 eax 而不是 rax?
我正在将一些值移至 rax 但调试器显示它正在移至 eax 这是怎么回事 是用调试器 nasm 还是我的知识 无论如何 代码当然可以完美运行 我使用的调试器是 Evan s Debugger 简而言之 您和调试器都是正确的 当您将某物移动到
debugging
Assembly
x86
cpuregisters
如何以可跨 Linux、Windows 和 MacOS 移植的方式收集 Python 3 中的当前架构?
我正在尝试找到一种可移植的方式来收集当前的架构 例如x86 64 or AArch64 我将用它来填充一个标志 例如is x86 使用Python 3 它看起来像import platform platform machine 函数是正确的
python
python3x
x86
x8664
ARM64
在 x86 32 位中禁用分页
我试图直接写入物理内存位置 因此我使用汇编函数首先禁用分页 写入值 然后重新启用分页 但由于某种原因 在尝试写入时仍然会触发页面错误价值 据我了解 在x86 32位中 通过翻转cr0中的第32位来打开和关闭分页 所以这是我的汇编函数 mov
Assembly
x86
Paging
virtualmemory
pagefault
使用BIOS int 13h访问不同磁头的扇区
我的磁盘每磁道有 63 个扇区 根据我的观察 我假设 我想使用 int 13h 读取 16 位引导加载程序上的扇区 例如 如果我想读取扇区号 63 我将执行以下操作 mov dl 0x80 Drive number mov dh 0 Thi
Assembly
x86
x8616
BootLoader
osdev
无法调整尺寸指令
我想知道为什么有些汇编指令可以推断 但其他的则不能 例如 在以下程序中我有 globl main main push rbp mov rsp rbp mov 8 8 rbp mov 8 rbp rax pop rbp ret 我收到以下错误
Assembly
x86
gnuassembler
att
为什么每个逻辑 CPU 在多线程情况下都有自己的 CR3 寄存器?
当我们有一个支持某种形式的多线程的 CPU 时 每个逻辑 CPU 都有它自己的一组寄存器 至少 包括 CR3 寄存器 由于我们在执行不同线程时正在处理同一进程的虚拟地址空间 并且永远不会发生上下文切换 切换同一进程的线程时TLB缓存也不会失
Multithreading
x86
CPU
装配冒泡排序交换
我正在尝试在 x86 程序集中进行冒泡排序 是的 它必须是冒泡排序 因为我不关心不同类型排序的速度优化 并且出于某种原因 我的代码不会交换必要的值 这是我的代码 mov eax list store list in eax mov edx
Assembly
x86
bubblesort
如何写入LLDB中的XMM寄存器
我正在尝试使用 LLDB API 从 python 中的寄存器读取和写入值 对于通用寄存器 我一直在使用frame register register name value读取和写入寄存器值 这对我来说很成功 然而 当我接近浮点寄存器时 我
python
x86
x8664
SSE
LLDB
1
2
3
4
5
6
...45
»