Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Тестирование программного комплекса





Для тестирования программы был разработан специальный пример, в который внесены всевозможные структуры такие как AGO, IF, AIF, ссылающиеся на различные метки, вложенные макровызовы. Пример находится в директории с программой и носит имя ‘Тест.asm’. Его содержимое (для удобства были добавлены номера строк):


1. First Start

2. ExtName Buf Str1

3. ExtRef Str2

4. Proc LD R1 Str3

5. LD R2 Str2

6. M1 Par1=R5,Par2

7. M5 Par5=*fff

8. M4 Par5=*34

9. Add R1 R2

10. M1 Macro Par1,Par2=*faf

11. ADD Par1 R2

12. LD Buf Par2

13. M2 Macro Par1,Par3

14. LD Par2 Buf

15. M3 Macro Par3

16. LOADR1 Str1

17. ESLI P1=100

18. WHILE P1>3

19. ADD R7 R7

20. ESLI P1=-2

21. ENDW

22. Mend

23. LOADR1 R2

24. Mend

25. M2

26. M4 Macro Par5,Par2

27. ADD Str2 Str3

28. Mend

29. LD Buf R4

30. Mend

31. SAV *ff R6

32. M5 Macro Par5

33. LOADR1 Str3

34. Mend

35. LD R3 R4

36. M2 Par3=R4,Par1=Str3

37. M3 Par3=Buf

38. JMP Proc

39. Str1 WORD 3

40. Str3 Word 1

41. Buf Byte "Hello"

42. End


Результат работы полного прохода Макропроцессора:

Конечный текст:


  1. First Start
  2. ExtName Buf Str1
  3. ExtRef Str2
  4. Proc LD R1 Str3
  5. LD R2 Str2
  6. ADD R5 R2
  7. LD Buf *faf
  8. ADD R7 R7
  9. ADD R7 R7
  10. ADD R7 R7
  11. ADD R7 R7
  12. ADD R7 R7
  13. ADD R7 R7
  14. ADD R7 R7
  15. ADD R7 R7
  16. ADD R7 R7
  17. ADD R7 R7
  18. ADD R7 R7
  19. ADD R7 R7
  20. ADD R7 R7
  21. ADD R7 R7
  22. ADD R7 R7
  23. ADD R7 R7
  24. ADD R7 R7
  25. ADD R7 R7
  26. ADD R7 R7
  27. ADD R7 R7
  28. ADD R7 R7
  29. ADD R7 R7
  30. ADD R7 R7
  31. ADD R7 R7
  32. ADD R7 R7
  33. ADD R7 R7
  34. ADD R7 R7
  35. ADD R7 R7
  36. ADD R7 R7
  37. ADD R7 R7
  38. ADD R7 R7
  39. ADD R7 R7
  40. ADD R7 R7
  41. ADD R7 R7
  42. ADD R7 R7
  43. ADD R7 R7
  44. ADD R7 R7
  45. ADD R7 R7
  46. ADD R7 R7
  47. ADD R7 R7
  48. ADD R7 R7
  49. ADD R7 R7
  50. ADD R7 R7
  51. ADD R7 R7
  52. ADD R7 R7
  53. ADD R7 R7
  54. ADD R7 R7
  55. ADD R7 R7
  56. ADD R7 R7
  57. LD *faf Buf
  58. LOADR1 R2
  59. LD Buf R4
  60. LOADR1 Str3
  61. ADD Str2 Str3
  62. Add R1 R2
  63. SAV *ff R6
  64. LD R3 R4
  65. LD *faf Buf
  66. LOADR1 R2
  67. LOADR1 Str1
  68. JMP Proc
  69. Str1 WORD 3
  70. Str3 Word 1
  71. Buf Byte "Hello"
  72. End

ТМО:


№ МКОП Оп1 Оп2

1 Macro Par1,Par2=*faf

2 ADD Par1 R2

3 LD Buf Par2

4 Macro Par1,Par3

5 LD Par2 Buf

6 Macro Par3

7 LOADR1 Str1

8 ESLI P1=100

9 WHILE P1>3

10 ADD R7 R7

11 ESLI P1=-2

12 ENDW

13 Mend

14 LOADR1 R2

15 Mend

16 M2

17 Macro Par5,Par2

18 ADD Str2 Str3

19 Mend

20 LD Buf R4

21 Mend

22 Macro Par1,Par3

23 LD Par2 Buf

24 Macro Par3

25 LOADR1 Str1

26 Mend

27 LOADR1 R2

28 Mend

29 Macro Par3

30 LOADR1 Str1

31 Mend

32 Macro Par5,Par2

33 ADD Str2 Str3

34 Mend

35 Macro Par5

36 LOADR1 Str3

37 Mend

 


ТИМ:

Макрос Начало Конец Вложен

M1 1 21

M2 22 28 M1

M3 29 31 M2

M4 32 34 M1

M5 35 37

 

 

Параметры макроса:

M1 Key M2 Key M4 Key M5 Key M2 Key M3 Key

Par1 R5 Par1 0 Par5 *34 Par5 *fff Par1 Str3 Par3 Buf

Par2 *faf Par3 0 Par2 0 Par3 R4

 

· В строке 5 удалим имя макроса - MV1. Таким образом, у нас отсутствует имя макроса. Запускаем Макропроцессор, результатом будет ошибка:

Отсутствует имя макроса (5)

· Изменим в строке 8 P1 на P13. Выдается ошибка:

Внутренние переменные могут иметь имена, указанные в таблице Р1,Р2,Р3,Р13-непр.

· Перенесем метку %tt раньше, чем AIF. Выдается ошибка:

Директива ссылается на метку, к которой уже была ссылка в этом макросе. Произойдет зацикливание.

· Добавим в строке вывзова MV1 MV1 zz=*5,uu параметр uu. Выдается ошибка:

Параметры могут иметь только имена, указанные в таблице в определении макроса!

 


Заключение

В ходе разработки данного курсового проекта, я получила практические и теоретические навыки по созданию приложений, реализующих логику работы однопроходного макропроцессора (без вложений макроопределений и с наличием вложенных макровызовов), с ограничением на опережающее описание макроопределения, не входящего в состав основного алгоритма Ассемблера. Уяснила, что макроязыки и соответствующие им макропроцессоры представляют собой самостоятельную форму языков программирования. Проанализировав использованный теоретический материал, выяснила, что крупные макрооперации упрощают пользование, отладку и модификацию программ, и облегчают стандартизацию. Многие разработчики вычислительных машин используют макрокоманды для автоматизации составления “подходящих” операционных систем в процессе, называемом генерацией системы. При использовании вместе с ассемблером, макропроцессор является для программиста полезным инструментом и по существу, позволяет ему самому определять свой язык "высокого" уровня. Проведя тесты программного комплекса, все ошибки были устранены, следовательно, можно говорить, что разработанные мной приложения работают правильно. Таким образом, поставленная передо мной задача была выполнена в полном объеме.

Список литературы

1. Бек А. Введение в системное программирование. – М.: "Мир", 1988.

2. Донован Дж. Системное программирование. – М.: "Мир", 1975.

3.Фельдман С.К. Системное программирование на персональном компьюторе.- 2-е издание – М.:Бук-пресс, 2006 – 512с.

Date: 2015-08-15; view: 288; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию