概述
int ss[100]={0,1,2,3,4,5,6,7,8,9};
sizeof(ss);
strlen(ss);
80483ec: sub $0x1b0,%esp 80483f2: lea 0x20(%esp),%ebx 80483f6: mov $0x0,%eax 80483fb: mov $0x64,%edx 8048400: mov %ebx,%edi 8048402: mov %edx,%ecx 8048404: rep stos %eax,%es:(%edi);重复stos操作,将eax值(0x0)拷贝到ES:EDI指向的地址 8048406: movl $0x1,0x24(%esp) ;重复次数ECX(0x84) 804840e: movl $0x2,0x28(%esp);初始化前10个整数,可以看出偏移量为4字节 8048416: movl $0x3,0x2c(%esp) 804841e: movl $0x4,0x30(%esp) 8048426: movl $0x5,0x34(%esp) 804842e: movl $0x6,0x38(%esp) 8048436: movl $0x7,0x3c(%esp) 804843e: movl $0x8,0x40(%esp) 8048446: movl $0x9,0x44(%esp) 804844e: mov $0x8048580,%eax 8048453: movl $0x190,0x4(%esp) ;0x190作为下面call的参数,十进制即为400 804845b: mov %eax,(%esp) 804845e: call 8048300 <printf@plt> 8048463: lea 0x20(%esp),%eax 8048467: movl $0xffffffff,0x1c(%esp) 804846e: ff 804846f: mov %eax,%edx 8048471: mov $0x0,%eax ;ah、al值都为0 8048476: mov 0x1c(%esp),%ecx 804847a: mov %edx,%edi 804847c: repnz scas %es:(%edi),%al ;扫描[es:edi]指向的一系列字节数据(此处为数组),扫描长度 804847e: mov %ecx,%eax ;由ecx指定,遇到与al中的数据相等时停止扫描。此处为0x0 8048480: not %eax 8048482: lea -0x1(%eax),%edx 8048485: mov $0x804858b,%eax 804848a: mov %edx,0x4(%esp) ;edx值即为call的参数 804848e: mov %eax,(%esp) 8048491: call 8048300 <printf@plt>;调用printf输出结果 8048496: mov $0x0,%eax 804849b: lea -0x8(%ebp),%esp 804849e: pop %ebx 804849f: pop %edi 80484a0: pop %ebp
最后
以上就是激昂飞鸟为你收集整理的无标题的全部内容,希望文章能够帮你解决无标题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复