1、 条件表达式(?:) 表达式1?表达式2:表达式3 条件表达式的构成应该是先判断再选择。但编译器优化后未必是这样。当表达式1为一个常量时,编译器会在编译期间得到答案,将不会有条件表达式存在。 转换方案: ① :表达式2和表达式3都是常量且两者的差值为1; ② :其他 先说3个...
分类:
编程语言 时间:
2015-04-12 14:45:23
阅读次数:
190
1、 自增、自减 很简单,没什么可解释的,注意一下前缀和后缀运算的区别C++源码Debug版Release版#include using namespace std;int main(){ int a, b; cin >> a >> b; //自增 a = ++b + 10; cout using....
分类:
编程语言 时间:
2015-04-12 12:02:51
阅读次数:
197
1、 除法 对计算机而言,整数除法的结果必须是整数。计算机取整数部分的方式有如下几种: ① 向下取整 如:-3.5=>-4;3.5=>3; ② 向上取整 如:-3.5=>-3;3.5=>4; ③ 向零取整 如:-3.5=>-3;3.5=>3; C++和大多数高级语言,对整...
分类:
编程语言 时间:
2015-04-11 17:52:58
阅读次数:
292
1、 加法 加法的几种情况: ① 常量+常量 ② 变量+常量 ③ 变量+变量DebugRelease#include using namespace std;int main(){...........//保存现场和初始化略 int a=0, b=0;008544FE mov d...
分类:
编程语言 时间:
2015-04-09 15:15:59
阅读次数:
214
使用文件:
系统调用
打开 5 打开要访问的文件并且创建指向该文件的句柄。
读取 3 使用文件句柄打开文件
写入 4 使用文件句柄写入
关闭 6 关闭文件并且删除文件句柄
打开:
int open(const char* pathname , int flags , mode_t mode);
eax 5
ebx 包含以空字符结尾的文件名字符串的开始位置的内存地址。
ec...
分类:
其他好文 时间:
2015-04-04 09:21:16
阅读次数:
260
汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。 汇编指令是机器指令的助记符。 寄存器: CPU中可以存储数据的器件,一个CPU中有多个寄存器。 AX BX都是寄存器的代号。 汇编语言由以下三部分组成: 1.汇编指令(机器码的助记符) 2.伪指令(由编译器执行) ...
分类:
其他好文 时间:
2015-03-31 07:53:07
阅读次数:
221
2014年快结束了,新工作很轻松,但总感觉是没有主线,技术上没多大进步,梳理一下思路。 开始学习了两个月左右缓冲区溢出漏洞利用的技术,附带着复习汇编,学习OllyDbg、Immunity Debugger、IDA等调试器的使用,买了《软件调试》和《格蠹汇编》。漏洞利用技术的学习看完了Corelan....
分类:
其他好文 时间:
2014-12-28 00:22:05
阅读次数:
331
基于王爽《汇编语言》第3版1.1机器语言 1.机器语言是机器指令的集合。 2.机器指令是一列二进制数字。 3.CPU(Central Process Unit, 中央处理单元)将机器指令转换成高低电平,使计算机的电子器件受到驱动,进行运算。 4.每一种微处理器都有自己的机器语言。1.2汇编语...
分类:
其他好文 时间:
2014-12-09 15:16:13
阅读次数:
159
1 #include 2 3 int main(void) 4 { 5 int foo = 10, bar = 15; 6 printf("foo=%d, ", foo); 7 printf("bar=%d\n", bar); 8 ...
分类:
其他好文 时间:
2014-11-21 12:09:35
阅读次数:
220
任何程序在运行过程中都需要使用堆栈,操作系统为每一个程序(进程及线程)设置一个堆栈。在使用高级语言编程时,源程序中使用的函数调用、局部变量都要用到堆栈,由编译器来负责生成有关的机器指令。我的理解,堆栈就是维护当前线程中运行状态的一个数据结构,这种状态包括:需要传递的变量,函数的返回地址,局部变量等等。
与堆栈相关的 3 个寄存器是:SS, ESP, EBP。
ESP 寄存器中的内容作为堆栈的当...
分类:
其他好文 时间:
2014-11-17 17:50:33
阅读次数:
293