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

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


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

Лучшие эксперты в разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 674
∙ повысить рейтинг »
Evgen aka Chuma
Статус: 6-й класс
Рейтинг: 52
∙ повысить рейтинг »
quirck
Статус: 1-й класс
Рейтинг: 0
∙ повысить рейтинг »

∙ Assembler

Номер выпуска:1677
Дата выхода:20.12.2017, 14:15
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:50 / 18
Вопросов / ответов:1 / 1

Консультация # 192084: Здравствуйте, уважаемые эксперты! Пожалуйста, ответьте на вопрос: Программа CompModel Жмакина Задание: подключить клавиатуру и дисплей. На клавиатуре в произвольном порядке набирать символы (буквы, цифры), на дисплее должно отображаться только наибольшее число. Наибольшим числом считаются подряд идущие цифры. Например, в последовательност...

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

Здравствуйте, уважаемые эксперты! Пожалуйста, ответьте на вопрос:

Программа CompModel Жмакина
Задание: подключить клавиатуру и дисплей. На клавиатуре в произвольном порядке набирать символы (буквы, цифры), на дисплее должно отображаться только наибольшее число. Наибольшим числом считаются подряд идущие цифры. Например, в последовательности "ad5pm23tio" наибольшим числом будет 23.

Заранее благодарю!

С уважением,
Ярослав.

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


Консультирует Лысков Игорь Витальевич (Старший модератор):

Здравствуйте, Yaroslav!

Код (Assembler) :: выделить код
RDI #101 ;команда очистки буфера
out 1 ; для клавиатуры
RDI #102 ; команда сброса ошибки
out 1 ; для клавиатуры
RDI #10 ; команда разрешения МВУ
OUT 1 ; для клавиатуры без прерываний (по опросу)

RD #101 ;команда очистки дисплея
OUT 11 ;в регистр CR
RD #11 ;разрешаем дисплей с автоинкрементом адреса
OUT 11 ;в регистр CR

LOOP:IN 2 ; читаем регистр состояния клавиатуры
SBI #10 ; если состояние 10, то есть код, отняв 10, проверим на 0
JNZ LOOP ; если исходное состояние не 10, то нет нажатия на "Завершить ввод"

RDI #50
WR R0 ;здесь будет адрес строки цифр, максимального числа
RDI #60
WR R1 ;здесь будет адрес текущей строки цифр
RDI #0
WR R2 ;значение максимального числа
WR R3 ;значение текущего числа
WR R4 ;длина строки максимального числа
WR R5 ;длина строки текущего числа

LOOP1:IN 0 ; считываем код с клавиатуры
jz output

WR R6
sbi #48
js NODIG
LD R6
sbi #58
jns NODIG

LD R5
ADI #1
WR R5
LD R6
WR @R1+
LD R3
MULI #10
add R6
WR R3
JMP LOOP1

NODIG:
LD R5
JZ LOOP1

LD R3
SUB R2


jmp LOOP1

output:
hlt ; останов

continue:



RDI #51 ;'3'
OUT 10 ;на экран
jmp LOOP1

EXIT:

Консультировал: Лысков Игорь Витальевич (Старший модератор)
Дата отправки: 20.12.2017, 13:42
Рейтинг ответа:

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


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

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

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


В избранное