| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 473 人关注过本帖
标题:谁能帮我分析一下以下代码
只看楼主 加入收藏
kaiyanyixiao
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-4-17
收藏
 问题点数:0 回复次数:2 
谁能帮我分析一下以下代码

TITLE D:\资料\cyy\123.c
.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 ??_C@_0BK@HKOA@please?5input?5two?5numbers?3?$AA@
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
; COMDAT ??_C@_04FBFD@?$CFd?$CFd?$AA@
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
; COMDAT ??_C@_03HMFC@?$CFd?6?$AA@
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST 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 _main
PUBLIC ??_C@_0BK@HKOA@please?5input?5two?5numbers?3?$AA@ ; `string'
PUBLIC ??_C@_04FBFD@?$CFd?$CFd?$AA@ ; `string'
PUBLIC ??_C@_03HMFC@?$CFd?6?$AA@ ; `string'
EXTRN _printf:NEAR
EXTRN _scanf:NEAR
EXTRN __chkesp:NEAR
; COMDAT ??_C@_0BK@HKOA@please?5input?5two?5numbers?3?$AA@
; File D:\资料\cyy\123.c
CONST SEGMENT
??_C@_0BK@HKOA@please?5input?5two?5numbers?3?$AA@ DB 'please input two nu'
DB 'mbers:', 00H ; `string'
CONST ENDS
; COMDAT ??_C@_04FBFD@?$CFd?$CFd?$AA@
CONST SEGMENT
??_C@_04FBFD@?$CFd?$CFd?$AA@ DB '%d%d', 00H ; `string'
CONST ENDS
; COMDAT ??_C@_03HMFC@?$CFd?6?$AA@
CONST SEGMENT
??_C@_03HMFC@?$CFd?6?$AA@ DB '%d', 0aH, 00H ; `string'
CONST ENDS
; COMDAT _main
_TEXT SEGMENT
_i$ = -4
_j$ = -8
_k$ = -12
_main PROC NEAR ; COMDAT

; 3 : {

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

; 4 : int i,j,k;
; 5 : printf("please input two numbers:");

push OFFSET FLAT:??_C@_0BK@HKOA@please?5input?5two?5numbers?3?$AA@ ; `string'
call _printf
add esp, 4

; 6 : scanf("%d%d",&i,&j);

lea eax, DWORD PTR _j$[ebp]
push eax
lea ecx, DWORD PTR _i$[ebp]
push ecx
push OFFSET FLAT:??_C@_04FBFD@?$CFd?$CFd?$AA@ ; `string'
call _scanf
add esp, 12 ; 0000000cH

; 7 : k=i+j;

mov edx, DWORD PTR _i$[ebp]
add edx, DWORD PTR _j$[ebp]
mov DWORD PTR _k$[ebp], edx

; 8 : printf("%d\n",k);

mov eax, DWORD PTR _k$[ebp]
push eax
push OFFSET FLAT:??_C@_03HMFC@?$CFd?6?$AA@ ; `string'
call _printf
add esp, 8

; 9 : }

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

搜索更多相关主题的帖子: 代码 
2007-04-11 18:02
kaiyanyixiao
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-4-17
收藏
得分:0 

上面的代码是用c语言写的一个很简单的加法程序,这是用vc++6.0反汇编后生成的代码,我看不懂,谁帮我分析一下,先谢谢各位了。


爱拼才会赢!
2007-04-12 20:21
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
怎么分析?

2007-04-13 22:15
快速回复:谁能帮我分析一下以下代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039526 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved