Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2012, 11:44   #1
Xronikov
Пользователь
 
Аватар для Xronikov
 
Регистрация: 10.06.2012
Сообщений: 17
Сообщение Архитектура ЭВМ

Уважаемые эксперты надо составить и отладить программу учебной ЭВМ для решения следующей задачи. Три массива в памяти заданы начальными адресами и длинами. Вычислить и вывести на устройство вывода количество отрицательных чисел. Я написал программу, но она что не работает, а как исправить даже представления не имею. Кто в этом разбирается помогите пожалуйста!


Код:
rd #85
wr R1
rd #14
wr R2
call M
wr R6
rd #100
wr R1
rd #4
wr R2
call M
wr R7
rd #110
wr R1
rd #9
wr R2
call M
add R7
add R6
sub #0
out
hlt
M: rd @R1
wr R3
L2: rd -@R1
wr R4
sub R3
js L1
mov R3,R4
L1: jrnz R2,L2
rd R3
ret

Последний раз редактировалось ACE Valery; 10.06.2012 в 14:37.
Xronikov вне форума Ответить с цитированием
Старый 10.06.2012, 14:38   #2
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Не флудите. Тему надо нормально называть и ошибки описывать - тогда больше шансов, что помогут
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 10.06.2012, 14:39   #3
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Цитата:
я написал программу
если вы её действительно написали, то объясните, что делают эти 3 команды:

Код:
rd #14
wr R2

L2: rd -@R1
если сможете объяснить, то постараюсь помочь и с остальным )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 10.06.2012, 15:37   #4
Xronikov
Пользователь
 
Аватар для Xronikov
 
Регистрация: 10.06.2012
Сообщений: 17
По умолчанию

rd #14
wr R2 -это я задал длину массива
rd -@R1 - это чтение и модификация адреса массива.
Xronikov вне форума Ответить с цитированием
Старый 10.06.2012, 15:49   #5
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

ок, тогда вам подсказка: вы зачем-то находите и возвращаете максимальный (вроде как, а может и минимальный) элемент массива. А ваша задача посчитать количество отрицательных элементов в переданном массиве. Т.е. цикл по массиву у вас верный, только внутри цикла происходит не то, что нужно. Обнулите R4 перед циклом, далее сравнивайте очередной элемент с 0. Если он меньше, увеличивайте R4 на 1. Подпрограмма должна возвращать итогове R4. Всё остальное вроде правильно (кроме sub #0, зачем оно нужно, фиг знает).
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 10.06.2012, 16:21   #6
Xronikov
Пользователь
 
Аватар для Xronikov
 
Регистрация: 10.06.2012
Сообщений: 17
По умолчанию

спасибо большое за помощь)
Xronikov вне форума Ответить с цитированием
Старый 10.06.2012, 17:11   #7
Xronikov
Пользователь
 
Аватар для Xronikov
 
Регистрация: 10.06.2012
Сообщений: 17
По умолчанию

если я правильно понял, то должно вот так получиться?

Код:
rd #85
wr R1
rd #14
wr R2
call M
wr R6
rd #100
wr R1
rd #4
wr R2
call M
wr R7
rd #110
wr R1
rd #9
wr R2
call M
add R7
add R6
out
hlt
M: rd @R1
wr R3
L2: rd -@R1
jns L1
rd R4
add #1
wr R4
mov R3,R4
L1: jrnz R2,L2
rd R3
ret

Последний раз редактировалось ACE Valery; 10.06.2012 в 18:18.
Xronikov вне форума Ответить с цитированием
Старый 10.06.2012, 19:16   #8
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

не совсем, я себе предствалял это в виде:

Код:
M: 
  rd R4  // очистим R4
  sub R4
  wr R4

L2:
  rd -@R1
  jns L1  // я не уверен, что rd выставляет флаги!

  rd R4
  add #1
  wr R4


L1:
  jrnz R2,L2

  rd R4 // возвращаем R4
  ret
(первый раз в глаза вижу такой ассемблер, так что за 100% работоспособность не ручаюсь).
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 11.06.2012, 09:36   #9
Xronikov
Пользователь
 
Аватар для Xronikov
 
Регистрация: 10.06.2012
Сообщений: 17
По умолчанию

Спасибо большое. Все правильно работает!
Xronikov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Архитектура ПК Veselyn Помощь студентам 2 24.07.2012 14:39
архитектура... Аня Кольничук Помощь студентам 7 16.05.2012 07:45
Архитектура ВТ. boris_nikolaenko Помощь студентам 2 23.01.2012 10:36
Архитектура компьютера b@kemono Помощь студентам 7 02.06.2011 20:36
Синтез логических узлов ЭВМ (логические основы ЭВМ) Одинокая Волчица Фриланс 7 26.04.2011 06:50