PDA

Просмотр полной версии : Задачка на асемблере


i_am_banana
27.05.2007, 02:10
Очень нужна помощь в решении задачи (по курсу Логические Архитектуры-Моторолла)

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

scrat
27.05.2007, 02:43
я на счёт адресов не понял! почему $?

NetMan
27.05.2007, 03:07
Вероятно, что "$" означает hex...

_Great_
27.05.2007, 12:40
Регистра DO нету, а адреса в асме обозначаются как XXXXh. Это для начала.
Ну а сам код мегапростой. Насколько я понял, разрядность 16 бит, то есть у нас ДОС.
Поскольку сегмент не указан, будем считать его нулевым.

; сегмент
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

da_ff
27.05.2007, 12:58
автор видимо имеет ввиду программирование под процессоры моторолла там есть D0

_Great_
27.05.2007, 13:01
Это надо было указать)

i_am_banana
27.05.2007, 13:17
ну я указал вроде что под мотороллу )

_Great_
27.05.2007, 14:02
Хы) Ну тогда думайте сами. Я моторолловского асма не знаю, но подозреваю, что команды будут похожи )

!_filin_!
27.05.2007, 15:17
Асм он ведь как девушка...вроде уже и не одну ночь с ним провёл, а всё что то новоё узнаёш...
Кстати раз уж речь зашла о синтаксисе асма разработаного Мотороллой, не могли бы вы подсказать где поподробней можно почитать на ету тему?

Digimortal
27.05.2007, 15:46
>> автор видимо имеет ввиду программирование под процессоры моторолла там есть D0

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

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

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

i_am_banana
28.05.2007, 18:03
ну что ктонить может помочь?

taha
30.05.2007, 00:32
адреса в асме обозначаются как XXXXh

на фасм можно писать и $xxxx, иногда это удобней.. ибо если код начинается с буквы то нужно писать 0XXXh
кстати можно писть и СИподобно mov eax,0xYYY! Фасм ругаться не будет..

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

Darkweider
30.05.2007, 00:54
я знаю немного мотороллу ща попробую помочь...

Darkweider
30.05.2007, 00:57
Результат поместить в регист D0? что этот за регистр какая модель проца моторолла? Какой разрядности? Регистр D это тот который 16 разрядный? Архитектура микроконтроллера какая? Есть эмулятор одного микроконтроллера и описание команд могу скинуть на мыло...