Данному образовательному сайту пришлось несколько раз менять свое имя. С 2022 года доступ к нему обеспечивается по URL
emc.orgfree.com

emc.km.ru (2001-2007) ==> educomp.org.ru (2007-2011) ==> educomp.runnet.ru (2011-2021) ==> emc.orgfree.com (2022-...)
Более подробно об истории сайта можно прочитать здесь.


Учебные модели компьютера



Модели (software):

"Е14" (parallel !!!)
"S9PU" (parallel)

Модели (hardware):






Награды сайта
Награды сайта 2005

Программа ввода двоичного числа принимает с клавиатуры последовательность нулей и единиц, которая завершается нажатием клавиши "ввод". Все остальные клавиши программа игнорирует.

Для получения двоичного числа после нажатия очередной клавиши выполняются следующие действия:

  • если нажата клавиша "ввод", алгоритм завершается выводом на экран
  • если введены цифры 0 или 1, то иллюстрация к алгоритму
    • текущее значение числа сдвигается на 1 бит влево, освобождая место под очередную (последнюю) цифру
    • прибавляется значение этой введенной с клавиатуры цифры
  • иначе происходит переход к повторению ввода.

Полученный программой результат выводится на экран в двоичном, шестнадцатеричном и десятичном виде.

Вот решение:

адрескодмнемоникакомментарии
01830dw -48 код символа "0" со знаком минус (const nul)
02831dw -49 код символа "1" со знаком минус (const edin)
0380Ddw -13 код клавиши "ввод" со знаком минус (const wk)
04000dw 0 место под переменную cod
05000dw 0 место под переменную cif
06000dw 0 место под переменную rez
input:ввод символа
07C05in чтение кода клавиши
08104sta (cod) сохранить значение в переменной cod
09A03add (wk) вычитание wk для сравнения с кодом клавиши "ввод"
0AE18jz print выход при совпадении
0B004lda (cod) извлечь значение переменной cod
0CA01add (nol) вычитание nol для сравнения с кодом клавиши "0"
0D105sta (cif) запомнить разность в переменную cif
0EE13jz cifra переход при совпадении с цифрой 0
0F004lda (cod) извлечь значение переменной cod
10A02add (edin) вычитание edin для сравнения с кодом клавиши "1"
11E13jz cifra переход при совпадении с цифрой 1
12407jmp input к повторению ввода в остальных случаях
cifra:добавление очередной цифры
13006lda (rez) извлечь значение переменной rez
14311sal сдвинуть СМ на 1 бит влево
15A05add (cif) прибавить очередную двоичную цифру
16106sta (rez) запомнить результат в переменную rez
17407jmp input ко вводу следующего символа
print:вывод на экран
18006lda (rez) извлечь значение переменной rez
19C10bprt вывести результат в двоичном виде
1AC02hprt вывести результат в шестнадцатеричном виде
1BC00iprt вывести результат в десятичном виде
1CF00hlt останов (стоп)


© Е.А.Еремин, 2001


Автор сайта - Евгений Александрович Еремин (Пермский государственный педагогический университет). e_eremin@yahoo.com


Free Web Hosting