首页
社区
课程
招聘
求教:如何学好32位汇编语言程序设计?
发表于: 2007-4-19 21:27 11724

求教:如何学好32位汇编语言程序设计?

2007-4-19 21:27
11724
最近在看罗云彬老师的《Windows 环境下32位汇编语言程序设计(第二版)》一书,书中的许多例子,用到API函数和结构,很难看懂,不知需要一本什么样的API函数和结构手册可以便于学习?

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (21)
雪    币: 380
活跃值: (101)
能力值: ( LV13,RANK:370 )
在线值:
发帖
回帖
粉丝
2
不懂的话就多用用google+baidu+msdn
2007-4-20 11:44
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
3
下个masmv8.0 把里面的例子全看了
2007-4-20 15:23
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
有感楼主
我在图书馆找到一本《win32汇编语言程序设计教程》,严义,机械工业出版社
这本是参考了罗云彬的书写的,例子调用了很多罗的例子,但是讲解更详细
api的话没学过windows编程,那么汇编还是比较吃力的
没办法,迎难而上吧
要不一起交流交流?
2007-4-20 15:39
0
雪    币: 615
活跃值: (1127)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
不在于选择什么,而是在于能坚持多久.

给楼主一张图,不要犯很多人都在犯的错误,我原来也是如此.

2007-4-20 16:18
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
我也是。看的很痛苦。只有在msdn里面看英文讲解了。然后不懂就在论坛上问高手了。以后可以一起讨论么。我看到第十章了。对了。大家有关于 DeleteFile的例子么。我看了msdn但是用起来不管用啊。
2007-4-22 16:31
0
雪    币: 216
活跃值: (2407)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
7
DeleteFile函数很简单,给你个例子:
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		.386
		.model flat,stdcall
		option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include		windows.inc
include		user32.inc
includelib		user32.lib
include		kernel32.inc
includelib		kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		.data
szText		db	"删除成功!",0
szText1		db	"删除失败!",0
szFileName	db	"C:\test.txt",0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		.code
start:
	invoke	DeleteFile,addr szFileName
	.if	eax
		invoke	MessageBox,0,addr szText,0,0
	.else
		invoke	MessageBox,0,addr szText1,0,0
	.endif
	invoke	ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end	start
2007-4-22 22:10
0
雪    币: 216
活跃值: (2407)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
8
to ekin:
看到第十章了,不应该这么简单的函数还不会用.建议你再从头看起
to kanxue:
不知道为什么出了2贴,还是老的论坛版本稳定..建议再调试一下新论坛.新论坛的CODE标签也不太好用..会"溢出"...
2007-4-22 22:11
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
其实刚开始罗云彬的书看了2次
后来还是去找了一本入门的看
的确要慢慢来,不是看了就会懂的
的确不是硬盘多大就知识就有多丰富的

谢谢楼上的2位大侠指点
2007-4-23 09:02
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
谢谢了!可是文件名里面不用路径应该可以啊。我想删除c盘所有的txt的话。我用了罗云斌的第十章程序FindFile修改里面的_ProcessFile。
szName  db '*.txt',0
szDeleteSucc db '成功删除文件!',0
szDeleteFai db '没有找到文件!',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  .code
include  _BrowseFolder.asm
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 处理找到的文件
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ProcessFile proc _lpszFile
  LOCAL @hFile
  
  inc dwFileCount
  invoke SetDlgItemText,hWinMain,IDC_NOWFILE,_lpszFile
  invoke CreateFile,_lpszFile,GENERIC_READ,FILE_SHARE_READ,0,\
   OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0
  .if eax != INVALID_HANDLE_VALUE
   mov @hFile,eax
   invoke GetFileSize,@hFile,NULL
   add dwFileSizeLow,eax
   adc dwFileSizeHigh,0
   invoke CloseHandle,@hFile
  .endif
;******************************************************
;删除文件
;******************************************************
  invoke DeleteFile,offset szName
  .if eax
   invoke MessageBox,hWinMain,offset szDeleteSucc,NULL,MB_OK 
  .endif
  ret
_ProcessFile  endp

进入了一个文件夹则删除文件。我这段究竟有什么问题了?
2007-4-23 09:06
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
11
楼上建议从头学。

.386
.model flat,stdcall
option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include    windows.inc
include    user32.inc
includelib    user32.lib
include    kernel32.inc
includelib    kernel32.lib

.data
szFilePath db "c:\*.txt",0
szC db "C:\",0
.data?
FileData WIN32_FIND_DATA<?>
szBuff db 1024 dup(?)
@hFindFile dd ?
.code
start:

     invoke FindFirstFile,addr szFilePath,addr FileData
     mov    @hFindFile,eax
      .repeat
     invoke RtlZeroMemory,addr szBuff,sizeof szBuff
     invoke lstrcat,addr szBuff,addr szC
     invoke lstrcat,addr szBuff,addr FileData.cFileName
     invoke DeleteFile,addr szBuff
     invoke FindNextFile,@hFindFile,addr FileData
     .until    eax == FALSE
     invoke ExitProcess,eax
     end start
2007-4-23 19:32
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
谢谢各位的耐心指导,我一定会认真学习。
2007-4-23 21:48
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
还得多调程序 别的白扯呀
2007-5-9 07:55
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
[QUOTE=xzchina;299844]不在于选择什么,而是在于能坚持多久.

给楼主一张图,不要犯很多人都在犯的错误,我原来也是如此.

[/QUOTE]

谢谢指点,我正在迷惘中,不知从何下手学习,楼主的劝告如醍醐灌顶啊。再次感谢!
2007-5-9 23:12
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
跟踪调试阿,不跟踪怎么知道问题
2007-5-9 23:18
0
雪    币: 222
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
汇编还真的很难学呀
2007-5-10 00:14
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
不要以为看一遍就能看懂,有时是要看好几遍才能看懂一点点。
2007-5-27 15:02
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
18
谢谢指点啊。我也的确觉得看一遍是不可能的。当时看懂了也会忘记,不熟悉。至少看两遍!以前还没用过api何况。
2007-5-27 20:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
学习汇编多看例子就好了
多用MSDN
2007-5-29 18:08
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
还有要对上机去实验就很快明白了
我就是这样学习的 嘿嘿
2007-5-29 18:09
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
感觉学起来也没什么,用API比较的多。

建议还是先学习DOS的汇编。API和消息循环熟悉了就简单了!我学了一个月就入门了
2007-6-2 09:21
0
雪    币: 108
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
貌似11楼这段代码无法删除子目录内的。
2007-7-20 00:16
0
游客
登录 | 注册 方可回帖
返回
//