程序源码如下:

#include <stdio.h>int main(){const char c = 'A';char str[] = "Hello World!";str[0] = c;str[1] = 'B';str[2] = 'C';str[3] = 'D';str[4] = 'E';char *p_str = new char[5];*(p_str) = 'A';*(p_str + 1) = 'B';*(p_str + 2) = 'C';return 0;
}

其中对应的汇编代码如下:

从上面的汇编代码可以看到如下几点:
1.const char c='A';
其实就是把一个byte放入了ptr指针指向c地址,然后一个[]表名是里面的值,把A的ASCII放进去了。

2.char str[]="Hello World!";
这里面做的工作其实只是把这个"Hello World"这个字符串,就是4字节,4字节的操作,先把他放到某一寄存器,再把这寄存器里面的数据放到str指向的地址中。

3.下面几个要先说明几点第一个imul这是有符号乘,shl是左移,和C/C++里面的一样。
所有根据对str[0]、str[1]、str[2]等这些操作可以发现如下结论,当为2的倍数时,就是左移,但不是2的倍数就是乘(这样的设计方式真实太巧妙了!)

4,然而对*(p_str+某一个数值),这个其实是把p_str指向的地址读入一个寄存器,然后在往这个地址放值。

反汇编基础-数组和指针的反汇编代码分析相关推荐

  1. 初学Verilog语言基础笔记整理(实例点灯代码分析)持续更新~

    实例:点灯学习 一.Verilog语法学习 1. 参考文章 刚接触Verilog,作为一个硬件小白,只能尝试着去理解,文章未完-持续更新. 参考博客文章: Verilog语言入门学习(1) Veril ...

  2. c/c++ 数组和指针

    c/c++ 数组和指针 知识点 1,数组就是指针,对应代码里的test1 2,用auto声明,得到的是指针,对应代码里的test2 3,用decltype声明,得到的不是指针 ,对应代码里的test3 ...

  3. C语言反汇编 - 多维数组与指针

    反汇编(Disassembly) 即把目标二进制机器码转为汇编代码的过程,该技术常用于软件破解.外挂技术.病毒分析.逆向工程.软件汉化等领域,学习和理解反汇编对软件调试.系统漏洞挖掘.内核原理及理解高 ...

  4. 反汇编基础-数据类型以及C++引用、指针反汇编后的概括

    反汇编中的数据类型 在汇编中,无论是字符串类型,整数类型还是其他类型都只有2个关键单位,地址.长度 [注意:LEA为取地址指令] 引用和指针的汇编代码: 引用并不会影响程序的执行效率,使用引用又比指针 ...

  5. 反汇编基础、OllyDbg简介和界面、基本操作、初级TraceMe练习

    以下使用的练习示例是<Windows程序设计>第五版第一章的HelloMsg.exe:以及<加密与解密>第三版附带的RebPE.exe: 一 反汇编基础 1 字节顺序 字节存储 ...

  6. C++反汇编代码分析

    C++反汇编代码分析--函数调用 代码如下: #include "stdlib.h" int sum(int a,int b,int m,int n) {   return a+b ...

  7. C++反汇编第三讲,反汇编中识别虚表指针,以及指向的虚函数地址

    C++反汇编第三讲,反汇编中识别虚表指针,以及指向的虚函数地址 讲解之前,了解下什么是虚函数,什么是虚表指针,了解下语法,(也算复习了) 开发知识为了不码字了,找了一篇介绍比较好的,这里我扣过来了,当 ...

  8. 反汇编基础-寄存器及内存

    反汇编基础-寄存器及内存 PC机中4大存储单元 1.硬盘:长时间大量存储数据,因为硬盘速度慢,在程序运行时就将硬盘中的数据加载到内存中. 2.内存:内存的存储速度比硬盘快,但还是没CPU快. 3.高速 ...

  9. 小猪猪C++笔记基础篇(四)数组、指针、vector、迭代器

    小猪猪C++笔记基础篇(四) 关键词:数组,Vector. 一.数组与指针 数组相信大家学过C语言或者其他的语言都不陌生,简单的就是同一个变量类型的一组数据.例如:int a[10],意思就是从a开始 ...

最新文章

  1. DeeCamp2021启动,李开复张亚勤吴恩达等大咖喊你报名啦
  2. html页面选择指定条件在下方显示,如何从符合特定条件的HTML中找到CSS选择器?...
  3. 解决 Azure AD 在 Azure Front Door 下登录失败的问题
  4. python--OS模块,文件系统
  5. 傅里叶变换 c语言程序,(快速傅里叶变换)C语言程序汇编
  6. 从零开始学前端:表单制作 --- 今天你学习了吗?(CSS:Day05)
  7. mysql索引讲解最好
  8. 正则表达式匹配以xx开头以xx结尾
  9. 矩阵行列式引理 Matrix Determinant Lemma
  10. 好莱坞经典十大战争电影排行榜 男人必看十大战争片
  11. 数字万用表数字多用表软件下载安装教程
  12. Axure 交互学习1 基础页面跳转、鼠标悬停样式
  13. 全站仪,激光跟踪仪,激光干涉仪,激光测距仪
  14. Http状态码大全(100、200、300、404、500等)
  15. Auto.js实例京东领金豆
  16. DaVinci Resolve Studio 18(达芬奇剪辑软件)
  17. 信贷客户调查中最需关注的十个方面(附经典案例解析)
  18. 有没有测试硬盘的软件,检测硬盘有什么好软件
  19. 山东黄金三山岛金矿:智能矿山里的“掘金人”
  20. 高光谱病虫害SPA x-Loading Weights MSC SNV SGSmoothing Normalize

热门文章

  1. 55个好习惯可令世界更美好(2)
  2. 制造业数字化经营新思路:管理平台架构及三大落地方法论
  3. 还在被Excel报表折磨?学会这个进阶工具,报表开发不是事儿
  4. 如何做好会员用户画像分析,比消费者本身更懂自己?
  5. 如何利用ffmpeg提供的API函数进行多媒体文件的解封装
  6. 可是笑声太响了的64391111
  7. 飞鸽传书转载:老板的忠告
  8. 一个简单的完成端口(服务端/客户端)类
  9. c调用java jar_C#调用java类、jar包方法。
  10. OpenCV中的模板匹配