Вывести на экран параметры командной строки (проблемы)

Тема в разделе "WASM.HEAP", создана пользователем device, 13 авг 2007.

  1. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF
    Код (Text):
    1. .globl main
    2. .globl printf
    3. .text
    4. main:
    5.         movl $5, %eax              
    6.         movl $CMD_PARAMS_STORAGE, %ebx
    7.         xorl %ecx, %ecx
    8.         xorl %edx, %edx
    9.         int  $0x80
    10.  
    11.     movl %eax, %ebx
    12.         movl $3, %eax
    13.         movl $CMD_PARAMS_STORAGE, %ecx
    14.         movl $0x100, %edx
    15.         int $0x80
    16.    
    17.  
    18. // Вот тут ошибка: хочу потом сравнивать строки, а не работает - выводит "./a.out"
    19.     movl %ecx, %edi
    20.     pushl $CMD_PARAMS_STORAGE
    21.     call printf
    22.     addl $4, %esp // Тут все правильно
    23.    
    24.     //Помогите, кто чем может!!!!
    25.  
    26. ret
    27.  
    28. .data
    29. CMD_PARAMS_STORAGE: .asciz "/proc/self/cmdline"
    30. help: .asciz "help"
    Не работатет - опять что-то напутал в коде.
    (опытный прикладной программист пытается стать ассемблерщиком:))))
     
  2. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF
    Никто не поможет???
    Просто хочу услышать толковое разъяснение, где я не прав?
     
  3. NoResponse

    NoResponse New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2005
    Сообщения:
    89
    где грабли не скажу, но пару ссылок для размышлений подкину

    http://www.freebsd.org/doc/en/books/developers-handbook/x86-command-line.html
    http://leto.net/writing/nasm.php
    http://asm.sourceforge.net//resources.html
     
  4. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF
    Спасибо, смотрю.

    PS.: Даже ссылки на WASM есть:)))
     
  5. mathio

    mathio New Member

    Публикаций:
    0
    Регистрация:
    16 июн 2007
    Сообщения:
    110
    Parametri zdes' razdeleni NULL symbolom. printf() vivodit stroku formata do pervogo vstrech. NULL.
     
  6. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF
    mathio
    И что делать? - парсить строку или
    call printf (...."%s %s %s");
     
  7. mathio

    mathio New Member

    Публикаций:
    0
    Регистрация:
    16 июн 2007
    Сообщения:
    110
    device
    Парсить строку
    ну если на стек положите соответствующие аргументы-адреса строк(т.е. предварительно распарсив, то что отдает cmdline), тогда можно.