最近在写x86汇编出现了这个问题,折腾了好久,不过最后完美解决了。

原因出在下面这段代码

.MODEL FLAT, C.CODE
testcommon PROCpush ebpmov ebp, espmov eax, [ebp+8]    ;基址mov esi, [ebp+12]    ;长度mov ecx, 0            ;    循环变量
begin:cmp ecx,  esije donemov dword ptr [eax+ecx*4], 4add ecx, 1jmp begindone:mov esp, ebppop ebprettestcommon ENDP
END

在返回到main函数中时总是出现错误信息

 Access violation reading location 0x00000004.

  经过一步步的定位,以及查找资料,发现程序没有遵守被调用着规范。

也就是说被调用程序负责保护EBX, EDX, ESI寄存器,而在上面那段程序中,直接使用ESI寄存器而没有加以保护,因此,在返回到调用函数后,程序行为会出错。

转载于:https://www.cnblogs.com/buaawang/p/9853768.html

Access violation reading location 0x00000004.相关推荐

  1. OpenCV特征检测出现Unhandled exception at……Access violation reading location 0x00000000.

    OpenCV版本为2.4.12,Visual Studio 开发环境中运行. 在图像特征检测.匹配中出现了运行错误: Unhandled exception at 0x569D1C00 (opencv ...

  2. Access violation reading location 0xccccccc0运行异常的解决方法

    转自:http://blog.csdn.net/michealmeng555/article/details/6452697 编译过运行时出现如下错误 Access violation reading ...

  3. Unhandled exception at 0x........ in XXXX.exe: 0xC0000005:Access violation reading location 0x......

    Unhandled exception at 0x........ in XXXX.exe: 0xC0000005:Access violation reading location 0x...... ...

  4. C/C++ error/exception throw: access violation reading location 0x....;

    [问题背景]问题现象如下图: [问题分析]这类问题,概括的说对基本由于指针未正确使用(申请或者释放过程中产生问题)而导致. [01]像我产生这个错误时,看自己的代码哪里都好的,检查的检查了,异常的处理 ...

  5. Access violation reading location 0x000000XX

    对于这样的运行时错误,你可能会抓狂.我今天在编写MFC程序时遇到了这样的错误,解决这个问题花了我一个多小时的时间,最后才定位到错误. 首先解释一下这种错误,意思是:违反规则访问地址为0x0000003 ...

  6. Unhandled exception at 0x00291422 in x.exe: 0xC0000005: Access violation writing location 0x37ACCE08

    源码如下: #include<stdio.h> #include<string.h> #include<stdlib.h> //malloc所在库#define M ...

  7. First-chance exception at 0x000007FE86D99B3C in XXXX.exe: 0xC0000005: Access violation reading locat

    First-chance exception at 0x000007FE86D99B3C in XXXX.exe: 0xC0000005: Access violation reading locat ...

  8. access violation reading 0x0000000000000020

    access violation reading 0x0000000000000020 原因: 再次使用之前应该先释放一下内存: av_freep(aviobuffer); //printf(&quo ...

  9. exception: access violation reading 0xFFFFFFFFFFFFFFFF

    exception: access violation reading 0xFFFFFFFFFFFFFFFF 原因:内存释放的时候出了问题,可能是释放过了. av_freep(aviobuffer); ...

  10. OSError: exception: access violation reading 0x0000000000000001

    File "D:\Users\Administrator\Miniconda3\envs\python36\lib\ctypes\__init__.py", line 492, i ...

最新文章

  1. 软件测试实验--性能测试工具LoadRunner
  2. 阿里规范不建议多表join,可这SQL要怎么写啊?
  3. 开源wkhtmltopdf使用心得 (四)
  4. TimePicker的使用
  5. 面向对象精要-理解对象
  6. 那些你不知道的单词小秘密
  7. 大数据视域下网络涉军舆情管控研究
  8. webpack打开项目命令_webpack打包好的页面在项目中怎么运行?
  9. 固态和机械硬盘组raid_电脑是固态硬盘好还是机械硬盘
  10. 物联网金融:下一个风口?
  11. Spring整合Redis作为缓存
  12. shell 布尔运算
  13. mysql 触发器 insert new_mysql触发器实例 插入前更新数据
  14. 服务器开启sxe进不了系统,sXe 服务端安装教程
  15. HD-Map lanelet2(2)
  16. 云计算机基础架构,云计算基础架构的解决方案
  17. 友情链接SEO工具检测不出来
  18. 导出android app安装包,Android app导出apk方法
  19. Chrome安装VUE插件
  20. java:解一元二次方程

热门文章

  1. 计算机管理里面的“服务”怎么删除?
  2. mysql idb恢复_MySQL 通过idb文件恢复Innodb 数据【转】
  3. python自然语言_Python自然语言处理 - 随笔分类 - 牛皮糖NewPtone - 博客园
  4. Windows7高级检索功能——搜索筛选器
  5. 置信区间 VS 置信水平
  6. 安卓毕业设计源码基于Uniapp+SSM实现的校园心理健康APP
  7. (DINO) Emerging Properties in Self-Supervised Vision Transformers——自监督ViT的新属性和几点思考
  8. 面向对象设计,ORM,NHIBERNATE杂谈(有感)
  9. 对权力说真话:CEO萨蒂亚•纳德拉与微软的三两事
  10. Stata实验——计算个股“上海机场“的市场模型和CAPM模型的β值