linux创建pc目录,在linux汇编语言中创建一个目录

的一种方法,是使用GCC来翻译以下C代码:

#include

#include

int main()

{

if (mkdir("testdir", 0777) != 0)

{

return -1;

}

return 0;

}

到组件,具有:gcc mkdir.c -S

.file "mkdir.c"

.section .rodata

.LC0:

.string "testdir"

.text

.globl main

.type main, @function

main:

.LFB0:

.cfi_startproc

pushl %ebp

.cfi_def_cfa_offset 8

.cfi_offset 5, -8

movl %esp, %ebp

.cfi_def_cfa_register 5

andl $-16, %esp

subl $16, %esp

movl $511, 4(%esp)

movl $.LC0, (%esp)

call mkdir ; interesting call

testl %eax, %eax

setne %al

testb %al, %al

je .L2

movl $-1, %eax

jmp .L3

.L2:

movl $0, %eax

.L3:

leave

.cfi_restore 5

.cfi_def_cfa 4, 4

ret

.cfi_endproc

.LFE0:

.size main, .-main

.ident "GCC: (GNU) 4.5.1 20100924 (Red Hat 4.5.1-4)"

.section .note.GNU-stack,"",@progbits

反正ProgrammingGroundUp第272只列出了重要的系统调用,包括mkdir:

%eax Name %ebx %ecx %edx Notes

------------------------------------------------------------------

39 mkdir NULL terminated Permission Creates the given

directory name directory. Assumes all

directories leading up

to it already exist.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值