社区
汇编语言
帖子详情
怎么比较某个内存地址的数值是否为XX?
cniao
2003-08-23 02:18:50
用C这样写:
if ((char *)(0x01234567) == 0x77){
....
}else{
....
}
不知道用ASM应该怎么写?
...全文
66
14
打赏
收藏
怎么比较某个内存地址的数值是否为XX?
用C这样写: if ((char *)(0x01234567) == 0x77){ .... }else{ .... } 不知道用ASM应该怎么写?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
spbabyba
2003-08-25
打赏
举报
回复
刚刚写错了,应该是:
movzx eax,byte ptr 01234567
.if eax== 0x77
;u code
.endif
spbabyba
2003-08-25
打赏
举报
回复
32汇编里,你可以:
mov al,byte ptr 01234567
.if 0x01234567== 0x77
;u code
.endif
W32API
2003-08-25
打赏
举报
回复
简单的方法是设置断点。。。
然后自己改 EIP
catm3
2003-08-24
打赏
举报
回复
cniao(菜鸟) ,你学汇编了吗,怎么会有a1,a2呢?,W32API说的可是寄存器,你再看看汇编最基本的指令再说,不要"大跃进".
在汇编里面,一般可以这样比较:
val0 db 67h,45h,23h,01h ;变量val0
val1 dd 01234567h ;变量val1
val2 dd 12345678h ;变量val2
...
mov eax,val1 ;val1 --> eax
cmp eax,val2 ;比较eax和val2
je xxx1 ;相等就转 xxx1
...
;又可以是:
lea eax,val2 ;val1的地址 --> eax,和C++的指针一样!!??
cmp [eax],dword ptr [val0] ;eax指向的地址里的内容和val0比较,
je xxx1
;在调试器里面动态汇编,我看ollydbg比较方便,在该EIP指针,立刻执行你的指令
只要没错,怎么比都可以
再插一句,不要急,塌实点
bauhaus
2003-08-23
打赏
举报
回复
内存不定
你需要动态写汇编代码
然后dump下来
把保存的pe文件重新修改一些入口地址什么的
具体建议去看雪软件调试论坛看看
cniao
2003-08-23
打赏
举报
回复
谢谢各位,我是32位的。
TO:W32API(李诚)
我是要用SOFTICE往内存里动态加代码,这个a1,a2到时候可以定义吗?
行标呢?
麻烦哥们了。
W32API
2003-08-23
打赏
举报
回复
Dear Purpleendurer(Purplenendurer)
(char *)(0x01234567)
I think his code would to run in 32-bit mode
W32API
2003-08-23
打赏
举报
回复
the data is Hex
mov al,[01234567]
mov bl,77
xor al,bl
jz next1
jmp next2
next1:
... ;if [01234567]==77 then run this code
jmp next3
next2:
... ;else run this code
next3:
.... ;others code
紫郢剑侠
2003-08-23
打赏
举报
回复
这在16位汇编和32位汇编中写法不一样.你要哪种?
cniao
2003-08-23
打赏
举报
回复
谁告诉我X86怎么写啊?
cniao
2003-08-23
打赏
举报
回复
扑通。。。
晕倒了~~~
itisajoke
2003-08-23
打赏
举报
回复
当然,如果你用arm或是68000的cpu那是不一样的。
看来你用的是x86的机器。但我目前对arm最熟,
arm中应该是这样写的。
ldr r1,=0x01234567
ldr r0,r[0]
ldr r2,=0x77
tst r0,r2
beq progress1
progress2 ;内存地址中的数值不等于0x77时执行的代码
.......................
.......................
progress1 ;内存地址中的数值等于0x77时执行的代码
......................
........................
cniao
2003-08-23
打赏
举报
回复
啊。。。不会吧~~~~和CPU有关系吗?就是兼容机呀
itisajoke
2003-08-23
打赏
举报
回复
什么cpu,它用什么指令集。
MATLAB 2023:
数值
分析
介绍用MATLAB实现
数值
分析课程中各种算法的方法,包括线性方程组和非线性方程组的
数值
解法、插值、
数值
微分和积分、常微分方程的求解等。 所在套餐:MATLAB核心知识点系列课程-CSDN程序员研修院,不断更新和增加课程...
易语言如何读
内存地址
的
数值
,模仿CE
子程序名 返回值类型 公开...内存x 类_内存 游戏窗口句柄 = 窗口_取句柄 (, , “VirtuaNESwndclass”, “VirtuaNES - 马戏团”) 输出调试文本 (游戏窗口句柄) 游戏进程id = 窗口_句柄取进程ID (游戏窗口句柄) ...
Java内存溢出的原因有哪些?Java进程占用内存构成有哪些?
很多人的理解是,Java进程占用的内存就是堆内存占用,再进一步就是Perm/元数据区的占用。 Java面试宝典里的,大多点到这为止,其实真实情况远远不是这样的。 如果持有以上观点,那么服务器上出现OOM,一点儿也不奇怪...
一文搞懂JVM内存结构
举个栗子: Integer 常量池(缓存池),和字符串常量池 Integer常量池: 我们知道 == 基本数据类型
比较
的是
数值
,而引用数据类型
比较
的是
内存地址
。 public void TestIntegerCache() { public static void main...
读懂 JVM 内存管理这篇就够了
方法返回地址(return address)附加信息本地方法栈堆内存划分对象在堆中的生命周期对象的分配过程元空间方法区对于方法区,Java8 之后的变化方法区内部结构类型信息域(Field)信息方法(Method)信息运行时常量池...
汇编语言
21,459
社区成员
41,601
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章