分类 汇编 中的文章

C语言常用函数

sqrt 求给定值的平方根 sqrt() 用来求给定值的平方根,其原型为: double sqrt(double x); 【参数】x 为要计算平方根的值。 如果 x < 0,将会导致 domain error 错误,并把全局变量 errno 的值为设……

阅读全文

C语言4 -C语言整数和浮点数

C语言数据类型 基本类型 整数类型 char、short、int、long char 8BIT 1字节 0~0xFF short 16BIT 2字节 0~0xFFFF int 32BIT 4字节 0~0xFFFFFFFF long 32BIT 4字节 0~0xFFFFFFFF 特别说明: int 在16位计算……

阅读全文

C语言5 -字符和字符串

int x = 123; //补码 int float f = 123.4F; //IEEE编码 int i = "A"; //神马情况??? 我们在代码中写入 int i = "A"; 反编译后汇编就编程了 mov dword ptr ss:[esp-4],0x41 为什么会变成41呢?……

阅读全文

计算机中的运算

计算机只认识0和1,计算机能做的运算归根结底也就是直接对0和1做运算(通常称为 位运算) 与运算 两个位都为1时,结果为1 and(&) 或运算 只要有一个为1 就……

阅读全文

进制和内存

数据宽度 因为计算机受硬件制约,数据都是有长度限制的(数据宽度),超过最多宽度的数据会被丢弃 计算机中常见的数据宽度: 位(BIT) -> 一个0或1 字……

阅读全文

9.汇编-JCC

之前可以修改EIP寄存器的指令 JMP,CALL,RETN 所有JCC指令的动作->根据标志寄存器修改EIP的值 标志寄存器 EFLAGS CF(bit 0)[Carry flag] C位 若算……

阅读全文

8. 汇编-ESP寻址 EBP寻址

寄存器传参和堆栈传参 寄存器传参 MOV ECX,1 MOV EBX,2 CALL XX MOV EAX,ECX ADD EAX,EBX RETN 堆栈传参 –ESP寻址 PUSH 1 PUSH 2 CALL XXX MOV EAX,DWORD PTR SS:[ESP+8] //当内存中括号中包含ESP或者EBP的话 用SS……

阅读全文

7.汇编-汇编中的函数

什么是函数 函数就是一系列指令的几个,为了完成某个会重复使用的特定功能 函数调用 用JMP来执行函数 用CALL来执行函数 函数的参数和返回值 通常情况……

阅读全文

6.汇编-修改EIP的指令

EIP寄存器 EIP寄存器表示CPU下次执行的位置 JMP指令 JMP指令相当于给EIP寄存器赋值 JMP后面只能是32位的 指令格式: MPV EIP,寄存……

阅读全文

5.汇编-堆栈相关指令

什么是堆栈 程序启动的时候操作系统会给每个程序一块虚拟的4G内存当程序需要使用的时候必须要和操作系统申请内存 堆栈是程序的心脏,程序中需要用到的……

阅读全文