| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1189 人关注过本帖
标题:一个很简单的问题,帮忙看一下 谢谢
只看楼主 加入收藏
daiwulong
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2009-2-28
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:16 
一个很简单的问题,帮忙看一下 谢谢
代码如下:
INCLUDE Irvine32.inc
.code
main PROC
        
    mov EBP,402000H
    mov eax,19E0H
    mov [EBP],eax
    exit
main ENDP
END main
但是当执行到mov【ESP】,eax是出现错误,见附件。
谢谢各位了  有点急。
搜索更多相关主题的帖子: 附件 
2009-10-08 19:53
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:0 
代码段不可写。这样肯定会写异常。

两种解决方式:
1、在LINK时,指定代码段可写、可执行。

2、用虚拟内存管理API修改代码段可写。

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2009-10-08 20:55
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
收藏
得分:0 
你看的是Intel汇编语言程序设计这本书吧.

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2009-10-08 21:44
daiwulong
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2009-2-28
收藏
得分:0 
回复 2楼 东海一鱼
谢谢,我刚刚学习汇编,都不怎么懂。第一种是怎么回事啊   我用的是2005,我直接F10单步执行到那个地方就这样了。
能不能说一下第一种怎么实现的。谢谢
2009-10-08 22:33
daiwulong
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2009-2-28
收藏
得分:0 
回复 3楼 你们都要疼我哦
我们老师给了我们这个Assembly Language For Intel-Based Computers Fourth Edition
英文电子的,但是我们都没看,英文的看着太累人了   英语学得不好
2009-10-08 22:36
onepc
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:223
专家分:569
注 册:2009-8-27
收藏
得分:0 
代码如下:
INCLUDE Irvine32.inc
.code
main PROC
        
    mov EBP,402000H
    mov eax,19E0H
    mov [EBP],eax
    exit
main ENDP
END main
但是当执行到mov【ESP】,eax是出现错误,见附件。
谢谢各位了  有点急。
以下是引用东海一鱼在2009-10-8 20:55:42的发言:

代码段不可写。这样肯定会写异常。

两种解决方式:
1、在LINK时,指定代码段可写、可执行。

2、用虚拟内存管理API修改代码段可写。

楼主你看下402000H这个地址的地方是什么来的?是否代码段之类的。

用od载入可以看下。。。   一般建议装入点没给占用的话一般都是400000的。偏二千的地方是什么来的。看下。
2009-10-09 08:42
daiwulong
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2009-2-28
收藏
得分:0 
回复 6楼 onepc
执行到mov [EBP],eax的时候寄存器显示


EAX = 000019E0 EBX = 7FFD6000 ECX = 0012FFB0 EDX = 7C92E514 ESI = 0A07F99C EDI = 00000000 EIP = 0040101A ESP = 0012FFC4 EBP = 00402000 EFL = 00000246

00402000 = CCCCCCCC
等到执行完这步时就会弹出这个错误,你们能不能再你们的机器上试一试,谢谢了
我刚看看汇编什么都不会,你们说的我也不懂啊 ,我编写的东西是不是不对啊?
2009-10-09 10:30
onepc
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:223
专家分:569
注 册:2009-8-27
收藏
得分:0 
00402000 = CCCCCCCC
已写进去了。
你看下那个exit是什么来的。这个我还没用过。。
2009-10-09 10:35
daiwulong
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2009-2-28
收藏
得分:0 
回复 8楼 onepc
到那一步就不能继续执行了,就是弹出错误了。
我已经把eax赋值为19E0H,再把eax给了402000这个地址,但是执行不到exit就出现那个错误了
谢谢你了
2009-10-09 10:47
onepc
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:223
专家分:569
注 册:2009-8-27
收藏
得分:0 
哦。那就是写不入402000这里了。看东海一条鱼的回复。。
2009-10-09 10:51
快速回复:一个很简单的问题,帮忙看一下 谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037042 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved