美文网首页
01.汇编学习体会与心得

01.汇编学习体会与心得

作者: 秦砖 | 来源:发表于2016-07-26 16:38 被阅读357次

为了深入学习逆向工程,硬着头皮看起了汇编语言的相关书籍。先是在网上零星的查找相关资料与各种汇编命令的含义。效果就是基本看了就忘,忘了再查。然后从网上下载了一本叫《汇编语言》的书籍,还是比较适合入门的。竟然还有习题与作业,这本书大致都是在早晨起床的半个小时到一个小时之内的时间里阅读,感觉有点回到学生时代了。书翻了一半才感觉到一丝不对劲,书中所讲解到的寄存器全是ax、bx、cx、dx,与我能接触到的汇编代码里用的R0、R1、R2、R3名称完全不一致。这时我才意思到这是一本针对windows平台的书籍,而移动端毫无疑问是ARM平台。真是欲苦无泪啊,好在总体思想是相通的。自己约的炮,含着泪也要打完,先看完这本书再说吧。下面就汇编中数据的存贮说一下自己的学习心得。

以我现在的知识范围来说,汇编中数据存贮主要有寄存器、内存、栈三种形式。数据在这三种方式之间流转传递,通过CPU的运算,达成最终的计算成果并展示给用户。

寄存器是隶属于CPU的存贮结构,可以分为普通寄存器、段寄存器、栈地址寄存器等几种形式。是CPU运算时操作最频繁、最快速的一种方式。普通寄存器可以简单类比为C语言中的变量,用于暂时存储计算过程中需要短暂保存数据。段寄存器主要用来指示下一个要执行的指令地址,有段地址寄存器与偏移地址寄存器,二者通过算法段地址*16+偏移地址共同决定下一条指令的地址。因此汇编中的所有跳转指令应该都是通过改变这两个寄存器的值来决定程序的跳转行为的。栈地址寄存器的主要用来做堆栈操作,同段寄存器类似,栈寄存器也分成基址寄存器与偏移寄存器两种,后面讲堆栈时再详细说明。

内存是程序运行过程中最大的存在结构,对一个程序来说,内存是由操作系统随机分配的,因此它的起始地址是随机分配的,但内存的大小却是由程序自身决定的。因为程序要运行起来,必须由操作系统将其可执行的二进制文件整体加载到内存中。可执行的二进制文件中包含了程序的代码段、数据段等。而上面的段寄存器就是定位这些内存的主要方式,通过段寄存器,CPU可以将使用普通寄存器读取或者改变内存中的数据。

栈实质上也是内存的一种,但与内存不同的是,栈是FILO的,而内存是可以随机读写的。当然同内存一样,栈也是由操作系统生成的。栈主要用于函数调用或返回时保存环境。

关于汇编后续希望能同样保持一周一更的频率,希望能尽快的融会贯通,不在为ida中乱其八遭的汇编代码而头大。

相关文章

  • 01.汇编学习体会与心得

    为了深入学习逆向工程,硬着头皮看起了汇编语言的相关书籍。先是在网上零星的查找相关资料与各种汇编命令的含义。效果就是...

  • lab1 二进制炸弹

    汇编与反汇编 汇编与反汇编的区别 phase_1 比较字符串是否相同 二进制炸弹 常见汇编指令详解 AT&T 格式...

  • 读书心得汇编!

    1.宇宙初创之时,为人类设计的规则,就是让人们在威胁中战战兢兢的生存。 人类,因此也就有了天生的恐惧感和沮丧感。 ...

  • 8086汇编基础学习课件

    一、汇编与高级语言对比 1 区别 汇编语言与机器语言一一对应,每一条机器指令都有与之对应的汇编指令 汇编语言可以通...

  • 且行且感悟,孤胆加并肩

    昨晚,弘毅乐学书院“云例会”上,与同道们热烈地的分享学习体会、交流心得。轮到我发言,我说了自己积蓄于心的许久的一个...

  • 汇编语言学习笔记(一)简介

    一、汇编语言的发展 汇编语言与机器语言 一一对应 ,每一条机器指令都有与之对应的汇编指令. 汇编语言可以通过编译得...

  • 读书心得汇编(2)

    1.《做自己》作者:鬼脚七〔原文〕生活就是这样,充满了很多随意性。当一些事情在我们意料之外出现的时候,我们可以试着...

  • 读书心得汇编(3)

    1.《小学问:解决你的人生七种焦虑》马东团队出品,原文:德国哲学家哈贝马斯在《公共领域的结构转型》里的说法,沙龙看...

  • 内联汇编

    内联汇编是指在 C/C++ 代码中嵌入的汇编代码,与全部是汇编的汇编源文件不同,它们被嵌入到 C/C++ 的大环境...

  • 1、语言与机器

    计算机的本质: 语言与机器 1、汇编语言与机器语言一一对应,每一条机器指令都有与之对应的汇编语言.2、汇编语言可以...

网友评论

      本文标题:01.汇编学习体会与心得

      本文链接:https://www.haomeiwen.com/subject/udgnjttx.html