随笔分类 - C和汇编
摘要:说说自己的一点理解,有不对的地方还希望大佬们多多指正。 CPU是怎么取数据的? CPU是控制计算机运作的核心部件,但是想让一个计算机工作必须要向他提供指令和数据,指令和数据是存放在存储器中的,也就是我们平时所说的内存。 存储器划分成许多存储单元,每个存储单元都有一个编号,也就是地址,当CPU想要访问
阅读全文
摘要:声明 本篇文章是在学习王爽老师的汇编语言第三版时写的笔记,并不是很全面。 什么是汇编语言? 说到汇编我们先来说一下机器语言,机器语言是机器指令的集合,机器指令就是一台机器可以正确执行的命令,在计算机中就是一列二进制数字,计算机将其转变为一系列高低电平使计算机的电子器件受到驱动进行运算,但是一列二进制
阅读全文
摘要:什么是字节对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 为什么要字节对齐? 字节是否
阅读全文
摘要:通常情况下在C语言中我们定义一个大小为5的数组是这样的: int arr[5] = {1,2,3,4,5}; 1,2,3,4,5这五个数字对应的下标是0,1,2,3,4,当我们想访问数组中第一个数字时,通常会使用arr[0]的形式去访问,但是,如果我们使用arr[5]=6来对超过数组大小的地方进行赋
阅读全文
摘要:实验环境:WIN7虚拟机 软件:VC6 首先在VC6里面写一个空函数Fun(); F7编译运行一下,没有出错,接着在函数处使用F9下断点,使程序运行到Fun函数时停下。 接着F5开始运行这个程序 程序停在了Fun函数处,反汇编进去进行逆向分析 可以看到程序停在Fun函数的入口处,这里的call就是F
阅读全文