Страница 1 из 2
Робота с масивами.
Добавлено: 02 ноя 2008, 10:06
BBC
Последовательно переписать все значения большие А0 из одного массива с 16 элементами в другой,остаток массива заполнить нулями.
Вывести количество таких значений.
01 A3 00 FE 77 01 ....
результат
A3 FE 00 00 00 ....
Re: Робота с масивами.
Добавлено: 02 ноя 2008, 19:50
Naeel Maqsudov
01, A3, FE... это Byte или String?
Ну просто удивительно, как ухитряются в этом разделе люди сделать все возможное, чтобы иметь максимальное количесво шансов получить неправильное решение!
Re: Робота с масивами.
Добавлено: 02 ноя 2008, 23:55
BBC
Откровенно говоря я не знаю.Скорее всего Byte.Но вот в чем дело.Я бы не обращался если бы препод обьяснил бы хотябы что нибуть.Но он даже не дал синтаксиса.Плюс у нас в универе работают на Assembler для 86 процессора в котором нету регистров AX BX,а есть только AL BL CL DL.Вобщем в отличии от С++ я здесь ничего не понимаю, и буду крайне признателен если мне помогут хоть чем нибуть.
Re: Робота с масивами.
Добавлено: 03 ноя 2008, 01:22
Naeel Maqsudov
Если нет регистрорв AX, BX, DX, то это не может быть x86-ым процессором!
Что-то тут не чисто...
Скажите точно, какие регистры есть?
Для работы с массивами нам понадобятся индексные SI, DI... они-то есть?
Re: Робота с масивами.
Добавлено: 03 ноя 2008, 10:49
BBC
http://www.softwareforeducation.com/-вот это ссылка на закачку того симулятора на котором мы работаем в универе.В разделе Microprocessor Simulator есть скрин сейв того симулятора.Возможно посмотрев на него ты сам все поймешь.К моему большому сожалению я немогу даже ответить на твой вопрос по поводу индексных SI, DI,поскольку не знаю где они находятся.А сам симулятор походу был написан студентом нашего универа гдето 3-4 года назад-это была его защита дипломной и программу оставили в универе как учебное пособие.Если что разберешь пиши, поскольку боюсь что сам не справлюсь.Заранее извиняюсь если по правилам форума ссылки на программы оставлять нельзя.
Re: Робота с масивами.
Добавлено: 03 ноя 2008, 11:54
Serge_Bliznykov
" писал(а):Если нет регистрорв AX, BX, DX, то это не может быть x86-ым процессором!
очень похоже на ассемблер 580 процессора...
Re: Робота с масивами.
Добавлено: 03 ноя 2008, 12:24
BBC
Как считаете на нем реально написать выше упомянутую программу.
Re: Робота с масивами.
Добавлено: 04 ноя 2008, 13:11
Naeel Maqsudov
согласно документации там должна работать индексная адресация
mov al,[20+bl]
но почему-то не работает

не ассемблируется даже.
BBC, у вас ассемблируется такая строчка?
Скачал последнюю версию упомянутого симулятора, даже зарегистрировал ее...
Но она как-то неадекватно себя ведет:
1) CMP al, A0 - не влияем на OF, а только на SF и ZF
2) SUB cl, A0 -
при вычитании
07-A0 - флаги S=0, O=0
7F-A0 - S=1, O=1
80-A0 - S=1, O=0
В результате не пойму, как сделать проверку AL>=A0
CMP AL,A0
JO noaddtoarray2
Дает неожиданные результаты, но в остальном все работает
Код: Выделить всё
entry:
jmp start
array1: ;address - 02
db 07 db 7F db 80 db FF db A0 db A1 db 9F db 16
db E0 db EE db 20 db 30 db 99 db AE db F1 db 66
array2: ;address - 12
db ff db ff db ff db ff db ff db ff db ff db ff
db ff db ff db ff db ff db ff db ff db ff db ff
start:
mov bl,02 ; base of array1
mov dl,12 ; base of array2
mov cl,a0
loop:
cmp bl,12 ; закончился ли исх.массив
jz fillzero ; если да, то AL=0
mov al,[bl] ; иначе AL=array1[bl]
inc bl
cmp al,a0
jo noadd2arr2
jmp add2arr2
fillzero:
xor al,al
mov al,0
add2arr2:
mov [dl],al ;arra2[dl]=AL
inc dl
noadd2arr2:
cmp dl,22 ; если не выщли за границу array2
jnz loop ; то сначала
end
Re: Робота с масивами.
Добавлено: 04 ноя 2008, 18:55
BBC
К сожалению нет.Выдает следующее: Expected a hexadecimal number, AL,BL,CL, or DL . Got 20+BL
Re: Робота с масивами.
Добавлено: 04 ноя 2008, 18:59
Naeel Maqsudov
BBC писал(а):Как считаете на нем реально написать выше упомянутую программу.
Прикольный вообще-то симулятор.

, только памяти и регистров мало.
Периферия прикольная. Помимо клавы и экрана там есть нагревательное оборудование, лифт, 2 светофора, газорязрядный индикатор и еще какая-то фигнюшка
