Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Ассемблер? Это просто! Учимся программировать


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Коцюрбенко Алексей aka Жерар
Статус: Академик
Рейтинг: 3796
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2526
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2128
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Assembler (Ассемблер)

Номер выпуска:1503
Дата выхода:02.02.2012, 14:30
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:140 / 47
Вопросов / ответов:1 / 1

Консультация # 185321: Уважаемые эксперты! Пожалуйста, ответьте на вопрос: есть следующая задача: В хранимом ОЗУ с адреса 0ВАСН массиве из 80 чисел в прямом коде найти наибольшее число и выдать на УВВ 9. Готовность устройства вывода задается “1” в старшем разряде устройства ввода №8. есть готовый алгоритм и программа: а в рецензии написали: В Вашем алгор...


Консультация # 185321:

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
есть следующая задача:
В хранимом ОЗУ с адреса 0ВАСН массиве из 80 чисел в прямом коде найти наибольшее число и выдать на УВВ 9. Готовность устройства вывода задается “1” в старшем разряде устройства ввода №8.

есть готовый алгоритм и программа:
а в рецензии написали: В Вашем алгоритме 6-8 блоки неверны
помогите сделать так, чтоб правильно было



Программа:

К1: MVI B, 50H
K2: LXI H, 0ВАС
K3: MOV A, M
K4: M1: INX H
K5: SUB M
K6: MOV A, M
K7: M2: DCP B
К8: JNZ M1
K9: MOV B, A
K10: M3: IN 8
K11: JNC M3
K12: RRC
K13: JNC M3
K14: MOV A, B
K15: OUT 9
HLT

Дата отправки: 30.01.2012, 13:54
Вопрос задал: Посетитель - 363279 (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Зенченко Константин Николаевич (Модератор):

Здравствуйте, Посетитель - 363279!

Исправленный вариант:

Код :
К01:	MVI	B, 50H
K02:	LXI	H, 0ВАСH
K03:	MOV	A, M
K04:M1:	INX	H
K05:	CP	M;FL<=A-M
K06:	JPP	M2;A>M
K07:	MOV	A, M
K08:M2:	DCR	B
К09:	JNZ	M1
K10:	MOV	B, A
K11:M3:	IN 	8
K12:	RRC;
K13:	JNC M3
K14:	MOV	A, B
K15:	OUT	9
	HLT

Отдельно замечания:
Блок №5 алгоритма - это не команда SUB, т.к. она изменяет как содержимое фалгов, так и содержимое самого регистра А. А это уже нарушение задания, т.к. в регистре А будет находится недостоверное значение. Там должна находится команда сравненния, работает она аналогично команде SUB(из А вычитается содержимое указанного регистра, устанавливаются соответственно флаги сравнения, НО содержимое регистра А остается без изменений). См. комментарий после точки с запятой.
Блок №6 алгоритма - в алгоритме переход на присвоение нового значения происходит если S=0, результат команды сравнения больше нуля или содержимое регистра А больше содержимого регистра М, но зачем присваивать явно меньшее значение, т.к. по заданию нужно: найти наибольшее число. Т.е. приведенная блок-схема ищет минимальное значение в массиве, а Вам необходимо в этом блоке поменять местами 0 и 1.
Блок №12 алгоритма - непонятно, что т акое СЛА: сдвиг линейный аккумулятора, сдвиг левый аккумулятора. В коде Вы используете команду циклического правого сдвига. К12 я оставил без изменений, но обращаю на это Ваше внимание.

ps:вопросы задавайте в мини-форум.
Удачи!

Консультировал: Зенченко Константин Николаевич (Модератор)
Дата отправки: 30.01.2012, 17:43
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное