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

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

  1. aka_k4

    aka_k4 Member

    Joined:
    5 Feb 2009
    Messages:
    107
    Likes Received:
    30
    Reputations:
    0
    А Асм для микроконтроллеров тоже тут обсуждается?
     
  2. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 aka_k4 Ты пиши, там с ориентируются глюди, главное указывай для какого контроллера, то на рзный контроллерах кодится чуть по разному.
     
  3. Lee_fx

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

    Joined:
    27 Sep 2008
    Messages:
    90
    Likes Received:
    14
    Reputations:
    0
    Доброго времени суток, такой вопрос:
    Компилятор MASM, как записать в регистры 2 числа с консоли и как вывести на консоль содержимое регистра?
     
  4. zeppe1in

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

    Joined:
    12 Jul 2006
    Messages:
    343
    Likes Received:
    66
    Reputations:
    18
    Lee_fx как то так.
    Code:
        .486
        .model flat, stdcall
        option casemap :none 
    
    
    
        include \masm32\include\windows.inc
        include \masm32\include\masm32.inc
        include \masm32\include\kernel32.inc
        include \masm32\macros\macros.asm
    
        includelib \masm32\lib\masm32.lib
        includelib \masm32\lib\kernel32.lib
    
    .data?
    
    szBuff	db 12 dup (?)
    Mult dd ?
    
    
        .code
    
    start:
    
        mov eax, input("Enter number here ",62," ")
        
        call Str2IntProc
        nop
        nop
        nop
        mov edx, offset szBuff
        call Int2StrProc
        
        print offset szBuff
       
        invoke Sleep,2000d
        
        exit
    
    Int2StrProc proc uses esi edi
    ;eax = BinVal
    ;edx = Address of Buffer
    
    	mov edi, edx
    	mov ecx, 10
    	mov esi, offset szBuff+11
    
    @@:
    	xor edx,edx
    	div ecx
    	or dl,30h
    	dec esi
    	mov [esi],dl
    	test eax, eax
    	jnz @B
    
    	mov ecx, offset szBuff+12
    	sub ecx, esi
    	rep movsb
    	mov eax, edi
    	dec eax
    	ret
    
    Int2StrProc endp
    
    
    Str2IntProc proc uses edi ebx
    ;eax=Pointer to null-terminated string
    
    	mov ecx, -1
    	mov edi, eax
    	xor eax, eax
    	repne scasb
    	not ecx
    	dec ecx
    	jz @@Exit
    	sub edi,2
    
    	xor ebx,ebx
    	mov Mult,1
    @@1:
    	xor eax,eax
    	mov al, [edi]
    
    	and al, 0Fh
    
    	mul Mult
    	add ebx, eax
    
    	imul edx, Mult, 10
    	mov Mult, edx
    	dec edi
    	dec ecx
    	jnz @@1
    	mov eax,ebx
    @@Exit:
    	ret
    
    Str2IntProc endp
    
    
    end start
    при компиляции /SUBSYSTEM:CONSOLE
     
    #504 zeppe1in, 19 Mar 2009
    Last edited: 19 Mar 2009
    1 person likes this.
  5. pauk_pv

    pauk_pv New Member

    Joined:
    8 Apr 2009
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Такой вопрос: как на gas компилить файлы не под линух, желательно под нон ос, то есть ни под какую операционную систему, какие ключи должны быть, и ещё часто попадаются упоминания о gas под windows/dos, но поиски ни к чему не привели, может кто знает где достать?
     
  6. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 pauk_pv вообще любой компилятор может компилить в чистый бинарный код.
    Вот и компиль так. Это типа налогия с COM файлами но тока не нужно делать org 100h
     
  7. pauk_pv

    pauk_pv New Member

    Joined:
    8 Apr 2009
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    2 slesh ну это мне понятно, но из ключей я пока знаю только -s и -o , а вся доступная документация которая мне попадалась только на английском , а я к сожалению английский не знаю, не могли подсказать ключи? И в силе вторая часть вопроса
     
  8. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    загони документацию в переводчик. А если это сайт то прогони через гугль транслятор )
     
  9. pauk_pv

    pauk_pv New Member

    Joined:
    8 Apr 2009
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    2 slesh , спасиб, сам до такого простого способа и не смог додуматься, скоро выложу результат, вдруг кому понадобится. теперь остался только один вопрос - кто-нибудь знает о существовании gas под windows, под dos недавно попался, но он под защищенный dos - dpmi, и под виндой не работает, ищу gas под windows, или другой ассемблер с синтаксисом AT&T
     
  10. razb

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    Есть в пакете MinGW
     
  11. messagedb

    messagedb New Member

    Joined:
    17 Apr 2009
    Messages:
    18
    Likes Received:
    1
    Reputations:
    0
    ничего не работает под ДОС, к примеру первая прога из книги Калашникова Ассемблер это просто, запускаю а она выводит каракули. В чем может быть проблема? Может с самим досом чото нужно делать...???
     
  12. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Если выводиш русский текст, то быдут каракули из-за кодировки.
    Ты хотябы сначало код показалбы
     
  13. messagedb

    messagedb New Member

    Joined:
    17 Apr 2009
    Messages:
    18
    Likes Received:
    1
    Reputations:
    0

    Code:
    CSEG segment
    org 100h
    
    Begin:
    
    	mov ah,9
    	mov dx,offset Message
    	int 21h
    	
    	int 20h
    	
    Message db 'Hello, world!&'
    
    CSEG ends
    end Begin
     
    #513 messagedb, 21 Apr 2009
    Last edited: 21 Apr 2009
  14. zeppe1in

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

    Joined:
    12 Jul 2006
    Messages:
    343
    Likes Received:
    66
    Reputations:
    18
    messagedb, а нужно именно под дос? а то предлагаю забить на Калашникова и юзать Iczelion'а) http://wasm.ru/publist.php?list=1
     
  15. messagedb

    messagedb New Member

    Joined:
    17 Apr 2009
    Messages:
    18
    Likes Received:
    1
    Reputations:
    0
    У Iczelion'a не от начала идет все, сразу с winapi. А мне нужно сначала) . Так нельзя с доськой чото зделать чтоб он заработал?
     
  16. Balvan

    Balvan Member

    Joined:
    11 Mar 2009
    Messages:
    66
    Likes Received:
    5
    Reputations:
    0
    :confused: Вот возникло 2 вопроса:
    1) Возможно ли получить асм код программы через какой нить дизассемблер, а потом его подключить к своему коду например на VC? Как это (лучше)
    делать?

    2) Может есть у кого "готовый к применению" обфускатор асм кода?! поделитесь плиииз... :rolleyes:
     
  17. -m0rgan-

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

    Joined:
    29 Sep 2008
    Messages:
    514
    Likes Received:
    170
    Reputations:
    17
    Открывай прогу в дизассемблеере и смотри код, но там он не совсем как при написании, но с алгоритмом разобратся можно!
     
  18. SmanxX1

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

    Joined:
    4 Aug 2008
    Messages:
    27
    Likes Received:
    6
    Reputations:
    2
    Можно вытащить всю секцию кода, вставить себе и юзоть. XD
     
  19. Balvan

    Balvan Member

    Joined:
    11 Mar 2009
    Messages:
    66
    Likes Received:
    5
    Reputations:
    0
    Мда, тупой я задал вопрос...
    Если бы я не знал что так можно, то я бы не спрашивал)
    Я просто думал может пару примерчиков кините, ну да ладно буду толстые книги читать! :)

    А по 2ому "вопросу" есть что нибудь?! ;)
     
  20. iv.

    iv. Elder - Старейшина

    Joined:
    21 Mar 2007
    Messages:
    1,183
    Likes Received:
    438
    Reputations:
    107
    "подключить" можно, только работать не будет =\
    зачем тебе обфускатор асм кода? чтобы самому не разобраться в своем коде?
    а если для того, чтобы усложнить жизнь взломщику, то чем тебя не устраивают т.н. "протекторы"?
     
    1 person likes this.