Программа-калькулятор

Рассмотрение трех программно-доступных регистров, входящих в состав контроллера клавиатуры: данных, управления и состояния. Распределение данных программы-калькулятора: двух однозначных чисел и знаков действия (плюс, минус, знаков деления и умножения).

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.