ILD

ELF:String table、Symbol table与Relocation
2017-6-17
前面介绍了section header table,通过这个表可以找到所有section的内容。这些内容根据section type和section name解释。同一个section type可能有多个section,因此section name也是section的识别之一,一些special s

ELF:Segments
2017-6-17
1 Segments段并不是目标文件的新内容,段只是程序加载角度的内容块,一个段可以包含多个section,也可以包含头。段通过Program header table索引。通常,可执行文件和共享库目标文件才具有段。2 Program header tableProgram header table

ELF:Intel architecture
2017-12-30
本文描述和Intel架构相关,但是和操作系统无关的信息。既和Intel架构相关又和操作系统相关的部分在后续的章节讲述。1 ELF headere_ident[EI_CLASS]的值为ELFCLASS32,e_ident[EI_DATA]的值为ELFDATA2LSB。e_machine的值为EM_38

ELF:Operating System Specific (SVR4)
2017-12-31
1 Section本章节描述SVR4的section规范。1.1 Section typeSVR4规定了下述类型的Section:SHT_SYMTAB,SHT_DYNSYM。存储符号表,当前一个目标文件每种类型只能有一个section,但是这个限制在将来可能放宽。典型地,SHT_SYMTAB提供静态

i386汇编指令初学
2017-6-28
本篇使用gnu as作为测试工具,使用AT&T语法,在Unix界,AT&T语法占据绝对的地位。但是在Windows,Intel语法占据绝对的地位。1 寄存器 Registers8086和80286是16位CPU,80386是32位CPU,所以现在的32位X86架构可以说是从80386开始的,386的

x86寄存器
2017-6-29
参考http://www.hep.wisc.edu/~pinghc/x86AssmTutorial.htm寄存器总览EAX,EBX,ECX,EDX - "general purpose", more or less interchangeableEBP - used to access dat

i386汇编实战:函数
2017-7-3
1 调用约定调用约定规定了哪些寄存器由调用者保存、哪些寄存器由被调用者恢复、参数如何传递、栈由谁清除等。有很多调用约定如cdecl、fastcall、stdcall等。通常调用约定是Application Binary Interface (ABI) 标准的一部分。在Linux世界里,gcc是事实上

i386汇编实战:系统调用
2017-7-3
1 软件中断 Software Interrupti386系统共有256个中断,中断号0-255。内存中有一块地址存放中断描述符表 Interrupt Descriptor Table (IDT),中断发生时,系统根据中断描述符表跳转到指定的地址执行。如何处理中断那是内核的事情。中断分为硬件中断、软

i386汇编实战:Control flow
2017-7-5
Control flow不知道翻译成中文叫什么,就用Control flow吧。Control flow就是if else, while, for等实现。1 EFLAGSEFLAGS寄存器是非常重要的状态寄存器,算术与比较指令的一些状态存储在EFLAGS中的某些位中,跳转指令依赖于这些位。这是Con

i386汇编实战:函数调用
2017-7-5
通过cc编译c代码来学习,c代码如下:extern int a();int b(){ return a();}编译:cc -m32 -S -O0 call.c b: pushl %ebp movl %esp, %ebp subl $8,

Copyright © linuxdev.cc 2017-2024. Some Rights Reserved.