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,
无c库支持的hello world程序
2017-7-14
libc提供系统调用接口和程序的入口支持等。为了实现一个独立的程序,需要实现入口和系统调用。1 nostd.h先看源代码,nostd.h:123456789101112131415161718192021222324252627282930313233343536373839404142434445
Copyright © linuxdev.cc 2017-2024. Some Rights Reserved.