Программа-калькулятор
Рассмотрение трех программно-доступных регистров, входящих в состав контроллера клавиатуры: данных, управления и состояния. Распределение данных программы-калькулятора: двух однозначных чисел и знаков действия (плюс, минус, знаков деления и умножения).
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 08.08.2013 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Сегодня повсеместное использование калькуляторов существенно облегчает работу человека в самых различных сферах. Впрочем, представить себе жизнь без таких помощников практически невозможно - ведь счетные устройства повсюду сопровождали человека в самые различные исторические периоды, хотя механизм их работы и был устроен иначе.
Латинское слово calculator "счётчик, счетовод" происходит от глагола calculo "считаю, подсчитываю", который в свою очередь происходит от слова calculus "камешек" (камешки использовались для счёта); calculus же является уменьшительным от calx "известь".
Первый в мире полностью электронный компактный калькулятор Anita создан компанией Bell в 1961 год. С него началась эра всеобщей калькуляторизации. Калькуляторы вставлялись в столы, портмоне, наручные часы, а с недавних пор всех их вытеснил калькулятор Windows.
А первый отечественный калькулятор был разработан в1971 году, использующий интегральные схемы (Искра 110).
"Программа - калькулятор, которая по введённому с клавиатуры выражению вычисляющая результат и выводящая его на дисплей" необходима, как и все калькуляторы, для выполнения операций над числами или алгебраическими формулами.
"Программа - калькулятор" и несёт в себе пользу при выполнении задач, которые с затруднением сделает обычный человек. Она включает в себя клавиатурный ввод значения операндов и действия, производимые над ними.
1. Теоретическая часть
1.1 Понятие программы
Программа на языке ЭВМ представляет собой последовательность команд. Код каждой команды определяет выполняемую операцию, тип адресации и адрес. Выполнение программы, записанной в памяти ЭВМ, осуществляется последовательно по командам в порядке возрастания адресов команд или в порядке, определяемом командами передачи управления.
Для того чтобы получить результат выполнения программы, пользователь должен:
P ввести программу в память ЭВМ;
P определить, если это необходимо, содержимое ячеек ОЗУ и РОН, содержащих исходные данные, а также регистров IR и RB;
P установить в PC стартовый адрес программы;
P перевести модель в режим Работа.
Ввод программы может осуществляться как в машинных кодах непосредственно в память модели, так и в мнемокодах в окно программы с последующим ассемблированием.
Для создания Программы - калькулятора, которая по введённому с клавиатуры выражению вычисляет результат и выводит его на дисплей необходимо организовать взаимодействия процессора и внешних устройств (ВУ) в составе ЭВМ.
Для выполнения поставленной задачи необходимыми устройствами являются клавиатура и дисплей.
В описываемой версии системы не предусмотрена возможность подключения в систему нескольких одинаковых устройств.
Большинство внешних устройств содержит регистры управления CR и
состояния SR. причем обычно регистры CR доступны только но записи, а SR-- почтению.
Регистр CR содержит флаги и поля, определяющие режимы работы ВУ, а SR -- флаги, отражающие текущее состояние ВУ. Флаги SR устанавливаются аппаратно, но сбрасываются программно (или по внешнему сигналу). Поля и флаги CR устанавливаются и сбрасываются программно при записи кода данных в регистр CR или специальными командами.
Контроллер ВУ интерпретирует код. записываемый по адресу CR как команду, если третий разряд этого кода равен 1, или как записываемые в CR данные, если третий разряд равен 0. В случае получения командного слова запись в регистр CR не производится, а пятый разряд слова рассматривается как код операции.
1.2 Контроллер клавиатуры
Контроллер клавиатуры {рис. 1) представляет собой модель внешнего устройства, принимающего ASCII-коды от клавиатуры ПЭВМ.
Символы помещаются последовательно в буфер символов, размер которого установлен равным 50 символам, и отображаются в окне обозревателя (рис. 2). В состав контроллера клавиатуры входят три программно-доступных регистра:
· DR (адрес 0)--регистр данных;
· CR (адрес I) -- регистр управления, определяет режимы работы контроллера н содержит следующие флаги:
1. E -- флаг разрешения приема кодов в буфер;
2. I -- флаг разрешения прерывания;
3. S -- флаг режима посимвольного ввода.
· SR (адрес 2) -- реестр состояния, содержит два флага:
1. Err -- флаг ошибки;
2. Rd -- флаг готовности.
(РИС 1)Контролер клавиатуры
(РИС 2)Окно обозревателя Контролера клавиатуры
Регистр данных DR доступен только для чтения, через него считываются ASCII-коды из буфера, причем порядок чтения кодов из буфера соответствует порядку их записи в буфер-- каждое чтение по адресу 0 автоматически перемещает указатель чтения буфера. В каждый момент времени ПК содержит код символа по адресу указателя чтения буфера.
Флаги регистра управления CR устанавливаются и сбрасываются программно.
флаг Е" будучи установленным, разрешает прием кодов в буфер. При Е = О контроллер игнорирует нажатие на клавиатуре, прием кодов в буфер не производится. На считывание кодов из буфера флаг Г влияния не оказывает.
флаг I, будучи установленным, разрешает при определенных условиях формирование контроллером запроса на прерывание. При I =0 запрос на прерывание не формируется.
Флаг S = 1 устанавливает т. и. режим посимвольного ввода, иначе контроллер работает в обычном режиме. Флаг S устанавливается и сбрасывается программно, кроме того, S сбрасывается при нажатии кнопки Очистить буфер в окне Контроллер клавиатуры.
Условия формирования запроса на прерывание определяются, с одной стороны, значением флага разрешения прерывания 1, с другой -- режимом работы контроллера. В режиме посимвольного ввода запрос на прерывание формируется после ввода каждого Символа (разумеется, при 1= I), в обычном режиме запрос будет сформирован по окончании набора строки.
Завершить набор строки можно, щелкнув по кнопке Завершить ввод " окне Контроллер клавиатуры (см. рис. 2). При этом устанавливается флаг готовности Rd (от англ. ready) в регистре состояния SR. Флаг ошибки Err (от англ. error) в том же регистре устанавливается при попытке ввода в буфер 51 -го и символа. Ввод 51 -го и всех последующих символов блокируется.
Сброс флага Rd осуществляется автоматически при чтении из регистра DR, флаг Err сбрасывается программно. Кроме того, оба эти флага сбрасываются при нажатии кнопки Очистить буфер в окне Контроллер клавиатуры; одновременно со сбросом флагов производится очистка буфера -- весь буфер заполняется кодами 00h, и указатели записи и чтения устанавливаются на начало буфера*
Для программною управления контролера предусмотрен ряд командных слов. Все команды выполняются при записи но адресу регистра управления CR кодов с I в третьем разряде.
Контроллер клавиатуры интерпретирует следующие командные слова:
· xxx101 -- очистить буфер (действие команды эквивалентно нажатию кнопки Очистить буфер);
· xxx102 -- сбросить флаг Err в регистре SR;
· xxx І03 -- установить флаг S в регистре CR;
· xxx104 -- сбросить флаг S в регистре CR. Дисплей
Дисплей (рис. 3) представляет собой модель внешнего устройства, реализующего функции символьного дисплея. Дисплей может отображать символы, задаваемые ASCII-кодами, поступающими на его регистр данных. Дисплей включает:
· видеопамять объемом 128 слов (ОЗУ дисплея);
· символьный экран размером 8 строк по 16 символов в строке;
· четыре программно-доступных регистра:
1. DR (адрес 0) -- регистр данных;
2. СR (адрес 1) -- регистр управления;
3. SR (адрес 2) -- регистр состояния;
4. AR(адрес 3) -- регистр адреса.
(РИС 3)Контролер дисплея
Через регистры адреса AR и данных DR по записи и чтению осуществляется доступ к ячейкам видеопамяти. При обращении к регистру DR по записи содержимого аккумулятора записывается в DR и в ячейку видеопамяти, адрес которой установлен в регистре AR.
Регистр управления CR доступен только по записи и содержит в 4-м и 5-м разрядах соответственно два флага:
Е--- флаг разрешения работы дисплея; при Е = О запись в регистры AR и блокируется;
А -- флаг автоинкремента адреса: при А =I содержимое АR. автоматически увеличивается на 1 после любого обращения к регистру DR -- по записи или чтению.
Изменить значения этих флагов можно, если записать по адресу СR (по умолчанию -- 11) код ххх0nn, при этом изменение 4-го и 5-го разрядов регистра произойдет согласно выражению (8.1).
Для программного управления дисплеем предусмотрены две команды. Коды, которых должны записываться по адресу регистра CR, причем в третьем разряде командных слов обязательно должна быть 1:
· xxx101)-- очистить дисплей (действие команды эквивалентно нажатию кнопки Очистить в окне Дисплей), при этом очищается видеопамять (в каждую ячейку записывается код пробела -- 032), устанавливается в 000 регистр адреса АЯ и сбрасываются флаги ошибки Err и автоинкремента А;
· xxx102 -- сбросить флаг ошибки Еrr.
(РИС 4)Окно обозревателя контролера писался
Регистр состояния SR доступен только по чтению и содержит единственный флаг (в пятом разряде) ошибки Err. Этот флаг устанавливается аппаратно при попытке записать в регистр адреса число, большее 127, причём как в режиме прямой записи в АR, так и в режиме автоикремента после обращения по адресу 127. Сбрасывается флаг Егг программно или при нажатии кнопки Очистить в окне Дисплей (рис.4).
Для включения контроллера клавиатуры необходимо:
· Подключите внешнее устройство (меню Внешние устройства - Менеджер ВУ - Контроллер клавиатуры)
· Для установки флага E в регистре CR требуется выполнить команды:
RD #10
OUT 1
· Для установки S в "1" (режим посимвольного ввода) требуется выполнить следующие команды:
RD #103
OUT 1
Для включения контроллера дисплея необходимо:
· Подключите внешнее устройство (меню Внешние устройства - Менеджер ВУ - Контролер дисплея)
· Для включения дисплея и установления флага автоинкремента требуется выполнить команды:
RD #10
OUT 11
· Для задания адреса выводимого знака требуется выполнить команды:
RD #0
OUT 13
· Для ввода кода знака, который необходимо вывести, используя его ASCII-код( находится в приложении) требуется выполнить команду:
· RD #N(где N- запись знака в ASCII-коде)
· Для вывода ASCII-кода знака требуется выполнить команду:
· OUT 10
2. Практическая часть
регистр контроллер клавиатура программа
- Определение исходных и выходных данных программы. Исходными данными данной программы- калькулятора являются два однозначных числа и знаки действия, такие как плюс, минус, знак деление и умножения. Выходные данные могут представлять из себя как однозначный, так и двух значный результат выполнения действий над числами.
- Построение алгоритма для решения задачи
- Распределение данных и программы в памяти Реестр R0 следит за числом веденных знаков(в данной программе оно равно двум); Реестр R1 реестр монитора(Для задания адреса выводимого знака); Реестр R3 выполняет функцию накопителя; В реестр R4 сохраняется ASCII- код знака; В реестр R5 записывается значение первого числа(его ASCII- код ); В реестр R6 помещается значение второго числа(его ASCII- код); В рестр R7 записывается решения пославленой задачи на цыфрами.; Если решение двухзначное, то первый его знак записывается в реестр R8, а второй- в реестр R9.
- Программа для выполнения ;Инициализация
- I:
- RD #101 ;Команда очистки буфера
- OUT 1 ;для клавиатуры
- OUT 11 ;и дисплея
- RD #102 ;Команда сброса ошибки
- OUT 1 ;для клавиатуры
- OUT 11 ;и для дисплея
- RD #10 ;Команда разрешения МВУ
- OUT 1 ;для клавиатуры без прерываний (по опросу)
- OUT 11 ;для монитора без автоувеличения адреса
- ;выполнение задания
- RD #2 ;поместить в АЛУ это значение---эти значения должны совпадать---max кол-во символов для накопителя---
- WR R0 ;В регистре R0, будем хранить max
- ;ПЕРВАЯ ЦИФРА
- KEY1:
- IN 0 ;получить код клавиши
- JZ KEY1 ;если не было нажатия то повтор
- WR R5 ;сохраняем этот код (при выполнении операции сравнения, он будет удалён из АЛУ)+++
- JRNZ R0,DE ;возврат по циклу
- ;Действие
- DE:
- IN 0 ;получить код клавиши
- JZ DE ;если не было нажатия то повтор
- WR R4 ;сохраняем этот код (при выполнении операции сравнения, он будет удалён из АЛУ)+++
- JRNZ R0,KEY2 ;возврат по циклу
- ;ВТОРАЯ ЦИФРА
- KEY2:
- IN 0 ;получить код клавиши
- JZ KEY2 ;если не было нажатия то повтор
- WR R6 ;сохраняем этот код (при выполнении операции сравнения, он будет удалён из АЛУ)+++
- ;сдвиг влево, если больше одного символа было введено.
- RD R0 ;читаем реестр R0
- SBI #2 ;поместить в АЛУ его значение---эти значения должны совпадать---max кол-во символов для накопителя---
- JZ NEXT ;если введено более 2 значений
- RD R3 ;происходит коррекция уже накопленного значения
- MUL #10 ;путём умножения на 10
- WR R3 ;и сохранение его в накопителе NEXT: ;перевод из кода для 1цифры(эквивалент)
- RD R5 ;из регистра R5 в АЛУ
- sub #48 ;перевод из кода в цифру(эквивалент)
- WR R5 ;сохраняем полученное значение ;перевод из кода для 2цифры(эквивалент)\
- RD R6 ;из регистра R6 в АЛУ
- sub #48 ;перевод из кода в цифру(эквивалент)
- WR R6 ;сохраняем полученное значение
- ;СЛОЖЕНИЕ
- RD R4 ;читаем реестр R4
- SUB #43 ; если разность между этим значением и числом 43
- JZ SUM ; равно 0, то переходим к подпрограмме SUM ; РАЗНОСТЬ
- RD R4 ;читаем реестр R4
- SUB #45 ; если разность между этим значением и числом 45
- JZ MIN ; равно 0, то переходим к подпрограмме MIN ;ПРОИЗВЕДЕНЕ
- RD R4 ;читаем реестр R4
- SUB #42 ; если разность между этим значением и числом 42
- JZ UMN ; равно 0, то переходим к подпрограмме UMN ;ДЕЛЕНИЕ
- RD R4 ;читаем реестр R4
- SUB #47 ; если разность между этим значением и числом 47
- JZ DELE ; равно 0, то переходим к подпрограмме DELE ;РЕШЕНИЕ
- SUM:RD R5 ;к реестру R5
- ADD R6 ;прибовляем R6
- WR R7 ;полученое значение сохрананяем в R7
- JRNZ R0,B8 ; переходим в подпрограмму B8 MIN:RD R5 ;из значения реестра R5
- SUB R6 ;вычитаем R6
- WR R7 ;полученое значение сохрананяем в R7
- JRNZ R0,B8 ; переходим в подпрограмму B8 UMN:RD R5 ;читаем реестр R5
- MUL R6 ;и умножаем его значение на R6
- WR R7 ;полученое значение сохрананяем в R7
- JRNZ R0,B8 ; переходим в подпрограмму B8 DELE:RD R5 ;значение реестра R5
- DIV R6 ;делим на R6
- WR R7 ;полученое значение сохрананяем в R7
- JRNZ R0,B8 ; переходим в подпрограмму B8 ; ОТВЕТ
- B8:RD R7 ;читаем реестр R7
- SUB #80 ;и вычитаем из его значения 80
- JS B7 ;если полученое значение отрицательно , то переходим в подпрограмму B7
- RD R7 ;значение реестра R7
- DIV #10 ;делим на 10
- WR R8 ;полученое значение сохрананяем в R8
- RD R7 ;читаем реестр R7
- SUB #80 ;и вычитаем и его значения 80
- WR R9 ;полученое значение сохрананяем в R9
- JRNZ R0,otv ;переходим в подпрограмму otv
- B7:RD R7 ;читаем реестр R7
- SUB #70 ;и вычитаем из его значения 70
- JS B6 ;если полученое значение отрицательно , то переходим в подпрограмму B6
- RD R7 ;значение реестра R7
- DIV #10 ;делим на 10
- WR R8 ;полученое значение сохрананяем в R8
- RD R7 ;читаем реестр R7
- SUB #70 ;и вычитаем из его значения 70
- WR R9 ;полученое значение сохрананяем в R9
- JRNZ R0,otv ;переходим в подпрограмму otv
- B6:RD R7 ;читаем реестр R7
- SUB #60 ;и вычитаем из его значения 60
- JS B5 ;если полученое значение отрицательно , то переходим в подпрограмму B5
- RD R7 ;значение реестра R7
- DIV #10 ; делим на 10
- WR R8 ;полученое значение сохрананяем в R8
- RD R7 ;читаем реестр R7
- SUB #60 ;и вычитаем из его значения 60
- WR R9 ;полученое значение сохрананяем в R9
- JRNZ R0,otv ;переходим в подпрограмму otv
- B5:RD R7 ;читаем реестр R7
- SUB #50 ;и вычитаем из его значения 50
- JS B4 ;если полученое значение отрицательно , то переходим в подпрограмму B4
- RD R7 ;значение реестра R7
- DIV #10 ;делим на 10
- WR R8 ;полученое значение сохрананяем в R8
- RD R7 ;читаем реестр R7
- SUB #50 ;и вычитаем из его значения 50
- WR R9 ;полученое значение сохрананяем в R9
- JRNZ R0,otv ;переходим в подпрограмму otv
- B4:RD R7 ;читаем реестр R7
- SUB #40 ;и вычитаем из его значения 40
- JS B3 ;если полученое значение отрицательно , то переходим в подпрограмму B3
- RD R7 ;значение реестра R7
- DIV #10 ;делим на 10
- WR R8 ;полученое значение сохрананяем в R8
- RD R7 ;читаем реестр R7
- SUB #40 ;и вычитаем из его значения 40
- WR R9 ; полученое значение сохрананяем в R9
- JRNZ R0,otv ;переходим в подпрограмму otv
- B3:RD R7 ;читаем реестр R7
- SUB #30 ;и вычитаем из его значения 30
- JS B2 ;если полученое значение отрицательно , то переходим в подпрограмму B2
- RD R7 ;значение реестра R7
- DIV #10 ;делим на 10
- WR R8 ;полученое значение сохрананяем в R8
- RD R7 ;читаем реестр R7
- SUB #30 ;и вычитаем из его значения 30
- WR R9 ;полученое значение сохрананяем в R9
- JRNZ R0,otv ;переходим в подпрограмму otv
- B2:RD R7 ;читаем реестр R7
- SUB #20 ;и вычитаем из его значения 20
- JS B1 ;если полученое значение отрицательно , то переходим в подпрограмму B1
- RD R7 ;значение реестра R7
- DIV #10 ;делим на 10
- WR R8 ;полученое значение сохрананяем в R8
- RD R7 ;читаем реестр R7
- SUB #20 ;и вычитаем из его значения 20
- WR R9 ;полученое значение сохрананяем в R9
- JRNZ R0,otv ;переходим в подпрограмму otv
- B1:RD R7 ;читаем реестр R7
- SUB #10 ;и вычитаем из его значения 10
- JS B ;если полученое значение отрицательно , то переходим в подпрограмму B
- RD R7 ;значение реестра R7
- DIV #10 ;делим на 10
- WR R8 ;полученое значение сохрананяем в R8
- RD R7 ;читаем реестр R7
- SUB #10 ;и вычитаем из его значения 10
- WR R9 ;полученое значение сохрананяем в R9
- JRNZ R0,otv ;переходим в подпрограмму otv
- B: RD #0 ; записываем 0
- WR R8 ; в реестр R8
- RD R7 ;читаем реестр R7
- WR R9 ;полученое значение сохрананяем в R9
- JRNZ R0,otv ;переходим в подпрограмму otv
- otv: ;перевод из кода для 1цифры(эквивалент)
- RD R5 ;ичитаем реестр R5
- ADD #48 ;;переводим цифры в код(эквивалент)
- WR R5 ;сохраняем полученное значение ;перевод из кода для 2цифры(эквивалент)
- RD R6 ;читаем реестр R6
- ADD #48 ;е;переводим цифры в код(эквивалент)
- WR R6 ;сохраняем полученное значение ;перевод из кода ответ
- о:
- RD R8 ;читаем реестр R8
- ADD #48 ;переводим цифры в код(эквивалент)
- WR R8 ;сохраняем полученное значение
- RD R9 ;читаем реестр R8
- ADD #48 ;переводим цифры в код(эквивалент)
- WR R9 ;сохраняем полученное значение ;вывод на экран ;вывод на экран 1цифры
- VIV: ;вывод на экран 1цифры
- RD R1 ;указатель на ячейку, экрана
- OUT 13 ;передаём в порт адрес ячейкин
- ADI #1 ;увеличение на 1
- WR R1 ;сохранение для послед использования
- RD R5 ;из регистра R5 в АЛУ
- OUT 10 ;вывести на экран символ находящийся в АЛУ ;вывод на экран знака
- RD R1 ;указатель на ячейку, экрана
- OUT 13 ;передаём в порт адрес ячейки
- ADI #1 ;увеличение на 1
- WR R1 ;сохранение для послед использования
- RD R4 ;из регистра R4 в АЛУ
- OUT 10 ;вывести на экран символ находящийся в АЛУ ;вывод на экран 2цифры
- RD R1 ;указатель на ячейку, экрана
- OUT 13 ;передаём в порт адрес ячейки
- ADI #1 ;увеличение на 1
- WR R1 ;сохранение для послед использования
- RD R6 ;из регистра R6 в АЛУ
- OUT 10 ;вывести на экран символ находящийся в АЛУ ;вывод на экран равно
- R: RD R1 ;
- OUT 13 ;передаём в порт адрес ячейки
- ADI #1 ;увеличение на 1
- WR R1 ;сохранение для послед использования
- RD #61 ;помещаем код знака равно в АЛУ
- OUT 10 ;вывести на экран символ находящийся в АЛУ ;вывод на экран ответа
- RD R1 ;указатель на ячейку, экрана
- OUT 13 ;передаём в порт адрес ячейки
- ADI #1 ;увеличение на 1
- WR R1 ;сохранение для послед использования
- RD R8 ;из регистра R8 в АЛУ
- OUT 10 ;вывести на экран символ находящийся в АЛУ
- RD R1 ;указатель на ячейку, экрана
- OUT 13 ;передаём в порт адрес ячейки
- ADI #1 ;увеличение на 1
- WR R1 ;сохранение для послед использования
- RD R9 ;из регистра R9 в АЛУ
- OUT 10 ;вывести на экран символ находящийся в АЛУ
- JRNZ R0,P ;;переходим в подпрограмму P
- P:
- IN 0 ;получить код клавиши
- JZ P ;если не было нажатия то повтор
- WR R2 ;сохраняем этот код (при выполнении операции сравнения, он будет удалён из АЛУ)+++
- SUB #32 ;вычетаем из него 32
- JZ P ;если разность равно 0,
- JRNZ R0,I ;то;переходим в подпрограмму I
- HLT ;конец.
- Список литературы
1. Баранов С. И. Синтез микропрограммных автоматов.- Л.: Энергия. 1974.
2. Григорьев В. Л. Микропроцессор i486. Архитектура и программирование, В четырех книгах. -- М.: ГРАНАЛ. 1993.
3. Жмакин А. П., Титов В. С. Однокристальные микроЭВМ в системах управления: Учебное пособие. -- Курск: Курск, гос. тех. ун-т, 2002.
4. Закревский А. Д. Алгоритмы синтеза дискретных автоматов.-- М.: Наука, 1971.
5. Майоров С. Л.. Новиков Г. А. Принципы организации ЦВМ. -- Л.: Машиностроение, 1974.
6. Савельев А. Я. Прикладная теория цифровых автоматов.-- М.: Высшая шкат, 1987.
7. Соловьев Г. Н. Арифметические устройства ЦВМ. -- М.: Энергия, 1978.
8. Стариченко Б. Е. Теоретические основы информатики.-- М- Горячая линия -- Телеком. 2003.
9. Таненбаум Э. Архитектура компьютера. 4-е им. -- СПб.: Питер. 2003.
10. Хамахер К.. Вранешич 3., Заки С. Организация ОВМ. 5-е игл -- СПб.: Питер, 2003.
11. Хвощ С. Т. и Др. Микропроцессоры и микроЭВМ в системах автоматического управления: Справочник.-- Л.: Машиностроение, 1987.
12. Юров В. И. Assembler. -- СПб.: Питер, 2003.
13. Жмакин А.П. Архитектура ЭВМ.- Спб.: БХВ- Петербург, 2006.
14. ru.wikipedia.org
15. calcarh.narod.ru
16. cyberforum.ru
17. http://loric.dm0.ru/
Приложение
Сводная таблица кодов ASCII
ASCII таблица кодов символов Windows (Win-1251)
Dec |
Hex |
Символ |
Dec |
Hex |
Символ |
||
000 |
00 |
спец. NOP |
128 |
80 |
Ђ |
||
001 |
01 |
спец. SOH |
129 |
81 |
Ѓ |
||
002 |
02 |
спец. STX |
130 |
82 |
‚ |
||
003 |
03 |
спец. ETX |
131 |
83 |
ѓ |
||
004 |
04 |
спец. EOT |
132 |
84 |
„ |
||
005 |
05 |
спец. ENQ |
133 |
85 |
… |
||
006 |
06 |
спец. ACK |
134 |
86 |
† |
||
007 |
07 |
спец. BEL |
135 |
87 |
‡ |
||
008 |
08 |
спец. BS |
136 |
88 |
€ |
||
009 |
09 |
спец. Табуляция |
137 |
89 |
‰ |
||
010 |
0A |
спец. LF (Возвр. каретки) |
138 |
8A |
Љ |
||
011 |
0B |
спец. VT |
139 |
8B |
‹ |
||
012 |
0C |
спец. FF |
140 |
8C |
Њ |
||
013 |
0D |
спец. CR (Новая строка) |
141 |
8D |
Ќ |
||
014 |
0E |
спец. SO |
142 |
8E |
Ћ |
||
015 |
0F |
спец. SI |
143 |
8F |
Џ |
||
016 |
10 |
спец. DLE |
144 |
90 |
ђ |
||
017 |
11 |
спец. DC1 |
145 |
91 |
` |
||
018 |
12 |
спец. DC2 |
146 |
92 |
' |
||
019 |
13 |
спец. DC3 |
147 |
93 |
" |
||
020 |
14 |
спец. DC4 |
148 |
94 |
" |
||
021 |
15 |
спец. NAK |
149 |
95 |
* |
||
022 |
16 |
спец. SYN |
150 |
96 |
- |
||
023 |
17 |
спец. ETB |
151 |
97 |
-- |
||
024 |
18 |
спец. CAN |
152 |
98 |
|
||
025 |
19 |
спец. EM |
153 |
99 |
™ |
||
026 |
1A |
спец. SUB |
154 |
9A |
љ |
||
027 |
1B |
спец. ESC |
155 |
9B |
› |
||
028 |
1C |
спец. FS |
156 |
9C |
њ |
||
029 |
1D |
спец. GS |
157 |
9D |
ќ |
||
030 |
1E |
спец. RS |
158 |
9E |
ћ |
||
031 |
1F |
спец. US |
159 |
9F |
џ |
||
032 |
20 |
сцеп. SP (Пробел) |
160 |
A0 |
|||
033 |
21 |
! |
161 |
A1 |
Ў |
||
034 |
22 |
" |
162 |
A2 |
ў |
||
035 |
23 |
# |
163 |
A3 |
Ј |
||
036 |
24 |
$ |
164 |
A4 |
¤ |
||
037 |
25 |
% |
165 |
A5 |
Ґ |
||
038 |
26 |
& |
166 |
A6 |
¦ |
||
039 |
27 |
' |
167 |
A7 |
§ |
||
040 |
28 |
( |
168 |
A8 |
Ё |
||
041 |
29 |
) |
169 |
A9 |
© |
||
042 |
2A |
* |
170 |
AA |
Є |
||
043 |
2B |
+ |
171 |
AB |
" |
||
044 |
2C |
, |
172 |
AC |
¬ |
||
045 |
2D |
- |
173 |
AD |
|||
046 |
2E |
. |
174 |
AE |
® |
||
047 |
2F |
/ |
175 |
AF |
Ї |
||
048 |
30 |
0 |
176 |
B0 |
° |
||
049 |
31 |
1 |
177 |
B1 |
± |
||
050 |
32 |
2 |
178 |
B2 |
І |
||
051 |
33 |
3 |
179 |
B3 |
і |
||
052 |
34 |
4 |
180 |
B4 |
ґ |
||
053 |
35 |
5 |
181 |
B5 |
µ |
||
054 |
36 |
6 |
182 |
B6 |
¶ |
||
055 |
37 |
7 |
183 |
B7 |
· |
||
056 |
38 |
8 |
184 |
B8 |
ё |
||
057 |
39 |
9 |
185 |
B9 |
№ |
||
058 |
3A |
: |
186 |
BA |
є |
||
059 |
3B |
; |
187 |
BB |
" |
||
060 |
3C |
< |
188 |
BC |
ј |
||
061 |
3D |
= |
189 |
BD |
Ѕ |
||
062 |
3E |
> |
190 |
BE |
ѕ |
||
063 |
3F |
? |
191 |
BF |
ї |
||
064 |
40 |
@ |
192 |
C0 |
А |
||
065 |
41 |
A |
193 |
C1 |
Б |
||
066 |
42 |
B |
194 |
C2 |
В |
||
067 |
43 |
C |
195 |
C3 |
Г |
||
068 |
44 |
D |
196 |
C4 |
Д |
||
069 |
45 |
E |
197 |
C5 |
Е |
||
070 |
46 |
F |
198 |
C6 |
Ж |
||
071 |
47 |
G |
199 |
C7 |
З |
||
072 |
48 |
H |
200 |
C8 |
И |
||
073 |
49 |
I |
201 |
C9 |
Й |
||
074 |
4A |
J |
202 |
CA |
К |
||
075 |
4B |
K |
203 |
CB |
Л |
||
076 |
4C |
L |
204 |
CC |
М |
||
077 |
4D |
M |
205 |
CD |
Н |
||
078 |
4E |
N |
206 |
CE |
О |
||
079 |
4F |
O |
207 |
CF |
П |
||
080 |
50 |
P |
208 |
D0 |
Р |
||
081 |
51 |
Q |
209 |
D1 |
С |
||
082 |
52 |
R |
210 |
D2 |
Т |
||
083 |
53 |
S |
211 |
D3 |
У |
||
084 |
54 |
T |
212 |
D4 |
Ф |
||
085 |
55 |
U |
213 |
D5 |
Х |
||
086 |
56 |
V |
214 |
D6 |
Ц |
||
087 |
57 |
W |
215 |
D7 |
Ч |
||
088 |
58 |
X |
216 |
D8 |
Ш |
||
089 |
59 |
Y |
217 |
D9 |
Щ |
||
090 |
5A |
Z |
218 |
DA |
Ъ |
||
091 |
5B |
[ |
219 |
DB |
Ы |
||
092 |
5C |
\ |
220 |
DC |
Ь |
||
093 |
5D |
] |
221 |
DD |
Э |
||
094 |
5E |
^ |
222 |
DE |
Ю |
||
095 |
5F |
_ |
223 |
DF |
Я |
||
096 |
60 |
` |
224 |
E0 |
а |
||
097 |
61 |
a |
225 |
E1 |
б |
||
098 |
62 |
b |
226 |
E2 |
в |
||
099 |
63 |
c |
227 |
E3 |
г |
||
100 |
64 |
d |
228 |
E4 |
д |
||
101 |
65 |
e |
229 |
E5 |
е |
||
102 |
66 |
f |
230 |
E6 |
ж |
||
103 |
67 |
g |
231 |
E7 |
з |
||
104 |
68 |
h |
232 |
E8 |
и |
||
105 |
69 |
i |
233 |
E9 |
й |
||
106 |
6A |
j |
234 |
EA |
к |
||
107 |
6B |
k |
235 |
EB |
л |
||
108 |
6C |
l |
236 |
EC |
м |
||
109 |
6D |
m |
237 |
ED |
н |
||
110 |
6E |
n |
238 |
EE |
о |
||
111 |
6F |
o |
239 |
EF |
п |
||
112 |
70 |
p |
240 |
F0 |
р |
||
113 |
71 |
q |
241 |
F1 |
с |
||
114 |
72 |
r |
242 |
F2 |
т |
||
115 |
73 |
s |
243 |
F3 |
у |
||
116 |
74 |
t |
244 |
F4 |
ф |
||
117 |
75 |
u |
245 |
F5 |
х |
||
118 |
76 |
v |
246 |
F6 |
ц |
||
119 |
77 |
w |
247 |
F7 |
ч |
||
120 |
78 |
x |
248 |
F8 |
ш |
||
121 |
79 |
y |
249 |
F9 |
щ |
||
122 |
7A |
z |
250 |
FA |
ъ |
||
123 |
7B |
{ |
251 |
FB |
ы |
||
124 |
7C |
| |
252 |
FC |
ь |
||
125 |
7D |
} |
253 |
FD |
э |
||
126 |
7E |
~ |
254 |
FE |
ю |
||
127 |
7F |
255 |
FF |
я |
|||
Система команд учебной ЭВМ
КОП |
Мнемокод |
Название |
КОП |
Мнемокод |
Название |
|
NOP |
Пустая операция |
23 |
ADD |
Сложение |
||
01 |
IN |
Ввод AccIR |
24 |
SUB |
Вычитание |
|
02 |
OUT |
Вывод OR Acc |
25 |
MUL |
Умножение |
|
03 |
IRET |
Возврат из прерывания |
17 |
JNRZ |
Цикл |
|
10 |
JMP |
Безусловный переход |
30 |
MOV |
Пересылка |
|
11 |
JZ |
Переход, если 0 (Acc=0) |
36 |
DIV |
Деление |
|
12 |
JNZ |
Переход, если не 0 (Acc?0) |
19 |
CALL |
Вызов подпрограммы |
|
14 |
JNS |
Переход, если положительно |
09 |
HLT |
Стоп |
|
13 |
JS |
Переход, если отрицательно |
41 |
RDI |
Чтение |
|
15 |
JO |
Переход, если переполнение (если Acc>99999) |
43 |
ADI |
Сложение |
|
18 |
INT |
Программное прерывание |
44 |
SBI |
Вычитание |
|
21 |
RD |
Чтение |
45 |
MULI |
Умножение |
|
22 |
WR |
Запись |
46 |
DIVI |
Деление |
|
Программно-доступные регистры и флаги:
Асс -- аккумулятор;
PC -- счетчик адреса команды, содержащий адрес текущей команд;
SP -- указатель стека, содержащий адрес верхушки стека;
RB -- регистр базового адреса, содержащий базовый адрес;
RA -- регистр адреса, содержащий исполнительный адрес при кос ной адресации;
IR -- входной регистр;
OR -- выходной регистр;
I -- флаг разрешения прерываний.
Системные регистры и флаги:
DR -- регистр данных АЛУ, содержащий второй операнд;
MDR -- регистр данных ОЗУ;
MAR -- регистр адреса ОЗУ;
RDR -- регистр данных блока РОН;
RAR -- регистр адреса блока РОН;
CR -- регистр команд, содержащий поля:
P СОР -- код операции;
P ТА -- тип адресации;
P ADR -- адрес или непосредственный операнд;
Z -- флаг нулевого значения Асс;
S -- флаг отрицательного значения Асс;
OV -- флаг переполнения.
Размещено на Allbest.ru
Подобные документы
Теория чисел как одно из направлений математики, изучающее свойства натуральных чисел. Разработка программы-калькулятора CalcKurs на языке программирования Pascal. Основные функции, реализованные в программе. Интерфейс программы, описание процедур.
курсовая работа [1,9 M], добавлен 03.06.2010Формирование калькулятора большой "конечной" арифметики для четырех действий. Реализация построения таблиц сложения, вычитания, умножения и переноса по данным действиям. Защита калькулятора от некорректного ввода данных. Реализация функции сравнения.
курсовая работа [181,0 K], добавлен 11.08.2014Общая характеристика основ дисциплины "Теория чисел". Интерфейс, листинг и оценка положительных и отрицательных качеств программы-калькулятора CalcKurs, а также описание ее основных процедур – DelOstatok, Factor, NodNok, SuperGorner, Express и AntiExp.
курсовая работа [1,9 M], добавлен 28.05.2010Создание программы "Калькулятор". Возможность выбора типа калькулятора: обычный или инженерный. Главный модуль проекта CALC. Программа Calc for win (calc4win.exe), разработанная в среде Delphi версии 6. Руководство пользователя. Результаты моделирования.
курсовая работа [56,1 K], добавлен 10.01.2010Пример построения программы с использованием арифметических операторов. Основные инструменты создания калькулятора. Процедура ввода чисел. Измененная процедура обработки нажатия кнопки "+". Процедура открытия формы "Справка", итоговый результат.
презентация [1,5 M], добавлен 02.03.2012Написание программы, состоящей из двух модулей и реализующей простейший калькулятор. Разработка алгоритма решения задачи, реализация его в среде программирования Delphi. Список использованных переменных. Блок-схема программы, руководство пользователя.
курсовая работа [106,6 K], добавлен 16.06.2014Создание программы ввода с клавиатуры двух чисел в 9-ричной системе счисления размером с слово, выполнение над ними деления и вывода результата в исходной системе счисления. Программа предусматривает контроль вводимой информации и результат операции.
лабораторная работа [11,3 K], добавлен 13.02.2009Разработка класса "Калькулятор" выполняющего ввод данных, проверку правильности введенных данных, выдачу соответствующих сообщений в случае возникновения ошибок. Листинг и скриншоты выполнения программы, порядок ее запуска. Руководство пользователя.
курсовая работа [394,2 K], добавлен 18.05.2013Выполнение операции деления в ЭВМ. Умножение чисел, представленных в форме с плавающей запятой. Методы ускорения операции умножения. Матричный метод умножения. Деление чисел в машинах с плавающей запятой. Деление чисел с восстановлением остатков.
реферат [49,4 K], добавлен 18.01.2011Проектирование и описание логической структуры программы для работы электронного магазина в среде Microsoft Visual C++. Инструкция, описывающая сведения для запуска программы. Обновление данных о доступных товарах. Поиск по каталогу доступных товаров.
курсовая работа [27,6 M], добавлен 27.04.2012