首页
社区
课程
招聘
最近学习32位汇编的问题,在线等高手解答。
发表于: 2007-1-30 20:27 6057

最近学习32位汇编的问题,在线等高手解答。

2007-1-30 20:27
6057
问题1:

    32位汇编不须要段超越,8086里的一些寻址是不是不可以用了,因为变数以上的寻址都是要段超越的,如何解决,求高手详细解答。

问题2:
   
   本人正在仔细学习罗的《32位汇编》,最近想写一个简单的验正程序,现在搞不清楚两个字串如何比较,请问有字串比较的函数吗。

请高手解答,在线等待,万分感谢。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
对16位的汇编不太懂,不过win32的指针已经可以指向4G的大小,只要有权限,可以指向任何地址。所以16位可以寻址的地方在32位上应该都可以做到。

API函数中有一个lstrcmp函数。
2007-1-30 22:43
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
好像还有个lstrcmpi,大小写不敏感的。。。
2007-1-31 12:07
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
太感谢了,验正程序我在用指令来写,但是碰到不少的问题,到现在都还没有解决。你说的这个API我回去好好试试。

还有如果不须要段超越了,那一些用到段超越的寻址如何理解,比如:
1、 mov EBX,[1000h]  不须要段超越的话,那是不是就是直接把地址1000H内的内容送入EBX中?

2、mov EBX,[EAX+12h]  这些寻指又怎么理解呢。是不是在32位汇编中就不可以使用了。

请给予解答,感谢!
2007-1-31 12:56
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
5
1、 mov EBX,[1000h]  不须要段超越的话,那是不是就是直接把地址1000H内的内容送入EBX中?
可以这么说,不过在Win32中,除了你的程序是运行在Ring0层的才能访问这个地址。Ring3的程序访问这个地址会另程序崩毁。

2、mov EBX,[EAX+12h]  这些寻指又怎么理解呢。是不是在32位汇编中就不可以使用了。
可以使用,这条指令即以eax的保存着的地址值再+12个字节的偏移量里的地址里的内容传给ebx。
2007-1-31 13:03
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
太感谢版主了,本人初接触32位汇编有些概念性东西不太懂,在网上又搜索不到,只好到这里来请教了,见笑了。

从你刚才说的那个理解

mov EBX,[EAX+12h] 是不是也要在Ring0 层中使用。

如何是的话,那意思就是除了立即数寻址和寄存器寻址在32位汇编中可以直接使用外,别的全都是要在Ring0层中使用。
2007-1-31 13:26
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
7
最初由 放纵 发布
mov EBX,[EAX+12h] 是不是也要在Ring0 层中使用。
........


这个指令可以在Ring3层中使用。

指令使用是不区别Ring0还是Ring3层的,只要是CPU合法的指令,在Win32里都可以使用的。有区别的只是Windows对一些地方的读写设置了读写权限,相同的指令,由于读写权限的不同,低权限的程序读写了高权限的地方,就会出现错误。只有拥有一定权限的程序才能对那些地方进行读写访问。但这些和指令的使用没什么关系。

例子:
mov eax,0
mov ebx,[eax+12h] ; 如果是Ring3层的程序这里会出错,因为0+12的地址是属于系统才能访问的地址,Ring3层是没有这个权限的。

mov eax,00402000
mov ebx,[eax+12h] ; 这个指令和上面的指令相同,但这里Ring3层的程序不会出错,因为400402000+12的地址是属于程序自己的。

如上面两个例子,他们使用一样的寻址指令,为什么一个可以在Ring3层可以使用,一个不可以在Ring3层使用。就是因为他们访问的是不同的地址。
2007-1-31 14:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
太谢谢版主了.
2007-1-31 16:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
win32学习中,顺便学习一下。。。
2007-1-31 16:49
0
雪    币: 350
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
     版主真不错啊,讲的好详细。
2007-2-1 17:22
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
11
invoke CompareString,LOCALE_USER_DEFAULT,NORM_IGNORECASE,addr szExplorer,-1,addr stProcess.szExeFile,-1
.if eax==2

忽略大小写
2007-2-1 20:17
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
正在学习中!
2007-2-2 09:31
0
雪    币: 209
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
版主好像就是罗云彬!!!!!
2007-2-5 18:16
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
14
不是。。。
2007-2-5 21:07
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
虾虾真是好心,耐心,细心,有心,专心,
哈哈五心全有了
五心朝上了,可以练全真教的内功心法了
2007-2-6 15:36
0
游客
登录 | 注册 方可回帖
返回
//