Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: i8080/8085/KP580
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
rodan1217
0 / 0 / 0
Регистрация: 05.09.2014
Сообщений: 38
1

Модель учебной ЭВМ Жмакин

07.11.2014, 01:57. Просмотров 4024. Ответов 11
Метки нет (Все метки)

Задание:Составить и отладить программу учебной ЭВМ для решения следующей задачи. Три массива в памяти заданные начальными адресами и длинами . Вычислить и вывести на устройство вывода среднее арифметическое параметров этих массивов . Параметры массивов выбрать произвольно .
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2014, 01:57
Ответы с готовыми решениями:

Вычислить значение конечной суммы ряда (модель Учебной ЭВМ)
ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ Вычислить значение...

Найти номер минимального числа (учебная модель ЭВМ Жмакина)
Написать программу определения номера минимального числа элементов массива...

Найти номер первого положительного числа. Модель учебной ЭВМ Жмакина
Написать программу определения номера первого положительного числа элементов...

учебная модель Эвм. АССЕМБЛЕР
как вбить число...ну например мне нужно вычислить 1800/х

Базовая ЭВМ
1)Определить формулу, по которой программа,приведенная ниже, производит...

11
D-Tritus
12 / 12 / 1
Регистрация: 24.11.2014
Сообщений: 94
13.11.2015, 10:12 2
Поднимаю темку. Собственно добрался до работы №6 и встал со скрипом ( Вообще не понимаю каким образом заставить программно меняться CR ВУ. В книге, как назло, ни одного нормального примера с описанием того, что он делает, не приведено, а самостоятельно я опробовал некоторые свои мысли, но ни одна не сработала как надо. Может кто-нибудь хотя бы на примере работы с клавиатурой подсобить.

К сообщению прикладываю модель и описание из Жмакина.
0
Mikl___
Автор FAQ
13304 / 6377 / 629
Регистрация: 11.11.2010
Сообщений: 11,536
14.11.2015, 12:20 3
D-Tritus,
вот тут посмотри Найти номер первого положительного числа. Модель учебной ЭВМ Жмакина
0
D-Tritus
12 / 12 / 1
Регистрация: 24.11.2014
Сообщений: 94
14.11.2015, 19:09 4
Mikl___, спасибо за ссыль, но это не то ( Я уже в общем-то вышел на знающего человека - он мне материал подходящий подкинул, буду изучать.
0
Mikl___
Автор FAQ
13304 / 6377 / 629
Регистрация: 11.11.2010
Сообщений: 11,536
15.11.2015, 10:51 5
Цитата Сообщение от D-Tritus Посмотреть сообщение
Я уже в общем-то вышел на знающего человека - он мне материал подходящий подкинул
D-Tritus,
так же как ты "вышел на эту темку" следом за тобой еще кто-либо поднимет тему "модель ЭВМ Жмакина" поэтому
Отправляйте краткое описание решения
После того, как ваша проблема решена, пошлите сообщение всем, кто вам помог, дайте им знать, чем всё закончилось, и поблагодарите ещё раз за помощь. Если проблема вызвала общий интерес в списке рассылки или дискуссионной группе, имеет смысл подобное сообщение отправить и туда.

Оптимальным решение будет ответить в нити обсуждения, начатой с исходного вопроса, добавив к теме сообщения пометку «FIXED», «RESOLVED», «РЕШЕНО» или другой не менее очевидный признак решения. В списках рассылки с большим количеством сообщений, потенциальный отвечающий при взгляде на нить обсуждения «Проблема Х», завершающуюся сообщением «Проблема Х - РЕШЕНИЕ» понимает, что ему не нужно тратить своё время даже на чтение сообщений (если он лично не считает Проблему Х интересной), и поэтому может потратить своё время на решение другой проблемы.

Такое сообщение не обязательно должно быть длинным и подробным. Простое: «Привет! Проблема была связана с разрывом в сетевом кабеле! Спасибо всем. Билл», - уже лучше, чем ничего. Фактически, краткое и вежливое резюме лучше, чем длинная диссертация, если только решение не затрагивает серьёзные технические аспекты. Напишите, какие действия позволили решить проблему, но всю последовательность поиска решения повторно описывать не надо.

Для достаточно серьёзных проблем можно послать резюме с историей поиска причин. Опишите окончательную постановку проблемы. Опишите, каким оказалось решение, и укажите тупиковые пути, которых стоит избегать. Назовите всех, кто помог вам: так вы найдёте себе друзей.

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

Последнее, но немаловажное, — такого рода сообщение помогает всем участвовавшим в обсуждении получить чувство удовлетворения от того факта, что проблема закрыта. Если вы сами не технический специалист и не хакер, просто поверьте нам, что это чувство очень важно для гуру и экспертов, к которым вы обращались за помощью. Описания проблем, так в итоге и не решённых — это сплошное разочарование, хакеры жаждут увидеть их решёнными. Хорошая карма, возникающая, когда вы удовлетворяете эту жажду, очень поможет вам при составлении вопроса в следующий раз.

Подумайте, как вы можете предотвратить возникновение такой проблемы у других пользователей в будущем. Спросите себя, поможет ли изменение документации или списка ЧаВО, и если да — пошлите соответствующее изменение тем, кто поддерживает эти документы.
0
D-Tritus
12 / 12 / 1
Регистрация: 24.11.2014
Сообщений: 94
15.11.2015, 11:02 6
Mikl___, хорошо, добавим решение немного позднее
1
D-Tritus
12 / 12 / 1
Регистрация: 24.11.2014
Сообщений: 94
19.11.2015, 12:53 7
Эх, жалко нельзя прикреплять файлы - прицепил бы сразу отчеты до 6-ой работы включительно, переоформлять в пост слишком утомительно. Вроде, тег кода подобрал корректно.
Ну ладно, как и обещал чуть выше - 6-ая работа, 3-ий вариант. Задача - нужно последовательно вывести 3 сообщения на дисплей, при этом первое сообщение выводится сразу, а два последующих с задержкой до 15 и до 20с перед выводом. До запуска основного кода, естественно, необходимо подключить дисплей и таймеры в ВУ.

Итак:
код без использования прерывания
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// Очищаем дисплей
CALL M 
 
// Выводим первое сообщение (Fi) [в RD десятичные коды символов по ASCII]
RD #70 
OUT 10
RD #105
OUT 10
 
// Обнуляем первый таймер на всякий
RD #0
OUT 21
 
// Задаем ему делитель 5 и запускаем
RDI 5001
OUT 22
 
// Ждем некоторое время (при делителе 5 по таймеру 200 отсчетов - как раз ~15с)
M1: IN 21
SUB #200
JS M1
 
// Останавливаем таймер (это необязательно)
RDI 5000
OUT 22
 
// Очищаем дисплей от первого сообщения
CALL M
 
// Выдаем второе сообщение (Se)
RD #83
OUT 10
RD #101
OUT 10
 
// Обнуляем таймер
RD #0
OUT 21
 
// Запускаем его и ждем 250 отсчетов
RDI 5001
OUT 22
M2: IN 21
SUB #250
JS M2
 
// Останавливаем таймер
RDI 5000
OUT 22
 
// Очищаем дисплей от второго сообщения
CALL M
 
// Выводим третье сообщение (Th)
RD #84
OUT 10
RD #104
OUT 10
 
// Прекращаем работу
HLT
 
// Процедура очистки дисплея
// Вначале делаем сброс видеопамяти, сброс флагов E/A/Err  
M: RD #101
OUT 11
RD #102
OUT 11
// Разрешаем редактирование видеопамяти и включаем автоинкремент адреса видеоячейки
RD #011
OUT 11
RET


Для кода с прерыванием я решил использовать его для возврата к началу программы (аля JMP), потому что не смог корректно вкрутить подпрограмму непосредственно в прерывание от таймера
код с использованием прерывания

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// начало обработки прерывания
EI
// Очищаем дисплей и выводим первое сообщение
CALL M
RD #70
OUT 10
RD #105
OUT 10
 
// Счетчик устанавливаем максимально близко к порогу переполнения (на 200 единиц меньше)  
RDI 99799
OUT 21
// Запускаем
RDI 5001
OUT 22
// Ждем переполнения
M1: IN 21
JNZ M1
 
// Очищаем дисплей и выводим второе сообщение
CALL M
RD #83
OUT 10
RD #101
OUT 10
 
// Опять устанавливаем счетчик максимально близко к переполнению (на 250 единиц меньше) 
RDI 99749
OUT 21
// Запускаем
RDI 5001
OUT 22
// Ждем переполнения
M2: IN 21
JNZ M2
 
// Очищаем дисплей и выводим третье сообщение
CALL M
RD #84
OUT 10
RD #104
OUT 10
 
// Короткий таймер для того, чтобы первое сообщение после возврата к не затирало третье 
RDI 99979
OUT 21
// Включаем таймер с обработкой прерывания при переполнении 
RDI 5011
OUT 22
M3: IN 21
JNZ M3
 
// Конец обработки прерывания
IRET
 
M: RD #101
OUT 11
RD #102
OUT 11
RD #011
OUT 11
RET
0
Mikl___
Автор FAQ
13304 / 6377 / 629
Регистрация: 11.11.2010
Сообщений: 11,536
19.11.2015, 13:17 8
Цитата Сообщение от D-Tritus Посмотреть сообщение
Эх, жалко нельзя прикреплять файлы
Почему нельзя? При наборе ответа нажми на кнопку "Расширенный режим", нажми на "скрепку" и прикрепляй файлы, одновременно можно прикрепить пять зазипованных файлов, каждый объемом до 10 Мбайт
1
D-Tritus
12 / 12 / 1
Регистрация: 24.11.2014
Сообщений: 94
19.11.2015, 13:38 9
Mikl___, спасиб за ответ - запамятовал, давненько не обращался к форуме )

Ну что-ж, держите отчеты - авось, пригодятся
Итак, со 2-ой по 6-ую работы. 2-ая - 5-ая - вариант 13. 6-ая - вариант 3. DOCX-файлы от 2010 Word-а + отдельно код в текстовом файле для модели + есть ответы на контрольные вопросы местами.
2
Вложения
Тип файла: zip Jmakin_IBM_2-6.zip (458.7 Кб, 154 просмотров)
Dimoks24
0 / 0 / 0
Регистрация: 23.04.2016
Сообщений: 1
23.04.2016, 15:45 10
D-Tritus, приветствую, не подскажешь как 7 и 8 работу делать? Буду очень благодарен
Текст задания
http://www.studfiles. ru/preview/3991754/page:3/
Сюда не охота копировать текст
0
D-Tritus
12 / 12 / 1
Регистрация: 24.11.2014
Сообщений: 94
25.04.2016, 12:30 11
Dimoks24, а какие сложности - в принципе, самые простые работы из всех (на уровне 1-ой). Ну ладно - держи примеры отчетов, которые оформил по результатам выполнения, надеюсь помогут =)
2
Вложения
Тип файла: zip 7_8_IBM.zip (629.1 Кб, 99 просмотров)
Frop
0 / 0 / 0
Регистрация: 14.05.2016
Сообщений: 25
21.03.2017, 23:36 12
На лабораторную работу №1 из 2 издания есть решения? Необходима помощь.
Лабораторная работа №1 Разработка алгоритма и микропрограммы арифметической операции.

Здесь представлен рабочий код на сложение и всё выполнено в прямом коде и результат тоже в прямом коде.
Кликните здесь для просмотра всего текста
y0, y2 # Ввод первого слагаемого A
y1, y3 # Ввод первого слагаемого B
y4, y6, y13, y18; x2,0,L1
y4, y6, y8, y18, y24; x2, 0, END
L2: y4, y32, y18
L3: y26, y2
y4, y32, y17, y24
y28;1, 0, END
L1: y4, y6, y9, y18, y24; x2, 0, L2
y4, y6, y10, y18, y24
y6, y12, y18; 1, 0, L3
END: y21


Необходимо изменить на
Тип операции: сложение
Код операнда 1: прямой код
Код операнда 2: прямой код
Код выполнения: обратный код
Код результата: дополнительный код

Во 2 издании 1 лабораторная совершенно отличается от 1 издания.
0
21.03.2017, 23:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2017, 23:36

Учебная ЭВМ (Assembler).
Всем доброго времени суток. Если может кто нибудь помочь с ниже приведенной...

Базовая эвм: асинхронный обмен
Помогите пожалуйста нужен порядок действия внешнего устройства при вводе...

Учебная ЭВМ. Минимальное число
RD #40 WR 30 RD #6 WR 31 RD @30 WR 32 M1: RD 30 ADD #1 WR 30 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru