call ExitProcess выдаёт ошибку

Discussion in 'WASM.BEGINNERS' started by RuAsm, Mar 21, 2007.

  1. RuAsm

    RuAsm Виктор

    Blog Posts:
    0
    Joined:
    Jul 16, 2006
    Messages:
    125
    Location:
    Спасск-D, Приморский край!
    подключаю строчку
    include 'c:\fasmw\include\api\kernel32.inc'

    в ide вываливается вес кернел, и выдаёт ошибку, как это исправить?

    вот код еслу кому пригодится
    format PE console
    entry start
    ;include 'c:\fasmw\include\api\kernel32.inc'
    include 'c:\fasmw\include\macro\import32.inc'

    section '.data' data readable writeable
    h4 db 'баа..)'


    section '.code' code readable executable
    start:
    push 0
    call ExitProcess
     
  2. Nouzui

    Nouzui New Member

    Blog Posts:
    0
    Joined:
    Nov 17, 2006
    Messages:
    856
    это - не в beginners, это - в избранное
     
  3. RuAsm

    RuAsm Виктор

    Blog Posts:
    0
    Joined:
    Jul 16, 2006
    Messages:
    125
    Location:
    Спасск-D, Приморский край!
    блин.. ну как подключить? как правильно подключить?
     
  4. RuAsm

    RuAsm Виктор

    Blog Posts:
    0
    Joined:
    Jul 16, 2006
    Messages:
    125
    Location:
    Спасск-D, Приморский край!
    а фасл не поддерживает инструкцию call?
     
  5. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    Joined:
    Oct 2, 2003
    Messages:
    4,300
    Location:
    Ukraine
    RuAsm
    Марш читать доки по фасму. И про отсутствие русских док даже не заикайтесь - они есть, причём, на этом сайте.
     
  6. wasm_test

    wasm_test wasm test user

    Blog Posts:
    0
    Joined:
    Nov 24, 2006
    Messages:
    5,582
    Code (Text):
    1. call dword [ExitProcess]
    вместо
    Code (Text):
    1. call ExitProcess
     
  7. RuAsm

    RuAsm Виктор

    Blog Posts:
    0
    Joined:
    Jul 16, 2006
    Messages:
    125
    Location:
    Спасск-D, Приморский край!
    ура)
    format PE console
    entry start
    include 'c:\fasmw\include\WIN32A.inc'

    section '.code' code readable executable
    start:
    invoke ExitProcess, 0


    section '.idata' import data readable writeable

    library kernel32, 'KERNEL32.DLL'

    include 'c:\fasmw\include\api\kernel32.inc'

    работает) правда не все ясно.. call не вызывает макросы, а можно сделать так чтобы вызывать api инструкцией call ?
     
  8. wasm_test

    wasm_test wasm test user

    Blog Posts:
    0
    Joined:
    Nov 24, 2006
    Messages:
    5,582
    Я написал выше.

    Code (Text):
    1. invoke ExitProcess, 0
    превращается при препроцессировании в
    Code (Text):
    1. push 0
    2. call dword [ExitProcess]
    Учись юзать отладчик.
    Почему надо использовать косвенную адресацию [] - так устроена таблица импорта PE файла
     
  9. RuAsm

    RuAsm Виктор

    Blog Posts:
    0
    Joined:
    Jul 16, 2006
    Messages:
    125
    Location:
    Спасск-D, Приморский край!
    Great тебе как всегда респект!

    [это изъятия адреса] знаю, а вот dword для чего не знаю, разьясни пожалуйста
     
  10. twgt

    twgt New Member

    Blog Posts:
    0
    Joined:
    Jan 15, 2007
    Messages:
    1,494
    Лольная темка :)
    дворд не обязательно писать в данном случае, это Great для наглядности так написал ;)
     
  11. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    Joined:
    Oct 2, 2003
    Messages:
    4,300
    Location:
    Ukraine
    Нда, товарищ и не подумал что-то почитать..
     
  12. wasm_test

    wasm_test wasm test user

    Blog Posts:
    0
    Joined:
    Nov 24, 2006
    Messages:
    5,582
    размер адреса в защищенном режиме, если в дескрипторе сегмента CS стоит бит D, равен 32 бита, или 4 байта или один DWORD.