1- <!doctype html>
2- < html lang ="ru ">
3- < head >
4- < meta charset ="utf-8 ">
5- < title > Учебная трёхадресная машина УМ-3 (набор команд) | cmc@msu</ title >
6- < meta name ="description " content ="Материалы по практикуму для студентов ВМК МГУ им. М.В. Ломоносова, литература, слайды лекций, примеры заданий, онлайн-сервисы, ссылки на ресурсы " / >
7- < meta name ="keywords " content ="ВМК, МГУ, практикум, программирование, архитектура ЭВМ, пособия, лекции, книги, методички, онлайн-эмулятор, МТ, Машина Тьюринга, НАМ, Нормальные алгоритмы Маркова, машинное представление чисел, конвертер " / >
8- < link rel =stylesheet type ="text/css " href ="main.css.1 ">
9- < link rel ="shortcut icon " href ="favicon.png.1 ">
10- </ head >
11- < body >
12- < div class =body >
13-
14- < div class =header >
15- < div style ="float:right;margin-left:3em;line-height:20pt; ">
16- < a href ="https://cmcmsu.info/map/search.htm "> найти на сайте</ a >
17- </ div >
18-
19- < img src ="cmc.logo.png.1 " id =logo_icon >
20- < div class ="spacer "> </ div >
21- < a href ="https://cmcmsu.info/ "> Главная</ a > › < div class =currentSection > < a href ="https://cmcmsu.info/1course/ "> 1-й курс</ a > </ div > › < a href ="https://cmcmsu.info/2course/ "> 2-й курс</ a > › < a href ="https://cmcmsu.info/3course/ "> 3-й курс</ a > › < a href ="https://cmcmsu.info/4course/ "> 4-й курс</ a > › < a href ="https://cmcmsu.info/5course/ "> 5-й курс</ a > › < a href ="https://cmcmsu.info/special.courses/ "> Спецкурсы</ a > › < a href ="https://cmcmsu.info/links/ "> Ссылки</ a > › < a href ="https://cmcmsu.info/map/ "> Карта</ a > › < a href ="https://cmcmsu.info/1course/um3.command.set.htm?mode=print "> < small > (версия для печати)</ small > </ a >
22- </ div >
23- < div class =page >
24-
25- < p > < h1 > Учебная трёхадресная машина УМ-3 (набор команд)</ h1 >
26-
27- </ p >
28- < p > (см. также < a href ="https://cmcmsu.info/1course/um3.tasks.htm "> сборник упражнений по учебным машинам « УМ-3» </ a > )
1+ <!DOCTYPE html>
2+ < html lang ="ru "> < head >
3+ < meta http-equiv =" content-type " content =" text/html; charset=UTF-8 " >
4+ < meta charset ="utf-8 ">
5+ < title > Учебная трёхадресная машина УМ-3 (набор команд) | cmc@msu</ title >
6+ < meta name ="description " content ="Материалы по практикуму для студентов ВМК МГУ им. М.В. Ломоносова, литература, слайды лекций, примеры заданий, онлайн-сервисы, ссылки на ресурсы ">
7+ < meta name ="keywords " content ="ВМК, МГУ, практикум, программирование, архитектура ЭВМ, пособия, лекции, книги, методички, онлайн-эмулятор, МТ, Машина Тьюринга, НАМ, Нормальные алгоритмы Маркова, машинное представление чисел, конвертер ">
8+ < link rel =" stylesheet " type ="text/css " href ="um3.command.set_files/ main.css ">
9+ < link rel ="shortcut icon " href ="https://cmcmsu.info/ favicon.png ">
10+ </ head >
11+ < body >
12+ < div class =" body " >
13+
14+ < div class =" header " >
15+ < div style ="float:right;margin-left:3em;line-height:20pt; ">
16+ < a href ="https://cmcmsu.info/map/search.htm "> найти на сайте</ a >
17+ </ div >
18+
19+ < img src ="um3.command.set_files/ cmc.logo.png " id =" logo_icon " >
20+ < div class ="spacer "> </ div >
21+ < a href ="https://cmcmsu.info/ "> Главная</ a > › < div class =" currentSection " > < a href ="https://cmcmsu.info/1course/ "> 1-й курс</ a > </ div > › < a href ="https://cmcmsu.info/2course/ "> 2-й курс</ a > › < a href ="https://cmcmsu.info/3course/ "> 3-й курс</ a > › < a href ="https://cmcmsu.info/4course/ "> 4-й курс</ a > › < a href ="https://cmcmsu.info/5course/ "> 5-й курс</ a > › < a href ="https://cmcmsu.info/special.courses/ "> Спецкурсы</ a > › < a href ="https://cmcmsu.info/links/ "> Ссылки</ a > › < a href ="https://cmcmsu.info/map/ "> Карта</ a > › < a href ="https://cmcmsu.info/1course/um3.command.set.htm?mode=print "> < small > (версия для печати)</ small > </ a >
22+ </ div >
23+ < div class =" page " >
24+
25+ < p > </ p > < h1 > Учебная трёхадресная машина УМ-3 (набор команд)</ h1 >
26+
27+ < p > < /p >
28+ < p > (см. также < a href ="https://cmcmsu.info/1course/um3.tasks.htm "> сборник упражнений по учебным машинам « УМ-3» </ a > )
2929</ p > < p >
3030
31- Память УМ-3 состоит из 512 32-х разрядных слов с адресами 0— 511.
32- В слове может храниться команда, (длинное) целое или вещественное число.
31+ Память УМ-3 состоит из 512 32-х разрядных слов с адресами 0— 511.
32+ В слове может храниться команда, (длинное) целое или вещественное число.
3333Команда имеет обычную структуру:
3434</ p > < p >
3535
36- < center >
37- < table >
38- < tr > < td align =center colspan =4 > 32 разряда</ td > </ h3 >
39- < tr > < th > КОП</ th > < th > А1</ th > < th > А2</ th > < th > А3</ th > </ h3 >
40- < tr > < td align =center > 5 бит</ td > < td > 9 бит</ td > < td > 9 бит</ td > < td > 9 бит</ td > </ h3 >
41- </ table >
36+ </ p > < center >
37+ < table >
38+ < tbody > < tr > < td align =" center " colspan =" 4 " > 32 разряда</ td >
39+ </ tr > < tr > < th > КОП</ th > < th > А1</ th > < th > А2</ th > < th > А3</ th >
40+ </ tr > < tr > < td align =" center " > 5 бит</ td > < td > 9 бит</ td > < td > 9 бит</ td > < td > 9 бит</ td >
41+ </ tr > </ tbody > </ table >
4242</ center >
43- </ p > < p >
43+ < p > < /p > < p >
4444
45- где КОП занимает 5, а каждый из адресов — 9 двоичных разрядов. Почти все команды выполняются по обычной схеме:
45+ где КОП занимает 5, а каждый из адресов — 9 двоичных разрядов. Почти все команды выполняются по обычной схеме:
4646</ p > < p >
4747
48- < center >
49- << span class =Serif > < i > A</ i > < sub > 1</ sub > </ span > > := << span class =Serif > < i > A</ i > < sub > 2</ sub > </ span > > <операция> << span class =Serif > < i > A</ i > < sub > 3</ sub > </ span > >
48+ </ p > < center >
49+ << span class =" Serif " > < i > A</ i > < sub > 1</ sub > </ span > > := << span class =" Serif " > < i > A</ i > < sub > 2</ sub > </ span > > <операция> << span class =" Serif " > < i > A</ i > < sub > 3</ sub > </ span > >
5050</ center >
51- </ p > < p >
51+ < p > < /p > < p >
5252
5353Ниже приведены номера, мнемоника и семантика операций:
5454</ p > < p >
5555
56- < table >
57- < tr > < td width =40 > 01</ td > < td width =40 > СЛВ</ td > < td > сложение вещественных чисел;</ td > </ tr >
58- < tr > < td > 11</ td > < td > СЛЦ</ td > < td > сложение целых чисел;</ td > </ tr >
59- < tr > < td > 02</ td > < td > ВЧВ</ td > < td > вычитание вещественных чисел;</ td > </ tr >
60- < tr > < td > 12</ td > < td > ВЧЦ</ td > < td > вычитание целых чисел;</ td > </ tr >
61- < tr > < td > 03</ td > < td > УВЧ</ td > < td > умножение вещественных чисел;</ td > </ tr >
62- < tr > < td > 13</ td > < td > УЦЧ</ td > < td > умножение целых чисел;</ td > </ tr >
63- < tr > < td > 04</ td > < td > ДЕВ</ td > < td > деление вещественных чисел;</ td > </ tr >
64- < tr > < td > 14</ td > < td > ДЕЦ</ td > < td > деление нацело (< span class =Serif > < i > div</ i > </ span > ) целых чисел;</ td > </ tr >
65- < tr > < td > 24</ td > < td > МОД</ td > < td > остаток от деления целых (< span class =Serif > < i > mod</ i > </ span > ) чисел;</ td > </ tr >
66- < tr > < td > 00</ td > < td > ПЕР</ td > < td > пересылка слов: << span class =Serif > < i > A</ i > < sub > 1</ sub > </ span > > := << span class =Serif > < i > A</ i > < sub > 3</ sub > </ span > > ;</ td > </ tr >
67- < tr > < td > 10</ td > < td > ЦЕЛ</ td > < td > округление: << span class =Serif > < i > A</ i > < sub > 1</ sub > </ span > > := round (<< span class =Serif > < i > A</ i > < sub > 3</ sub > </ span > > );</ td > </ tr >
68- < tr > < td > 20</ td > < td > ВЕЩ</ td > < td > целое в вещественное: << span class =Serif > < i > A</ i > < sub > 1</ sub > </ span > > := real (<< span class =Serif > < i > A</ i > < sub > 3</ sub > </ span > > );</ td > </ tr >
69- < tr > < td > 09</ td > < td > БЕЗ</ td > < td > безусловный переход по адресу < span class =Serif > < i > A</ i > < sub > 2</ sub > : < i > goto</ i > < i > A</ i > < sub > 2</ sub > ;</ span > </ td > </ tr >
70- < tr valign =top > < td > 19</ td > < td > УСЛ</ td > < td > условный переход в зависимости от признака результата < span class =Serif > < i > OMEGA</ i > </ span > :
71- < pre > case OMEGA of
72- 0 : goto A1;
73- 1 : goto A2;
74- 2 : goto A3
75- end;</ pre > </ td > </ tr >
76- < tr > < td > 31</ td > < td > СТОП</ td > < td > останов машины;</ td > </ tr >
77- < tr > < td > 05</ td > < td > BBB</ td > < td > начиная с адреса < span class =Serif > < i > A</ i > < sub > 1</ sub > </ span > вводятся < span class =Serif > < i > A</ i > < sub > 2</ sub > </ span > вещественных чисел;</ td > </ tr >
78- < tr > < td > 06</ td > < td > ВВЦ</ td > < td > начиная с адреса < span class =Serif > < i > A</ i > < sub > 1</ sub > </ span > вводятся < span class =Serif > < i > A</ i > < sub > 2</ sub > </ span > целых чисел;</ td > </ tr >
79- < tr > < td > 15</ td > < td > ВЫВ</ td > < td > начиная с адреса < span class =Serif > < i > A</ i > < sub > 1</ sub > </ span > выводятся < span class =Serif > < i > A</ i > < sub > 2</ sub > </ span > веществ, чисел;</ td > </ tr >
80- < tr > < td > 16</ td > < td > ВЫЦ</ td > < td > начиная с адреса < span class =Serif > < i > A</ i > < sub > 1</ sub > </ span > выводятся < span class =Serif > < i > A</ i > < sub > 2</ sub > </ span > целых чисел.</ td > </ tr >
81- </ table >
82- </ p > < p >
56+ </ p > < table >
57+ < tbody > < tr > < td width =" 40 " > 01</ td > < td width =" 40 " > СЛВ</ td > < td > сложение вещественных чисел;</ td > </ tr >
58+ < tr > < td > 11</ td > < td > СЛЦ</ td > < td > сложение целых чисел;</ td > </ tr >
59+ < tr > < td > 02</ td > < td > ВЧВ</ td > < td > вычитание вещественных чисел;</ td > </ tr >
60+ < tr > < td > 12</ td > < td > ВЧЦ</ td > < td > вычитание целых чисел;</ td > </ tr >
61+ < tr > < td > 03</ td > < td > УВЧ</ td > < td > умножение вещественных чисел;</ td > </ tr >
62+ < tr > < td > 13</ td > < td > УЦЧ</ td > < td > умножение целых чисел;</ td > </ tr >
63+ < tr > < td > 04</ td > < td > ДЕВ</ td > < td > деление вещественных чисел;</ td > </ tr >
64+ < tr > < td > 14</ td > < td > ДЕЦ</ td > < td > деление нацело (< span class =" Serif " > < i > div</ i > </ span > ) целых чисел;</ td > </ tr >
65+ < tr > < td > 24</ td > < td > МОД</ td > < td > остаток от деления целых (< span class =" Serif " > < i > mod</ i > </ span > ) чисел;</ td > </ tr >
66+ < tr > < td > 00</ td > < td > ПЕР</ td > < td > пересылка слов: << span class =" Serif " > < i > A</ i > < sub > 1</ sub > </ span > > := << span class =" Serif " > < i > A</ i > < sub > 3</ sub > </ span > > ;</ td > </ tr >
67+ < tr > < td > 10</ td > < td > ЦЕЛ</ td > < td > округление: << span class =" Serif " > < i > A</ i > < sub > 1</ sub > </ span > > := round (<< span class =" Serif " > < i > A</ i > < sub > 3</ sub > </ span > > );</ td > </ tr >
68+ < tr > < td > 20</ td > < td > ВЕЩ</ td > < td > целое в вещественное: << span class =" Serif " > < i > A</ i > < sub > 1</ sub > </ span > > := real (<< span class =" Serif " > < i > A</ i > < sub > 3</ sub > </ span > > );</ td > </ tr >
69+ < tr > < td > 09</ td > < td > БЕЗ</ td > < td > безусловный переход по адресу < span class =" Serif " > < i > A</ i > < sub > 2</ sub > : < i > goto</ i > < i > A</ i > < sub > 2</ sub > ;</ span > </ td > </ tr >
70+ < tr valign =" top " > < td > 19</ td > < td > УСЛ</ td > < td > условный переход в зависимости от признака результата < span class =" Serif " > < i > OMEGA</ i > </ span > :
71+ < pre > case OMEGA of
72+ 0 : goto A1;
73+ 1 : goto A2;
74+ 2 : goto A3
75+ end;</ pre > </ td > </ tr >
76+ < tr > < td > 31</ td > < td > СТОП</ td > < td > останов машины;</ td > </ tr >
77+ < tr > < td > 05</ td > < td > BBB</ td > < td > начиная с адреса < span class =" Serif " > < i > A</ i > < sub > 1</ sub > </ span > вводятся < span class =" Serif " > < i > A</ i > < sub > 2</ sub > </ span > вещественных чисел;</ td > </ tr >
78+ < tr > < td > 06</ td > < td > ВВЦ</ td > < td > начиная с адреса < span class =" Serif " > < i > A</ i > < sub > 1</ sub > </ span > вводятся < span class =" Serif " > < i > A</ i > < sub > 2</ sub > </ span > целых чисел;</ td > </ tr >
79+ < tr > < td > 15</ td > < td > ВЫВ</ td > < td > начиная с адреса < span class =" Serif " > < i > A</ i > < sub > 1</ sub > </ span > выводятся < span class =" Serif " > < i > A</ i > < sub > 2</ sub > </ span > веществ, чисел;</ td > </ tr >
80+ < tr > < td > 16</ td > < td > ВЫЦ</ td > < td > начиная с адреса < span class =" Serif " > < i > A</ i > < sub > 1</ sub > </ span > выводятся < span class =" Serif " > < i > A</ i > < sub > 2</ sub > </ span > целых чисел.</ td > </ tr >
81+ </ tbody > </ table >
82+ < p > < /p > < p >
8383
8484Признак результата OMEGA вырабатывается для числовых операций по следующим правилам:
8585</ p > < p >
8686
87- < ul class ="formatted "> < li before ="• "> 0 при << span class =Serif > < i > A</ i > < sub > 1</ sub > </ span > > = 0;
88- </ li > < li before ="• "> 1 при << span class =Serif > < i > A</ i > < sub > 1</ sub > </ span > > < 0;
89- </ li > < li before ="• "> 2 при << span class =Serif > < i > A</ i > < sub > 1</ sub > </ span > > > 0.</ ul >
87+ </ p > < ul class ="formatted "> < li before ="• "> 0 при << span class =" Serif " > < i > A</ i > < sub > 1</ sub > </ span > > = 0;
88+ </ li > < li before ="• "> 1 при << span class =" Serif " > < i > A</ i > < sub > 1</ sub > </ span > > < 0;
89+ </ li > < li before ="• "> 2 при << span class =" Serif " > < i > A</ i > < sub > 1</ sub > </ span > > > 0.</ li > </ ul >
9090
91- </ p > < p >
91+ < p > < /p > < p >
9292
93- При запуске машины программа считывается с устройства ввода и помещается в память, начиная с адреса 001.
93+ При запуске машины программа считывается с устройства ввода и помещается в память, начиная с адреса 001.
9494Ниже приведено описание соответствующих структур данных на Паскале:
9595</ p > < p >
9696
9797Пример программы: вычислить для вещественных X и Y:
9898</ p > < p >
9999
100- < span class =Serif > < i > Y</ i > = < i > X</ i > + 1 при < i > X</ i > < 1.0, 1.0 при < i > X</ i > = 1.0, 1.0/(< i > X</ i > + 1.0) при < i > X</ i > > 1.0</ span > .
100+ < span class =" Serif " > < i > Y</ i > = < i > X</ i > + 1 при < i > X</ i > < 1.0, 1.0 при < i > X</ i > = 1.0, 1.0/(< i > X</ i > + 1.0) при < i > X</ i > > 1.0</ span > .
101101</ p > < p >
102102
103- < pre class =codepad >
104- 001 : 05 100 001 000 ; ввести X в слово по адресу 100
105- 002 : 01 101 100 010 ; < 101 > := Х+1.0
106- 003 : 02 000 100 010 ; сравнение X и 1.0
107- 004 : 19 005 006 008 ; условный переход
108- 005 : 00 101 000 010 ; Y := 1.0
109- 006 : 15 101 001 000 ; вывод Y
110- 007 : 31 000 000 000 ; СТОП
111- 008 : 04 101 010 101 ; Y := 1.0/(Х+1.0)
112- 009 : 09 000 006 000 ; goto 006
113- 010 : константа 1.0 ; маш. представление не конкретизируется
103+ </ p > < pre class ="codepad "> 001 : 05 100 001 000 ; ввести X в слово по адресу 100
104+ 002 : 01 101 100 010 ; <101> := Х+1.0
105+ 003 : 02 000 100 010 ; сравнение X и 1.0
106+ 004 : 19 005 006 008 ; условный переход
107+ 005 : 00 101 000 010 ; Y := 1.0
108+ 006 : 15 101 001 000 ; вывод Y
109+ 007 : 31 000 000 000 ; СТОП
110+ 008 : 04 101 010 101 ; Y := 1.0/(Х+1.0)
111+ 009 : 09 000 006 000 ; goto 006
112+ 010 : константа 1.0 ; маш. представление не конкретизируется
114113</ pre >
115- </ p > < p >
114+ < p > < /p > < p >
116115
117116Кроме того, на лекции разбирается задача суммирования элементов массива с переадресацией команд:
118117</ p > < p >
119118
120- < pre class =codepad >
121- 001 : 05 100 100 000 ; ввод Х[1..100] вещ. чисел по адресу 100
122- 002 : 01 010 010 100 ; S := S+X[i]
123- 003 : 11 002 002 009 ; «i := i+1»
124- 004 : 12 008 008 009 ; N := N-1
125- 005 : 19 006 006 002 ; ЦИКЛ
126- 006 : 15 010 001 000 ; вывод S
127- 007 : 31 000 000 000 ; СТОП.
128- 008 : 00 000 000 100 ; Счётчик цикла N=100
129- 009 : 00 000 000 001 ; Целая константа - 1
130- 010 : 00 000 000 000 ; S = 0.0
131- </ pre >
132- </ p > < p >
133- </ div >
134- < div class = footer >
135- < div style =" float:right " > < a href =" http://cmcmsu.info/ " > cmcmsu.info </ a > </ div >
136- 2006–2024 CMC@MSU < br / >
137- © Все права на публикуемые документы принадлежат соответствующим авторам. < br / >
138- Если вы нашли неточности или опечатки, смело пишите по адресу < a href =" mailto:cmcmsu.info@gmail.com " > cmcmsu.info@gmail.com </ a > </ p >
139- </ div >
140- </ div >
141- </ body >
142- </ html >
119+ </ p > < pre class =" codepad " > 001 : 05 100 100 000 ; ввод Х[1..100] вещ. чисел по адресу 100
120+ 002 : 01 010 010 100 ; S := S+X[i]
121+ 003 : 11 002 002 009 ; «i := i+1»
122+ 004 : 12 008 008 009 ; N := N-1
123+ 005 : 19 006 006 002 ; ЦИКЛ
124+ 006 : 15 010 001 000 ; вывод S
125+ 007 : 31 000 000 000 ; СТОП.
126+ 008 : 00 000 000 100 ; Счётчик цикла N=100
127+ 009 : 00 000 000 001 ; Целая константа - 1
128+ 010 : 00 000 000 000 ; S = 0.0
129+ </ pre >
130+ < p > </ p > < p >
131+ </ p > </ div >
132+ < div class =" footer " >
133+ < div style =" float:right " > < a href =" http://cmcmsu.info/ " > cmcmsu.info </ a > </ div >
134+ 2006–2024 CMC@MSU < br >
135+ © Все права на публикуемые документы принадлежат соответствующим авторам. < br >
136+ Если вы нашли неточности или опечатки, смело пишите по адресу < a href =" mailto:cmcmsu.info@gmail.com " > cmcmsu.info@gmail.com </ a > < p > </ p >
137+ </ div >
138+ </ div >
139+
140+
141+ </ body > </ html >
0 commit comments