24.02.2018, 12:56 [+3 UTC]
в нашей команде: 2 563 чел. | участники онлайн: 5 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.44 (14.02.2018)

Общие новости:
02.01.2018, 09:46

Форум:
11.02.2018, 23:11

Последний вопрос:
23.02.2018, 22:06

Последний ответ:
23.02.2018, 22:11

Последняя рассылка:
23.02.2018, 21:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
15.05.2010, 00:02 »
sveta11115
Огромное спасибо за ответ! Даже не ожидала так быстро его получить, да еще и работающий вариант!!! Спасибо и за пояснения - не надо разбираться дополнительно!!! [вопрос № 178405, ответ № 261386]
26.11.2009, 21:33 »
Rem88-72
Лучше и полнее ответа я на свои вопросы просто не видел. Огромное Вам спасибо за насыщенный и грамотно описанный ответ! [вопрос № 174554, ответ № 256969]
13.04.2010, 01:24 »
PashtetEM
За скорость и за чтение моих мыслей ))) [вопрос № 177827, ответ № 260785]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

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

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

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 388
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 351
Зенченко Константин Николаевич
Статус: Модератор
Рейтинг: 333

Перейти к консультации №:
 

Консультация онлайн # 190944
Раздел: • Assembler
Автор вопроса: annka98 (Посетитель)
Отправлена: 04.05.2017, 16:37
Поступило ответов: 1

Уважаемые эксперты! Пожалуйста, помогите написать программу на учебной модели Жмакина.(прикрепляю программу к сообщению) Вывести на дисплей одно из трёх текстовых сообщений, в зависимости от нажатой клавиши. 1 - вывод первого сообщения, 2 - вывод второго сообщения, 3 - третьего, остальные символы - нет реакции. Используемые ВУ: клавиатура, дисплей.
скачать файл CompModel.exe [500.0 кб]

Состояние: Консультация закрыта

Ответ # 274964 от Лысков Игорь Витальевич (Старший модератор)

Здравствуйте, annka98!
Программа работает с клавиатурой по опросу
Выводит один символ, можете вывести любое сообщение, последовательно отправляя в порт соответствующие коды необходимых символов

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

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

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

IN 0 ; считываем код с клавиатуры
jz EXIT ; было просто нажатие на "Завершить ввод", то завершаем программу
sbi #49 ; проверим на клавиши 1-3
js RESET ; <'1' - игнорируем, на сброс клавиатуры
jz MESS_1 ; '1'
sbi #1
jz MESS_2 ;'2'
sbi #1
jz MESS_3 ;'3'
;все другие игнорируем и просто сбрасываем клавиатуру
RESET:RDI #101 ; команда сброса
out 1 ; в клавиатуру
RDI #103 ; команда установки посимвольного ввода (сбрасывается при сбросе)
out 1 ; в клавиатуру
jmp LOOP ; на чтение состояния клавиатуры

;подпрограммы вывода сообщений
;просто выводим цифру '1'-'3'
MESS_1:RD #101 ;команда очистки дисплея
OUT 11 ;в регистр CR
RDI #49 ;'1'
OUT 10 ;на экран
jmp RESET

MESS_2:RD #101 ;команда очистки дисплея
OUT 11 ;в регистр CR
RDI #50 ;'2'
OUT 10 ;на экран
jmp RESET

MESS_3:RD #101 ;команда очистки дисплея
OUT 11 ;в регистр CR
RDI #51 ;'3'
OUT 10 ;на экран
jmp RESET

EXIT:hlt ; останов


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

5
Спасибо огромное! К сожалению, я совсем не поняла эту тему, теперь попробую разобраться
-----
Дата оценки: 04.05.2017, 22:06

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 190944

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 1

= общий = | 04.05.2017, 16:48 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
annka98:

Здравствуйте!
Вы самостоятельно пытались написать? Покажите, если не трудно.
Подправим, добавим. Если надо, то и заново напишем. Но хотелось бы увидеть Ваши усилия в данном вопросе. smile

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 2

= общий = | 04.05.2017, 16:54 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
annka98:

Вопросик: с клавиатурой работаем по опросу или по прерыванию? smile

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

 

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

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.15068 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.44 от 14.02.2018