DeleteFile на Arm assembler

Discussion in 'WASM.ASSEMBLER' started by RedRam, Jun 16, 2008.

  1. RedRam

    RedRam New Member

    Blog Posts:
    0
    Написал программку для КПК удаления файла в текущей папке.
    Компилируется и линкуется без проблем, а запустил не работает.
    Кто знает обьясните в чём проблема?

    Code (Text):
    1.                   IMPORT    DeleteFileW
    2.                   IMPORT    ExitThread
    3.  
    4.                   EXPORT   start
    5.  
    6.                   AREA         .text, CODE
    7.  
    8. start
    9.                  eor                R0, R0, R0
    10.                  adr                R1, filepath
    11.                  bl                   DeleteFileW
    12.  
    13.                  eor                R0, R0, R0
    14.                  bl                   ExitThread
    15.  
    16. filepath   dcb               "fuck.doc",0,0,0
    17.  
    18.                  END
     
  2. n0name

    n0name New Member

    Blog Posts:
    0
    dcb - это случаем не байты?
    Как я понял юзается Windows Mobile.
    DeleteFileW принимает имя файла в юникоде.
     
  3. RedRam

    RedRam New Member

    Blog Posts:
    0
    dcb то же что в винде db.
    Да ты понял всё абсолютно правильно.
    нули после каждой буквы не нужны?
     
  4. twgt

    twgt New Member

    Blog Posts:
    0
    Да.


    Есть хороший асм вытекщий из фасма.
    http://arm.flatassembler.net/

    Вот один из стандартных примеров
    Code (Text):
    1. ; Example of building a WinCE executable using direct coding
    2.  
    3.         format  PE GUI
    4.         entry   Start
    5.  
    6. section '.text' data code readable writeable executable
    7.  
    8. Start:
    9.         mov     r0,0                    ;window owner (NULL)
    10.         add     r1,pc,Text-$-8          ;the text
    11.         add     r2,pc,Caption-$-8       ;the caption
    12.         mov     r3,0                    ;style (MB_OK)
    13.         ldr     pc,[pc,MessageBoxW-$-8] ;display message and exit
    14.  
    15. Text    du      'Hello WinCE world',0
    16. Caption du      'ARM small PE',0
    17.  
    18.         align   4
    19.  
    20. data import
    21.  
    22.         dw      RVA core_imports,0,0,RVA core_name,RVA core_imports
    23.         rw      5
    24.  
    25.         core_imports:
    26.         MessageBoxW     dw      0x8000035A
    27.                         dw      0
    28.  
    29.         core_name       db      'COREDLL.DLL',0
    30.  
    31.         align   4
    32.  
    33. end data
    Макрос "du" сам преобразовывает в уникод-строку.
     
  5. RedRam

    RedRam New Member

    Blog Posts:
    0
    Спасибо.Взял на заметку.
    А как собственно сконвертить в юникод вручную?
    И можноли набрать текст в hex кодах?
     
  6. twgt

    twgt New Member

    Blog Posts:
    0
    RedRam
    Если там, где ты делаешь, то наверное нулями через каждую литеру.
    Или можно попробовать так:
    Code (Text):
    1. dcw 'f','i','l','e',0
    Думаю что да, посмотри в документации к твоему ассемблеру как там правильно писать, или попробуй методом тыка 0x0A или 0Ah (например).
     
  7. RedRam

    RedRam New Member

    Blog Posts:
    0
    'f','i','l','e',0
    'f',0,'i',0,'l',0,'e',0
    "f","i","l","e",0
    "f",0,"i",0,"l",0,"e",0
    не работают(((
    Есть ещё какие-нибудь идеи помимо hex?
     
  8. Black_mirror

    Black_mirror Active Member

    Blog Posts:
    0
    есть еще такие:
    'f',0,'i',0,'l',0,'e',0,0,0
    0,'f',0,'i',0,'l',0,'e',0,0
     
  9. twgt

    twgt New Member

    Blog Posts:
    0
    Дай скомпелированный exe посмотреть.

    через dcw делал или dcb?
     
  10. RedRam

    RedRam New Member

    Blog Posts:
    0
    twgt
    Через dcb
    Что то не приаттачился
     
  11. twgt

    twgt New Member

    Blog Posts:
    0
    поэтому и не работает. Либо сам нули ставь, либо dcw используй.
     
  12. RedRam

    RedRam New Member

    Blog Posts:
    0
    twgt
    С dcw не компелируется выдаёт ошибку
    A0083: illegal expression type; expected absolute numeric
     
  13. twgt

    twgt New Member

    Blog Posts:
    0
    Мдас...
    http://www.wasm.ru/article.php?article=pocketpc

    Поэтому
    Либо импользовать fasmarm )
     
  14. RedRam

    RedRam New Member

    Blog Posts:
    0
    twgt
    Hello World то пашет на 5+
    а вот файл не фига не удаляется(
    Не факт что в фасме без проблем сработает