Задачка на асемблере

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

  1. i_am_banana

    i_am_banana Member

    Joined:
    4 Feb 2007
    Messages:
    16
    Likes Received:
    5
    Reputations:
    0
    Очень нужна помощь в решении задачи (по курсу Логические Архитектуры-Моторолла)

    Первый элемент массива чисел А состоящего из байт,расположен по адресу $2500.Первый элемент массива чисел В,состоящего из байт,расположен по адресу $1600.Количество элементов в каждом из массивов -30.Составить программу выполняющую подсчёт совпадающих элементов массивов,т.е таких для которых A=B.Результат поместить в регист D0
    Заранее благодарен -)
     
    1 person likes this.
  2. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    я на счёт адресов не понял! почему $?
     
  3. NetMan

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

    Joined:
    9 Feb 2004
    Messages:
    121
    Likes Received:
    37
    Reputations:
    34
    Вероятно, что "$" означает hex...
     
  4. _Great_

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

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,118
    Reputations:
    1,139
    Регистра DO нету, а адреса в асме обозначаются как XXXXh. Это для начала.
    Ну а сам код мегапростой. Насколько я понял, разрядность 16 бит, то есть у нас ДОС.
    Поскольку сегмент не указан, будем считать его нулевым.

    Code:
    ; сегмент
    mov ax, 0
    mov ds, ax
    mov es, ax
    ; адреса буферов
    mov si, 2500h
    mov di, 1600h
    mov cx, 30 ; число элементов массива
    xor dx, dx  ; тут будет число совпавших элементов
    
    ; цикл сравнения
    l:
    cmpsb ; сравнение
    jnz @F ; не совпало? проскочим
    inc dx ; если совпало, увеличим dx на 1
    @@: loop l  ; сравниваем дальше
    
    ; готово. результат в DX
    
    Результат в DX
     
    1 person likes this.
  5. da_ff

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

    Joined:
    11 Jul 2006
    Messages:
    118
    Likes Received:
    22
    Reputations:
    26
    автор видимо имеет ввиду программирование под процессоры моторолла там есть D0
     
  6. _Great_

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

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,118
    Reputations:
    1,139
    Это надо было указать)
     
  7. i_am_banana

    i_am_banana Member

    Joined:
    4 Feb 2007
    Messages:
    16
    Likes Received:
    5
    Reputations:
    0
    ну я указал вроде что под мотороллу )
     
  8. _Great_

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

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,118
    Reputations:
    1,139
    Хы) Ну тогда думайте сами. Я моторолловского асма не знаю, но подозреваю, что команды будут похожи )
     
  9. !_filin_!

    !_filin_! Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    86
    Likes Received:
    40
    Reputations:
    16
    Асм он ведь как девушка...вроде уже и не одну ночь с ним провёл, а всё что то новоё узнаёш...
    Кстати раз уж речь зашла о синтаксисе асма разработаного Мотороллой, не могли бы вы подсказать где поподробней можно почитать на ету тему?
     
  10. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    >> автор видимо имеет ввиду программирование под процессоры моторолла там есть D0

    скорее под микроконтроллеры.. )

    >> не могли бы вы подсказать где поподробней можно почитать на ету тему?

    есть книга Шагурина - называется "Современные микроконтроллеры и микропроцессоры Motorola. Справочник".. я ее видел тока в бумажном варианте, но, возможно, найдется и в эл.виде..
     
  11. i_am_banana

    i_am_banana Member

    Joined:
    4 Feb 2007
    Messages:
    16
    Likes Received:
    5
    Reputations:
    0
    ну что ктонить может помочь?
     
  12. taha

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

    Joined:
    20 Aug 2006
    Messages:
    399
    Likes Received:
    330
    Reputations:
    251
    на фасм можно писать и $xxxx, иногда это удобней.. ибо если код начинается с буквы то нужно писать 0XXXh
    кстати можно писть и СИподобно mov eax,0xYYY! Фасм ругаться не будет..

    Great указывай какой асм =))))))))
     
  13. Darkweider

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

    Joined:
    8 Feb 2007
    Messages:
    142
    Likes Received:
    13
    Reputations:
    0
    я знаю немного мотороллу ща попробую помочь...
     
  14. Darkweider

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

    Joined:
    8 Feb 2007
    Messages:
    142
    Likes Received:
    13
    Reputations:
    0
    Результат поместить в регист D0? что этот за регистр какая модель проца моторолла? Какой разрядности? Регистр D это тот который 16 разрядный? Архитектура микроконтроллера какая? Есть эмулятор одного микроконтроллера и описание команд могу скинуть на мыло...
     
    #14 Darkweider, 30 May 2007
    Last edited: 30 May 2007