首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训

       
热门搜索: ASP.NET Ajax Spring Hibernate Java
Visual C++编程深入引导   
中国水利水电出版社 / 2002年3月 / 伍红兵 / 68 元
ISBN:7508410076
何处购买:   去DearBook购买(¥61.2)
Book Rank:  38 

正在获取信息...........

该书常用的标签(推荐/用户提交):  提交tag
用户书架推荐:
收藏到我的书架
《Visual C++编程深入引导》图书论坛:
我要发表话题
还可以 - 58.242.33.*      
你对汇编了解的估计不够,其实作者给的代码是正确的,注意点调试版本和发行版本的汇编代码不一样的,有一定的区别。你用的就是调试版本汇编出来的代码,
2006年12月23日 10点28分   |  0回应 |   0 /0人觉得此评论有用
此评论对你有用  没用
 
无题 - x_y321   财富等级:   
感觉挺不错,而且是国内的人写的,比某些翻译书好N倍。
2004年06月25日 2点16分   |  0回应 |   0 /0人觉得此评论有用
此评论对你有用  没用
 
无题 - liuhaiyi   财富等级:   
d
2004年05月18日 2点31分   |  0回应 |   0 /0人觉得此评论有用
此评论对你有用  没用
 
无题 - frank_feng2004   财富等级:   
这本书刚刚买的,读了前几章。感觉思路很好,比如通过汇编代码来分析C++的特性。然而,细节的地方不够认真!!!
例如:p25-p31的一个汇编例子包含如下瑕疵。
1.书中所附汇编代码与实际用VC6.0生成的并不一致。假设是略去了与功能无关的内容,那么又处理得不彻底,程序无法正确理解,更不能正常运行。正确汇编代码附于下:
TITLE mfc12.cpp
.386P
include listing.inc
if @Version gt 510
.model FLAT
else
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
_DATA SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA ENDS
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
_BSS SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS ENDS
$$SYMBOLS SEGMENT BYTE USE32 'DEBSYM'
$$SYMBOLS ENDS
$$TYPES SEGMENT BYTE USE32 'DEBTYP'
$$TYPES ENDS
_TLS SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS ENDS
; COMDAT ?add@@YAHHH@Z
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _main
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
FLAT GROUP _DATA, CONST, _BSS
ASSUME CS: FLAT, DS: FLAT, SS: FLAT
endif
PUBLIC ?add@@YAHHH@Z ; add
; COMDAT ?add@@YAHHH@Z
_TEXT SEGMENT
_i$ = 8
_j$ = 12
_z$ = -4
?add@@YAHHH@Z PROC NEAR ; add, COMDAT

; 4 : {

push ebp
mov ebp, esp
sub esp, 68 ; 00000044H
push ebx
push esi
push edi
lea edi, DWORD PTR [ebp-68]
mov ecx, 17 ; 00000011H
mov eax, -858993460 ; ccccccccH
rep stosd

; 5 : int z=i+j;

mov eax, DWORD PTR _i$[ebp]
add eax, DWORD PTR _j$[ebp]
mov DWORD PTR _z$[ebp], eax

; 6 : return z;

mov eax, DWORD PTR _z$[ebp]

; 7 : }

pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0
?add@@YAHHH@Z ENDP ; add
_TEXT ENDS
PUBLIC _main
EXTRN __chkesp:NEAR
; COMDAT _main
_TEXT SEGMENT
_a$ = -4
_b$ = -8
_c$ = -12
_main PROC NEAR ; COMDAT

; 10 : {

push ebp
mov ebp, esp
sub esp, 76 ; 0000004cH
push ebx
push esi
push edi
lea edi, DWORD PTR [ebp-76]
mov ecx, 19 ; 00000013H
mov eax, -858993460 ; ccccccccH
rep stosd

; 11 : int a=100;

mov DWORD PTR _a$[ebp], 100 ; 00000064H

; 12 : int b=30;

mov DWORD PTR _b$[ebp], 30 ; 0000001eH

; 13 : int c=add(a,b);

mov eax, DWORD PTR _b$[ebp]
push eax
mov ecx, DWORD PTR _a$[ebp]
push ecx
call ?add@@YAHHH@Z ; add
add esp, 8
mov DWORD PTR _c$[ebp], eax

; 14 : return 0;

xor eax, eax

; 15 : }

pop edi
pop esi
pop ebx
add esp, 76 ; 0000004cH
cmp ebp, esp
call __chkesp
mov esp, ebp
pop ebp
ret 0
_main ENDP
_TEXT ENDS
END
2.关于函数调用时堆栈的处理和平衡,表述不清,图示不明,难于理解。鉴于这是一个放在前面作为引导的重要例子,实在应该讲透了。这样,后边的以大堆例子才好给人家理解。
建议作者:
1.写书最好还是假于己手,包括代码实例。如果让学生或助手代劳,需仔细指导,严格把关,定稿前甄别出潜藏的错误。
2.关于汇编例子的错误,不止出现在这一个例子之中。建议按正确生成的代码重写,并在适当的媒介上,向读者公布。
2004年05月17日 1点24分   |  0回应 |   0 /0人觉得此评论有用
此评论对你有用  没用
 
转帖 - forme   财富等级:   
侧重理论,角度新颖,适合初,中级VC++编程人员
2004年05月05日 12点20分   |  0回应 |   0 /0人觉得此评论有用
此评论对你有用  没用
 
标题:
Tag: (多个tag请用","分隔,最多支持5个)
评论内容:  
请先登录后再发表评论,点这里登陆
请填入验证码:   
第二书店的网址是? 输入问题答案(提示:www.dearbook.com.cm):
(注:评论内容必须大于20个字方可赠送C币,否则只发送评论)