Лабораторная работа по дисциплине теория и проектирование ЭВМ

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ  РАДИОТЕХНИКИ , ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ )





ФАКУЛЬТЕТ   ВМС



КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ





ЛАБОРАТОРНАЯ РАБОТА Nо  2 

ПО

ДИСЦИПЛИНЕ

ТЕОРИЯ И ПРОЕКТИРОВАНИЕ ЭВМ





                                                 СТУДЕНТЫ: Львов А .Н. и Чернецкий  М. В.

ГРУППА: ВВ-61-96

                          РУКОВОДИТЕЛЬ: Иванов Е .Л.















МОСКВА

2000 



Задача  N 0    1.



Составить программу для вычисления  выражения : N= аi= а1 +а2 + … + an , где n=10 ,ai - числа  натурального   ряда “1”. РОНы использовать следующим способом :

      С – под счетчик циклов,

          L – под текущее значение  аi ,

                                                               C и D – под константы .

Результат вычислений разместить в ячейке 080Е .



С – количество циклов; C=0А

L – текущее значение константы; L=0А





Aдрес                 Коды                  Мнемоника        Комментарий



0010                    85                       ADD L                  арифметическая операция  A(A) +(Ri)

0011                   2D                       DCR L                   отрицательное приращение регистра

0012                   0D                       DCR C                   отрицательное приращение регистра   

0013                   C2                        JNZ adr                 условный переход

0014                   -                           10                           - 

0015                   -                           00                           - 

0016                   26                        MVI H                   непосредственная загрузка  регистра  

0017                    -                          08                           -

0018                    2E                       MVI L                   непосредственная загрузка регистра

0019                     -                         0E                           -

001A                   77                       MOV M,А             команда пересылки

001B                   76                       HLT                       останов

 



Задача No 2.



Составить программу для вычисления того же выражения. Константы  ai расположить в ОЗУ в ячейках с адресами  0900 , 0901, … . РОНы использовать аналогичным способом .Для вычисления текущего значения  N пользоваться командой  ADD M .Результат вычислений записать в ОЗУ в ячейку 0850. Константы ai задать произвольно .



С – счетчик  циклов ,

H, L – адрес ячейки, где находится текущее значение константы.



Адрес              Коды                       Мнемоника        Комментарий   



0900                  -                               01                         -                                  

0901                  -                               02                         -

0902                  -                               03                         -

0903                  -                               04                         -

0904                  -                               05                         -

0905                  -                               06                         -

0906                  -                               07                         -

0907                  -                               08                         -

0908                  -                               09                         -

0909                  -                               10                         -

0010                 86                             ADD M                A(A) +(Ri)

0011                 2D                            DCR L                  отрицательное приращение регистра

0012                 0D                            DCR C                  отрицательное приращение регистра                             

0013                 C2                            JNZ adr                 условный переход

0014                                                  10                          -

0015                                                  00                          -

0016                 26                             MVI H                  непосредственная  загрузка регистра

0017                                                  08                          -

0018                 2E                            MVI L                   непосредственная  загрузка  регистра                              

0019                                                  50                           -

001А	           77                             MOV M,A            команда  пересылки

001В                 76                             HLT                      останов  





Задание No  3.



Cоставить программу для пересылки массива данных, расположенных в памяти ячейки ОЗУ, начиная с 0900, в ячейки, начиная 0970.Данные выбрать произвольно . Команды расположить в ячейках, начиная с 0800 .





C=05;

D=09;

E=10;

H=09;

L=00.





Адрес                    Коды                  Мнемоника            Комментарий

                               

0800                       86                        ADD M                    A(A)+(Ri)        

0801                       EB                       XCHG                     обмен между  DE и HL 

0802                       77                        MOV M,A               команда пересылки 

0803                       3E                       MVI A                      непосредственная загрузка регистра

0804                       -                           00                             -

0805                       EB                       XCHG                     обмен между    DE   и  HL 

0806                       2C                        INR L                      положительное приращение регистра

0807                       1C                        INR E                      положительное приращение регистра 

0808                       0D                        DCR C                    отрицательное приращение регистра

0809                       C2                        JNZ  adr                  условный переход

080А                      -                           00                             -

080В                      -                           08                             -

0800С                    76                        HLT                         останов





Задача No  4.



Cоставить программу для варианта задания 3 таким образом , чтобы последний операнд массива записывался в ячейку 0970 , предпоследний – в ячейку 0971 и т.д. 



C=05;

H=09;

L=04;

D=09;

E=10.



Адрес             Коды                  Мнемоника           Комментарий



0800                86                       ADD M                      A(A)+(Ri)

0801                EB                      XCHG                        обмен между DE  и HL

0802                77                       MOV M,A                 команда пересылки

0803                 3E                      MVI A                       непосредственная    загрузка регистра 

0804                 00                       -                                  -

0805                 EB                     XCHG                        обмен между  DE   и   HL

0806                 2D                     DCR L                        отрицательное приращение регистра

0807                 1C                     INR E                          положительное приращение регистра

0808                 0D                     DCR C                         отрицательное приращение регистра

0809                 C2                     JNZ adr                        условный переход

080A                00                      -                                   -

080B                08                      -                                   -

080C                76                      HLT                             останов   





Задание Nо  5.



Составить программу для пересылки массива данных из одной области памяти в другую в соответствии со следующей схемой :



Адресное пространство ОЗУ









0800

Программа 100 ячеек

Массив данных 150

Операндов



BFF







                                                                                     Направление пересылки



Перед  составлением программы необходимо  вычислить начальные  адреса каждой области ОЗУ.



C=05;

D=08;

E=FA;

H=08;

L=64.



Адрес   Код       Мнемоника           Комментарий



0800      86          ADD M                   A(A)+(Ri)   

0801      EB         XCHG                    обмен между  (A)и   (F)

0802      77          MOV M ,A             команда пересылки

0803      3E          MVI A                    непосредственная загрузка регистра

0804       -            00                            -

0805      EB         XCHG                     обмен между  (A)и    (F)

0806      23          INX  H                     положительное приращение пары  регистров

0807      13          INX D                      положительное приращение пары регистров

0808      0D        DCR C                      отрицательное приращение регистра

0809      С2         JNZ adr                    условный переход

080A     -             00                             -              

080B     -             08                             -

080C     76           HLT                         останов   

0864     10           -

0865     20           -

0866     30           -

0867     40           -

0868     50           -



Задание No   6.



Cоставить программу умножения однобайтных двоичных чисел , используя любой алгоритм умножения.



D=05;

E=02.



Адрес          Коды                Мнемоника                Комментарий  



0010                06                   MVI B                          непосредственная загрузка регистра     

0011                -                      00                                  -

0012                0E                   MVI C                         непосредственная загрузка регистра

0013                -                      00                                  -

0014                3E                   MVI  A                        непосредственная загрузка регистра

0015                -                      01                                  -

0016                A7                  ANA A                         A(A)(Ri)      

0017                F5                   PUSH   PSW                обращение к стеку    

0018                A3                  ANA E                         A(A)(Ri)

0019                78                   MOV A,B                    команда пересылки

001А               CA                 JZ  adr                          условный переход

001B               -                      1E                                -

001С               -                      00                                -

001D               82                   ADD D                        A(A)+(Ri)

001E               1F                   RAR                             операция циклического сдвига       

001F                47                  MOV B,A                     команда пересылки

0020                79                  MOV  A,C                    команда пересылки

0021                1F                  RAR                             операция циклического сдвига

0022                4F                  MOV  C,A                   команда пересылки

0023                F1                  POP PSW                    выбор  (A) и (F)  из стека

0024                17                  RAL                             операция циклического сдвига                 

0025                D2                 JNC adr                        условный переход

0026                 -                    17                                  -

0027                 -                    00                                  -

0028                76                  HLT                              останов





Задание   No   7.



Cоставить программу для  вычисления следующего выражения : N=(a+b)-(c*d) . 

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





B=45;

C=25;

D=05;

E=02.



Адрес    Коды      Мнемоника           Комментарий



0010       78            MOV A,B               команда пересылки

0011       81            ADD С                   А(А)+(Ri)

0012       67            MOV H,A              команда пересылки

0013       CD          CALL adr               вызов подпрограммы безусловный

0014       00            -                              -

0015       19            -                              -

0016       7C           MOV A,H               команда пересылки

0017       91            SUB С                    A(A)-(Ri)

0018       76            HLT                        останов

0019       06            MVI B                     непосредственная загрузка регистра

001A      00             -                                -

001B      0E            MVI C                      непосредственная загрузка регистра

001C      00             -                                 -

001D      3E            MVI A                      непосредственная загрузка регистра

001E      01              -                               -

001F      A7            АNA A                     A(A)(Ri)

0020      F5             PUSH  PSW             ввод (А) и  (F) в стек

0021      A3            ANA E                      A(A)(Ri)

0022      78             MOV A,B                 команда пересылки

0023      CA           JZ adr                        условный переход

0024      27             -                                  -

0025      00             -                                  -

0026      82            ADD D                      A(A)+(Ri)

0027      1F            RAR                          операция циклического сдвига

0028      47            MOV B,A                 команда пересылки

0029      79            MOV A,C                 команда пересылки

002A     1F            RAR                         операция циклического сдвига

002B     4F            MOV C,A                 команда пересылки

002C     F1            POP     PSW             выбор (А) и (F) из стека

002D     17            RAL                          операция циклического сдвига

002E      С2           JNZ  adr                    условный переход  

002F      17             -                                -

0030      00             -                                 -

0031      C9           RET                           возврат из подпрограммы







ВСЕ ПРАВА ЗАЩИЩЕНЫ. НЕЛЕГАЛЬНОЕ КОПИРОВАНИЕ ПРЕСЛЕДУЕТСЯ ПО ЗАКОНУ.