鱼C论坛

 找回密码
 立即注册
查看: 4502|回复: 4

请教关于printf函数的汇编代码问题!

[复制链接]
发表于 2015-12-11 19:31:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
printf:
00403250   push        ebp
00403251   mov         ebp,esp
00403253   sub         esp,0Ch
00403256   push        ebx
00403257   push        esi
00403258   push        edi
00403259   lea         eax,[ebp+0Ch]
0040325C   mov         dword ptr [arglist],eax     ??这里的arglist是什么意思?
0040325F   cmp         dword ptr [format],0        ??这里的format是什么意思?
00403263   jne         printf+33h (00403283)        ??printf是什么意思?
00403265   push        offset string "format != NULL" (004247b0) ??format != NULL不明白
0040326A   push        0
0040326C   push        36h
0040326E   push        offset string "printf.c" (004247a4)   ??
00403273   push        2
00403275   call        _CrtDbgReport (00403cd0) ??
0040327A   add         esp,14h
0040327D   cmp         eax,1
00403280   jne         printf+33h (00403283)
00403282   int         3
00403283   xor         ecx,ecx
00403285   test        ecx,ecx
00403287   jne         printf+0Fh (0040325f)  ??
00403289   push        offset __iob+20h (00428d28)  ??
0040328E   call        _stbuf (00408090) ??
00403293   add         esp,4
00403296   mov         dword ptr [buffing],eax ??
00403299   mov         edx,dword ptr [arglist] ??
0040329C   push        edx
0040329D   mov         eax,dword ptr [format] ??
004032A0   push        eax
004032A1   push        offset __iob+20h (00428d28) ??
004032A6   call        _output (004082b0)  ??
004032AB   add         esp,0Ch
004032AE   mov         dword ptr [retval],eax ??
004032B1   push        offset __iob+20h (00428d28)  ??
004032B6   mov         ecx,dword ptr [buffing] ??
004032B9   push        ecx
004032BA   call        _ftbuf (004081f0) ??
004032BF   add         esp,8
004032C2   mov         eax,dword ptr [retval] ??
004032C5   pop         edi
004032C6   pop         esi
004032C7   pop         ebx
004032C8   mov         esp,ebp
004032CA   pop         ebp
004032CB   ret
感觉上面我不知道的不是汇编代码吧!求牛人解答!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-11 23:57:23 | 显示全部楼层
么么哒~@康小泡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-12 15:47:59 | 显示全部楼层
都是参数,jne是跳转到printf函数去。然后执行pritnf函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-5 19:51:42 | 显示全部楼层
本帖最后由 ufo9876 于 2016-1-5 19:56 编辑

arglist和format明显是两个地址标号,应该不会太远,在段内吧
offset (段内短转移操作符)string(这更证明这单词是个段内标号) "format != NULL" (004247b0) 后面这句是需要显示的字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-1-5 22:28:56 | 显示全部楼层
hahahahhaha!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-27 01:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表