首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

请教该怎么更改成汇编

2013-04-21 
请问该如何更改成汇编请看:#include stdio.hint main(){char *name[2]name[0]/bin/lsname[1]NULL

请问该如何更改成汇编
请看:
#include <stdio.h>
int main()
{
  char *name[2];
  name[0]="/bin/ls";
  name[1]=NULL;
  execve(name[0],name,NULL);
  return 0;
}
这个可以执行,是显示文件目录的。我想把它改成汇编,请看:
.data
     msg:.string "/bin/ls"

.text
.global _start
_start:
      movl $0xb,%eax
      movl $msg,%ebx
      mov $msg,%ecx
      movl $0,%edx
      int $0x80
      movl $0,%ebx
      movl $1,%eax
      int $0x80

可是执行时没有反应,请问该如何更改?
[解决办法]
gcc -S 出来的, 做个参考吧。


.file"main.cpp"
.section.rodata
.LC0:
.string"/bin/ls"
.text
.globl main
.typemain, @function
main:
.LFB0:
.cfi_startproc
pushl%ebp
.cfi_def_cfa_offset 8
movl%esp, %ebp
.cfi_offset 5, -8
.cfi_def_cfa_register 5
andl$-16, %esp
subl$32, %esp
movl$.LC0, 24(%esp)
movl$0, 28(%esp)
movl24(%esp), %eax
movl$0, 8(%esp)
leal24(%esp), %edx
movl%edx, 4(%esp)
movl%eax, (%esp)
callexecve
movl$0, %eax
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE0:
.sizemain, .-main
.ident"GCC: (SUSE Linux) 4.5.1 20101208 [gcc-4_5-branch revision 167585]"
.section.comment.SUSE.OPTs,"MS",@progbits,1
.string"ospwg"
.section.note.GNU-stack,"",@progbits


[解决办法]
gcc *.c -S

热点排行