[ Assembler ] — начинающим: задаем вопросы

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by !_filin_!, 25 May 2007.

  1. DooD

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

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    450
    Reputations:
    288
    в твоем случае:
    создаешь файл rsrc.rc кладется в туже папку где и сама среда .
    далее сам исходник проги открываешь в среде,жмешь компилировать-масм-rc если бинарник не создался нажимаешь треугольничек вылезет окошко которое покажет ошибки если таковые имеются.
    в rsrc.rc пишешь
    Code:
    #define IDM_TEST 1
    #define IDM_HELLO 2
    #define IDM_GOODBYE 3
    #define IDM_EXIT 4
    
    FirstMenu MENU
    {
    	POPUP "&PopUp"
    	{
    		MENUITEM "&Say hello", IDM_HELLO
    		MENUITEM "Say &goodbye", IDM_GOODBYE
    		MENUITEM SEPARATOR
    		MENUITEM "E&xit", IDM_TEST
    	}
    	MENUITEM "&Test", IDM_TEST
    }
    
     
    #901 DooD, 14 Mar 2011
    Last edited: 14 Mar 2011
  2. DooD

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

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    450
    Reputations:
    288
    короче.облегчил тебе совсем задачу.вот тебе сорцы компилятор линковщик,ресурсо-создатель.запускаешь батник make появится бинарник(srcfile.exe).разбирайся что не так у тебя в коде.и попробуй поюзать мою IDE/ для начала тебе очень поможет.если нехочешь мучатся со всякими батниками и т.п.все сделано специально для облегчения программирования на ассемблере.
    http://zalil.ru/30673114 сдесь все что тебе надо.
    еще советую почитать зубкова.начни хотя бы с чего то проще раз ето трудно дается.
     
    #902 DooD, 15 Mar 2011
    Last edited: 15 Mar 2011
  3. mmoskva2011

    mmoskva2011 New Member

    Joined:
    13 Mar 2011
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Друзья, давайте вместе изучать ассемблер, я имею ввиду онлайн конференции устраивать. Ведь так мы повысим эффективность обучения в разы. Я понимаю, что можно и так, но только подумайте каких результатов мы могли бы достичь вместе. Ведь не зря даже у короля артура был круглый стол ;) Подумайте над моим предложением

    602566434 - догадайтесь что это :)
     
  4. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    вам мало темы в болталке?

    здесь люди имеющие опыт им делятся, а ваше предложение не для этого раздела.
     
  5. finnk

    finnk New Member

    Joined:
    1 Jul 2010
    Messages:
    30
    Likes Received:
    1
    Reputations:
    0
    Есть следующий код
    Code:
    j:= 1;
      for i:= n-shift+1 to n do
      begin
        temp_mas[j]:= mas[i];
        inc(j);
      end;
    помогите пожалуйста заменить тело цикла на ассемблерную вставку
     
  6. #andrew#

    #andrew# Elder - Старейшина

    Joined:
    24 Aug 2010
    Messages:
    45
    Likes Received:
    7
    Reputations:
    11
    пожалуйста помогите решить пару задач на nasm....могу скинуть их в ПМ,тут выкладывать не хочу,а то препод увидит...пожлста оч надо!
     
  7. bad_boy

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

    Joined:
    30 Dec 2004
    Messages:
    187
    Likes Received:
    33
    Reputations:
    3
    #andrew#, а ты их не выкладывай, а, раз тебе нужна помощь, спрашивай то, чего не знаешь. Если не знаешь ничего, тут можно рассмотреть другие варианты(кушать хотят все).
     
  8. #andrew#

    #andrew# Elder - Старейшина

    Joined:
    24 Aug 2010
    Messages:
    45
    Likes Received:
    7
    Reputations:
    11
    bad_boy я понял тебя,скока будет это стоить?напиши аську свою
     
    #908 #andrew#, 23 Mar 2011
    Last edited: 8 Oct 2011
  9. emnm

    emnm New Member

    Joined:
    16 Nov 2010
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Помогите написать код для выражения, в masm


    (2*c+a-21) / (c/a*b+1);
     
  10. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    emnm, я с сопроцессором не особо знаком, но некоторыми познаниями все таки располагаю. Как вариант можно вот так (результат - дробное число, округленное до сотых):

    Code:
    .386
    .model flat, stdcall
    
    option casemap:none
    include \masm32\include\windows.inc
    include \masm32\include\kernel32.inc
    include \masm32\include\fpu.inc
    include \masm32\include\user32.inc
    
    includelib \masm32\lib\fpu.lib
    includelib \masm32\lib\kernel32.lib
    includelib \masm32\lib\user32.lib
    
    .data
    [COLOR=YellowGreen]result1 TBYTE ?
    result2 dd ?[/COLOR]
                db 0
    .code
    
    [COLOR=YellowGreen]calculate proc a1:DWORD,b1:DWORD,c1:DWORD
    local temp:DWORD,increment:DWORD
    
    	mov increment,1
    	
    	mov eax,c1
    	shl eax,1d
    	add eax,a1
    	sub eax,21d
    	mov temp,eax
    	
    	finit
    	fild temp
    	fild c1
    	fild a1
    	fdiv
    	fild b1
    	fmul
    	fild increment
    	fadd
    	fdiv
    	fstp result1
    	
    	mov eax,SRC1_REAL
    	or eax,SRC2_DIMM
    	push eax
    	push offset result2
    	push 2
    	push offset result1
    	call FpuFLtoA
    	
    	ret
    calculate endp[/COLOR]
    
    start:
    	push 10d [COLOR=DarkOrange][B]; значение c[/B][/COLOR]
    	push 20d [COLOR=DarkOrange][B]; значение b[/B][/COLOR]
    	push 30d [COLOR=DarkOrange][B]; значение a[/B][/COLOR]
    	[COLOR=YellowGreen]call calculate[/COLOR]
    	
    	push 0
    	push offset result2
    	push offset result2
    	push 0
    	call MessageBoxA
    	
    	push 0
    	call ExitProcess
    end start
     
    #910 Sams, 26 Mar 2011
    Last edited: 26 Mar 2011
    2 people like this.
  11. DooD

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

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    450
    Reputations:
    288

    используй cmp и условный переход
     
  12. petryxa-mixa

    petryxa-mixa Member

    Joined:
    8 Jun 2010
    Messages:
    174
    Likes Received:
    7
    Reputations:
    0
    Всем здравствовать!!!
    Вообщем вопрос такой!
    где найти листинг всех ошибок при ассемблирование?(желательно под MАSM611)


    p.s. можно конечно и под другие ассемблеры....
     
    #912 petryxa-mixa, 27 Mar 2011
    Last edited: 27 Mar 2011
  13. DooD

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

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    450
    Reputations:
    288
    когда ассемблируешь тебе и так выдадутся ошибки,если они есть.
     
  14. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    ftp://docenti.ing.units.it/arc_stud/Carrato_Giulio/Calcolatori_Elettronici_2/Calc2_Disk/MasmRef.doc
     
    2 people like this.
  15. petryxa-mixa

    petryxa-mixa Member

    Joined:
    8 Jun 2010
    Messages:
    174
    Likes Received:
    7
    Reputations:
    0
    Хм опять не правильно задал вопрос...
    Мне нужны все ошибки с их пояснением!

    что то типа еррор такая то и возможные неполадки при ассемблирование...
     
  16. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    Так masm611 так и выдает. Пишет код ошибки; строка, в которой допущена ошибка; краткое содержание - суть самой ошибки.
     
  17. #andrew#

    #andrew# Elder - Старейшина

    Joined:
    24 Aug 2010
    Messages:
    45
    Likes Received:
    7
    Reputations:
    11
    есть такие кто nasm знает???заплачу за помощь,пишите в ПМ либо в асю...
     
  18. Konfuz™

    Konfuz™ New Member

    Joined:
    19 May 2010
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    только начинаю писать на асемблере, компилирую в fasm...

    как записать такую конструкцию

    ...
    _password db 'qwerty', 0
    ...

    чтобы после кмпиляции, после открытия исходного кода в блокноте, невозможно было найти значение переменной _password :)
     
  19. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    Konfuz™,
    Только зашифровать строку, а затем в ходе выполнения программы её расшифровывать. Самое элементарное использовать логическое побитовое исключающее ИЛИ - xor. Вот недавно обсуждалась тема. Алгоритм и рабочую процедуру я предоставил _http://forum.antichat.ru/showthread.php?p=2576359#post2576359

    P.S.
    вместо этой фразы всегда подставляй "в HEX-редакторе". Так солиднее ;)
     
    #919 Sams, 31 Mar 2011
    Last edited: 31 Mar 2011
  20. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    Konfuz™,
    Увы, FASM не люблю, потому могу предоставить на MASM.

    Вначале шифруем строку "qwerty" алгоритмом, что я давал выше. Ключ возьмем к примеру 10. В итоге получается такая последовательность байт:
    Code:
    7Bh,7Dh,6Fh,78h,7Eh,73h
    Теперь вместо
    Code:
    _password 'qwerty',0
    нужно подставить зашифрованную строку

    Code:
    _password db 7Bh,7Dh,6Fh,78h,7Eh,73h,0
    Для того, что бы использовать строку _password в дальнейшем, в начале программы её нужно расшифровать опять всё тем же алгоритмом с ключом 10.
    Code:
    .386
    .model flat, stdcall
    
    option casemap:none
    include \masm32\include\windows.inc
    include \masm32\include\kernel32.inc
    include \masm32\include\user32.inc
    
    includelib \masm32\lib\kernel32.lib
    includelib \masm32\lib\user32.lib
    
    .data
    _password db 7Bh,7Dh,6Fh,78h,7Eh,73h,0
    	 
    .code
    start:
    	mov esi,offset _password
    	mov edi,offset _password
    	mov ecx,sizeof _password
    	dec ecx
    
    m1:
    	lodsb
    	xor al,[COLOR=DarkOrange]10d[/COLOR] [COLOR=Lime];ключ шифрования[/COLOR]
    	stosb
    	loop m1
    	
            [COLOR=Lime];все, строка расшифрована и имеет вид 'qwerty'
            ;можно нормально с ней работать[/COLOR]
    
    	push 0
    	call ExitProcess
    end start
     
    #920 Sams, 31 Mar 2011
    Last edited: 31 Mar 2011