彙編中多進程--初始例子

.section .data
msg:    .ascii "start fork/n"
    msg_len = . - msg
father_msg:    .ascii "this is father/n"
    father_msg_len = . - father_msg
child_msg:    .ascii "this is child/n"
    child_msg_len = . - child_msg
    .equ write_number, 4
    .equ stdout_number, 1
    .equ fork_number, 2
    .equ exit_number, 1
.section .text
    .globl _start
_start:
    #print msg
    movl $write_number,%eax
    movl $stdout_number, %ebx
    movl $msg, %ecx
    movl $msg_len, %edx
    int $0x80

    #invoke fork
    movl $fork_number, %eax
    int $0x80

    #return value in eax
    movl %eax, %ecx
    jecxz child
father:        
    #print father_msg
    movl $write_number, %eax
    movl $stdout_number, %ebx
    movl $father_msg, %ecx
    movl $father_msg_len, %edx
    int $0x80
    
    jmp exit
child:
    #print child_msg
    movl $write_number, %eax
    movl $stdout_number, %ebx
    movl $child_msg, %ecx
    movl $child_msg_len, %edx
    int $0x80
    
    jmp exit
exit:
    movl $exit_number,%eax
    movl $0, %ebx
    int $0x80
    
   
發佈了66 篇原創文章 · 獲贊 0 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章