汇编快速入门1

Posted 歇马

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编快速入门1相关的知识,希望对你有一定的参考价值。

From Codes to Executables

image

编译

gcc file.c-o exe_file –m32生成可执行文件

objdump –d –M intel  file              //-d 反汇编

image这两条必备

image函数的返回结果放在eax中,相当于return 0;

804841f:    68 c0 84 04 08           push   0x80484c0
8048424:    e8 b7 fe ff ff           call   80482e0   <puts@plt>

 

主要的是这两句话

puts 就是printf

                

类型

Byte

short

2

int

4

long

4

char

1

image定义一个char类型的变量。

gcc bin1.c -o bin1 –m32

objdump -d -M intel ./bin1

image核心就是这两行

0x41 =‘A’

EBP栈底 栈底-1字节,分配一个字节的空间。

image一看到这句就代表x=0xb x=11 给程序中的一个变量赋值

DWORD 双字,四个字节byte

WORD 单字,两个字节

image

int a=11;int b=22;int c=33;


浮点数在存储时涉及到整数部分和小数部分

double a=1.234;

image

QWORD

fld //f load

fstp //

一看就是 处理浮点数

。。。丢进IDA

双击main函数 这个db代表double

image双击这个地址

image进去 dq 1.234数据 。rodata 只读段

全局变量放在BSS段或者data段

局部变量放在堆栈中

从数据段中取了一个数付给eax

丢进IDA分析

以上是关于汇编快速入门1的主要内容,如果未能解决你的问题,请参考以下文章

GNU ARM汇编快速入门

二进制分析实战:x86汇编快速入门

硬核二进制安全:汇编语言快速入门底层语言基础

[培训-DSP快速入门-7]:C54x DSP开发环境与第一个汇编语言程序

[培训-DSP快速入门-8]:C54x DSP汇编语言之寻址方式

RT-Thread快速入门-内核移植