我可以实现在.text区计数器不使用寄存器? [英] can i implement counter in the .text area without using registers?

查看:194
本文介绍了我可以实现在.text区计数器不使用寄存器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在.text段本次大会code,是有可能,我不能INC一个DWORD在.text区的席位。如果我把一些DWORD,在.data段它工作正常座位,我的意思是,当我切换行:

01004A72> 813D 664A0001> CMP DWORD PTR DS:[1004A66],3E7

与行

  01004A72> 813D 664A0001> CMP DWORD PTR DS:,3E7:[数据0100579C]01004A66 0000 ADD BYTE PTR DS:[EAX],AL
01004A68 0000 ADD BYTE PTR DS:[EAX],AL
01004A6A 00 DB 00
01004A6B 00 DB 00
01004A6C 00 DB 00
01004A6D 00 DB 00
01004A6E 00 DB 00
01004A6F 00 DB 00
01004A70 00 DB 00
01004A71 00 DB 00
01004A72> 813D 664A0001> CMP DWORD PTR DS:[1004A66],3E7
01004A7C。 74 06 JE ​​SHORT winmine3.01004A84
01004A7E FF05 9C570001 INC DWORD PTR DS:[1004A66]
01004A84 ^ E9 CDD5FFFF JMP winmine3.01002056
01004A89 0000 ADD BYTE PTR DS:[EAX],AL
01004A8B 0000 ADD BYTE PTR DS:[EAX],AL
01004A8D 0000 ADD BYTE PTR DS:[EAX],AL
01004A8F 00 DB 00
01004A90 00 DB 00


解决方案

的.text 段是只读部分。您应该使用的.bss 。数据的修改变量。

http://en.wikipedia.org/wiki/$c$c_segment

i have this assembly code in the .text segment, is it possible that i can't inc a dword that seats in the .text area. if i put some dword that seats in the .data section it works fine, i mean when i switch the line:

01004A72 > 813D 664A0001 >CMP DWORD PTR DS:[1004A66],3E7

with the line

 01004A72   > 813D 664A0001 >CMP DWORD PTR DS:[.data:0100579C],3E7



01004A66     0000           ADD BYTE PTR DS:[EAX],AL
01004A68     0000           ADD BYTE PTR DS:[EAX],AL
01004A6A     00             DB 00
01004A6B     00             DB 00
01004A6C     00             DB 00
01004A6D     00             DB 00
01004A6E     00             DB 00
01004A6F     00             DB 00
01004A70     00             DB 00
01004A71     00             DB 00
01004A72   > 813D 664A0001 >CMP DWORD PTR DS:[1004A66],3E7
01004A7C   . 74 06          JE SHORT winmine3.01004A84
01004A7E     FF05 9C570001  INC DWORD PTR DS:[1004A66]
01004A84    ^E9 CDD5FFFF    JMP winmine3.01002056
01004A89     0000           ADD BYTE PTR DS:[EAX],AL
01004A8B     0000           ADD BYTE PTR DS:[EAX],AL
01004A8D     0000           ADD BYTE PTR DS:[EAX],AL
01004A8F     00             DB 00
01004A90     00             DB 00

解决方案

The .text segment is a read only section. You should use .bss .data or the stack for modifiable variables.

http://en.wikipedia.org/wiki/Code_segment

这篇关于我可以实现在.text区计数器不使用寄存器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆