sejung 发表于 2015-12-11 19:31:00

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

printf:
00403250   push      ebp
00403251   mov         ebp,esp
00403253   sub         esp,0Ch
00403256   push      ebx
00403257   push      esi
00403258   push      edi
00403259   lea         eax,
0040325C   mov         dword ptr ,eax   ??这里的arglist是什么意思?
0040325F   cmp         dword ptr ,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 ,eax ??
00403299   mov         edx,dword ptr ??
0040329C   push      edx
0040329D   mov         eax,dword ptr ??
004032A0   push      eax
004032A1   push      offset __iob+20h (00428d28) ??
004032A6   call      _output (004082b0)??
004032AB   add         esp,0Ch
004032AE   mov         dword ptr ,eax ??
004032B1   push      offset __iob+20h (00428d28)??
004032B6   mov         ecx,dword ptr ??
004032B9   push      ecx
004032BA   call      _ftbuf (004081f0) ??
004032BF   add         esp,8
004032C2   mov         eax,dword ptr ??
004032C5   pop         edi
004032C6   pop         esi
004032C7   pop         ebx
004032C8   mov         esp,ebp
004032CA   pop         ebp
004032CB   ret
感觉上面我不知道的不是汇编代码吧!求牛人解答!

~风介~ 发表于 2015-12-11 23:57:23

么么哒~@康小泡

康小泡 发表于 2015-12-12 15:47:59

{:9_240:}都是参数,jne是跳转到printf函数去。然后执行pritnf函数

ufo9876 发表于 2016-1-5 19:51:42

本帖最后由 ufo9876 于 2016-1-5 19:56 编辑

arglist和format明显是两个地址标号,应该不会太远,在段内吧
offset (段内短转移操作符)string(这更证明这单词是个段内标号) "format != NULL" (004247b0) 后面这句是需要显示的字符串

李思岑12138 发表于 2016-1-5 22:28:56

hahahahhaha!!!!!
页: [1]
查看完整版本: 请教关于printf函数的汇编代码问题!