Как указать транслятору параметры сегмента ?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Welemir, 31 Jul 2010.

  1. Welemir

    Welemir Elder - Старейшина

    Joined:
    10 Jan 2008
    Messages:
    229
    Likes Received:
    11
    Reputations:
    -4
    Простите за тему,но в топе по новичкам не отвечают.Так вот.Возьмём тот же мой кодик:


    Code:
    
    
    .386
    .model FLAT,stdcall
    
    
    .data
    
    s dd 50;
    
    
    .code
    
    start:
    
    mov eax,5;
    
    end start
    
    end;
    
    
    

    изменим .data и .code на _DATA SEGMENT и _CODE SEGMENT(или текст) и попытаемся поставить,скажем, Align 4 Use '32'.Да любой параметр.Выдаётся по 3-4 ошибки.


    Вот лог:


    C:\WinAsm\Masm32\bin\ML /c /coff /Cp /nologo /I"C:\WinAsm\Masm32\include" "C:\WinAsm\Projects\a.asm"

    Assembling: C:\WinAsm\Projects\a.asm
    C:\WinAsm\Projects\a.asm(5) : error A2008: syntax error : ALIGN
    C:\WinAsm\Projects\a.asm(7) : error A2034: must be in segment block
    C:\WinAsm\Projects\a.asm(10) : fatal error A1010: unmatched block nesting : _DATA


    Код такой:



    .386
    .model FLAT,stdcall


    _DATA SEGMENT ALIGN 16

    s db 'opa';


    _DATA ENDS

    .code

    start:

    mov s,5;
    ret;

    end start;

    end;


    Всё по учебнику,парни,так что не бейте тапками.Писалось также,что некоторые трансляторы требуют определенной очережности параметров.Хорошо.Оставить один элайен,и всё равно он будет,зараза,ругаться.Почему ?! Так придираються проги к моему коду.Ужс.
     
  2. Welemir

    Welemir Elder - Старейшина

    Joined:
    10 Jan 2008
    Messages:
    229
    Likes Received:
    11
    Reputations:
    -4
    Судя по ошибкам,транслятор не понимает,что _дата есть сегмент.Как это объяснить ?(