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

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

  1. TRX.new

    TRX.new Member

    Joined:
    27 Apr 2009
    Messages:
    151
    Likes Received:
    21
    Reputations:
    0
    Всем добрый день, извините, если уже было, но интересует литература, которая наилучшим образом подходит для начала изучения ассемблера. Хотелось бы, чтоб книжки были актуальными. Прошу ответить тех, кто сам это все постигал по этим книгам...
     
  2. ntldr

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

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    Калашников
     
    2 people like this.
  3. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Когда я изучал ассемблер (да и до сих пор изучаю по немногу) то Калашников был мне не понятен, я взял эту "книжку" ->
    Дневник чайника, часть первая (http://cracklab.ru/rar/dl/CRACKLAB.rU_8.rar)

    Потом стало более менее понятно как устроен ассемблер, и взял книгу Калашникова
     
    1 person likes this.
  4. ntldr

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

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    если вообще не понимаешь в чем соль - вот эти статьи по порядку, я по ним учил
    http://wasm.ru/publist.php?list=22
     
  5. razb

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    Также Юрова стоит почитать.
     
  6. seet09

    seet09 Banned

    Joined:
    25 Sep 2009
    Messages:
    1
    Likes Received:
    4
    Reputations:
    0
    люди помогите срочно! надо из строки вида "login:pass" сделать строку вида "login"
    на дельфи. Вот код я писал но почему то делает только первый акк....
     
  7. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Код:
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var i,count:integer; m2:string;
    begin
    count:=memo1.lines.count-1;
    //Минус один -> потому что отсчет начинается от нуля
    for i:=0 to count do
    //Отсчет начинается от нуля в строках мемо
    begin
    m2:=memo1.lines[i];
    memo2.lines[i]:=copy(m2, 1, pos(':', m2)-1);
    //Копируем строку, первый параметр -> откуда копируем, второй -> с какого расположения символа начинаем копировать, третий -> сколько копируем
    //Ах да, чтобы копировать в memo2 в определенную строку в ней -> надо убедиться что она существует :), т.е. лучше копировать в memo1
    end;
    end;
    И в следуйщий раз смотри куда постишь
     
  8. REC0N

    REC0N New Member

    Joined:
    9 Oct 2009
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Дано последовательность слов разделенных запятыми, в конце точка.
    Удалить из последовательности слова которые встречаются больше 1 раза.
    Помогите плиззз...
     
  9. diakon2

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

    Joined:
    5 Jul 2008
    Messages:
    66
    Likes Received:
    2
    Reputations:
    0
    Помогите, у меня возникла проблема!!!!!!! При компилировании , ввожу одинаковое количество симвалов в 1й 2й и 3й строчке , выдает пральный результат , а вот если во 2й строке больше симвалов чем в 1й и 3й ,то при компилировании выдает только первую строчку ,а вторую пустую (если в 1й и 3й одинаковые числа) , а если разные числа также выдет только 1ю , а во второй ересь (


    my_strcpy.c
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    extern char* mystrcpy(char* dest, char* src);
    
    
    
    int main(int argc, char** argv) {
      printf("%s\n",mystrcpy(argv[1],argv[2]));
      printf("%s\n",mystrcpy(argv[3],argv[2]));
      return 0;
    }
    
    
    my_strcpy.s
    Code:
    .intel_syntax noprefix
    .globl mystrcpy
    .type mystrcpy, @function
    mystrcpy:      
        push ecx        
        push edx
        
        
        mov ecx, [esp+12]   
        mov edx, [esp+16]   
         
            
        next:
        mov al,[edx]
        mov [ecx],al
        cmp al,0
        jz done
        
        
        inc ecx
        inc edx
        jmp next
        
        done:
        mov eax, [esp+12]
        pop edx         
        pop ecx         
        ret
    
     
    #669 diakon2, 21 Jan 2010
    Last edited by a moderator: 21 Jan 2010
  10. Hiro Protagonist

    Joined:
    26 Aug 2009
    Messages:
    132
    Likes Received:
    24
    Reputations:
    -2
    2diakon2
    буфер ты затираешь какбэ )) поэтому и такой вывод =\
     
  11. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Что-то не могу найти информацию в интернете о том при каком условии происходит прыг jl

    Прошу помощи
     
  12. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    http://ref.x86asm.net/coder32.html
     
    _________________________
  13. Шухер

    Шухер New Member

    Joined:
    13 Dec 2009
    Messages:
    10
    Likes Received:
    1
    Reputations:
    0
    с ассемблером дела не имел. объясните какая цифра на что влият в размере формы, ее положения и т.д
    Code:
    DlgStatic 0,150,10,130,112,100
    или где можно почитать(ГУГЛ НЕ ПРЕДЛАГАТЬ!)
     
  14. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Для начала бы написал что за среда и какой именно асм.
    Судя по виду это не FASM потому как там по другому чуть.
    т.е. скорее всего masm32 ? юзаешь IDE или нет типа RAD ASM итд итп?
     
  15. Actor

    Actor New Member

    Joined:
    10 Jan 2010
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    проблема с WriteConsoleA

    установил masm32, отладчик OllyDbg и среду RadAsm. Для чтения выбрал книгу Крупника "Изучаем ассемблер". Возникла проблема с кодом:

    .386
    .model flat, stdcall
    option casemap:none
    ExitProcess proto :dword
    GetStdHandle proto :dword
    WriteConsoleA proto :dword, :dword,\
    :dword, :dword, :dword
    includelib \masm32\lib\kernel32.lib
    .data
    stdout dd ?
    msg db "My name is Vova", 0dh, 0ah
    cWritten dd ?
    .code
    start:
    invoke GetStdHandle, -11
    mov stdout, eax
    invoke WriteConsoleA, stdout, ADDR msg, sizeof msg,\
    ADDR cWriten, 0
    invoke ExitProcess, 0
    end start

    В теории, в консоли должен появиться текст "My name is Vova", но ничего нет.
    Прогнал ехе-шник в отладчике. Заметил вот что: при исполнении процедуры GetStdHandle значение регистра eax становиться равным 0, хотя в книжке сказано, что вроде должно быть 12 (или 0С). Пробовал сделать так:

    .data
    stdout dd 12

    а часть кода, где вызывается GetStdHandle, удалил.
    Все равно нет резутатa.

    Вопрос: где ошибка? как ее исправить? или я неправильно понял назначение процедуры GetStdHandle?
     
    #675 Actor, 2 Feb 2010
    Last edited: 2 Feb 2010
  16. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    GetStdHandle возвращет дискриптор ввода вывода.
    -11 это STD_OUTPUT_HANDLE

    какое значение - это не важно.
    т.е. все значения кроме INVALID_HANDLE_VALUE считаются нормальными.
    будут
    Ты как прогу компилил? Под Win32 или под Консоль?
    Нужно чтобы подконсоль компили. типа черное окошко
     
    #676 slesh, 2 Feb 2010
    Last edited: 2 Feb 2010
  17. Шухер

    Шухер New Member

    Joined:
    13 Dec 2009
    Messages:
    10
    Likes Received:
    1
    Reputations:
    0
    среда виндовс.устанавливал масм32 версии 9. и ничего более :)
    мне просто нужно код подправить, сказали что его масмом компилить нужно
     
  18. expee

    expee New Member

    Joined:
    2 Feb 2010
    Messages:
    23
    Likes Received:
    1
    Reputations:
    0
    Насчет DlgStatic - первая ссылка в гугле - сайт Kaimi: http://kaimi.ru/2009/05/210/ и там есть комментарии :)
     
  19. Шухер

    Шухер New Member

    Joined:
    13 Dec 2009
    Messages:
    10
    Likes Received:
    1
    Reputations:
    0
    ничего полезного там не нашел :)
     
  20. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Да ладно?
     
    _________________________