96911

Команди та директиви алгоритмічної мови Assembler IBM PC

Курсовая

Информатика, кибернетика и программирование

Метою виконання курсової роботи є набуття студентами навичків використання команд та директив алгоритмічної мови Assembler IBM PC – сумісних комп’ютерів щодо обробки числових та рядкових даних, створення програм обробки чисел і рядків символів, організації умовних переходів та циклів.

Украинкский

2015-10-12

1011.5 KB

0 чел.

ЗМІСТ

[1]
ВСТУП

[2]
1 ЗАВДАННЯ «ВНУТРІШНЄ ПРЕДСТАВЛЕННЯ ЦІЛОЧИСЕЛЬНИХ ДАНИХ»

[3]
2 ЗАВДАННЯ «ВНУТРІШНЄ ПРЕДСТАВЛЕННЯ МАТЕРІАЛЬНИХ ДАНИХ»

[4]
3 ЗАВДАННЯ  «ОБЧИСЛЕННЯ ЦІЛОЧИСЕЛЬНИХ АРИФМЕТИЧНИХ ВИРАЗІВ»

[5]
4 ЗАВДАННЯ  «ОРГАНІЗАЦІЯ УМОВНИХ ПЕРЕХОДІВ»

[6]
ВИСНОВОК


ВСТУП

Метою виконання курсової роботи є набуття студентами навичків використання команд та директив алгоритмічної мови Assembler IBM PC – сумісних комп’ютерів щодо обробки числових та рядкових даних, створення програм обробки чисел і рядків символів, організації умовних переходів та циклів.

Змістом курсової роботи є виконання завдань з  метою:

1. Навчитися перетворювати цілочисельні дані у машинне уявлення.

2. Навчитися перетворювати матеріальні дані у машинне уявлення.

3. Навчитися виконувати обчислення цілочисельних арифметичних виразів.

4. Навчитися організовувати умовні переходи.

5. Навчитися організовувати цикли.


1 ЗАВДАННЯ «ВНУТРІШНЄ ПРЕДСТАВЛЕННЯ ЦІЛОЧИСЕЛЬНИХ ДАНИХ»

1. Зміст виконання завдання

Змістом виконання завдання є  переклад заданих викладачем чисел з 10-кової до 2-кової системи числення і визначення їх  внутрішнього (машинного) уявлення відповідно до діапазону знакових та без знакових форматів типів Short Int, Byte, Integer та Word. Внутрішнє представлення має бути визначено в 2-ковій та 16-ковій системах числення.

2. Порядок виконання завдання

 1)  Обчислити для свого варіанта цілі числа.

 2) Перекласти числа з 10-кової до 2-кової (або 16-кової) системи числення.

 3) Отримати їх внутрішнє представлення.

 4) Написати програму опису чисел на мові Assembler і отримати лістинг.

3. Обчислення для свого варіанту цілих чисел

Викладач задає два базових числа   і  . Студент повинен додати і відняти від них номер свого варіанта №.

Наприклад,  , , . Тоді результатом обчислення є наступні вісім цілих чисел:

1)   

2)   

3)

4)

5)      

6)      

7)     

8)     


4. Хід роботи:

Обчислення цілих чисел:

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  

5. Переведення в двійкову та шіснадцяткову системи числення:

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  

6. Код програми на мові Assembler:

7. Лістинг:


2 ЗАВДАННЯ «ВНУТРІШНЄ ПРЕДСТАВЛЕННЯ МАТЕРІАЛЬНИХ ДАНИХ»

1. Зміст виконання завдання

Змістом виконання завдання є  переклад заданих викладачем чисел з 10-кової до 2-кової системи числення і визначення їх  внутрішнього (машинного) представлення відповідно до форматів типів Single (float), Double (double), Extended (long double). Внутрішнє представлення має бути визначене в 2-ковій та 16-ковій системах числення.

2. Порядок виконання завдання

1) Обчислити для свого варіанта матеріальні числа.

2) Перекласти числа з 10-кової до 2-кової системи числення і виконати нормалізацію.

3) Отримати їх внутрішнє представлення.

4) Написати програму опису чисел на мові Assembler і отримати лістинг.

3. Обчислення для свого варіанту матеріальних чисел

Викладач задає  базове число ±X.Y. Студент повинен додати і відняти від нього номер свого варіанта № окремо для цілої та дробової частин.

Наприклад,  X = ±60, Y = ±4567, № = 45. Тоді результатом обчислення є наступні дванадцять матеріальних чисел:

1)    60.4567 + 45     45 =   105.4612

2)      60.4567 – 45     45 =     15.4522

3)  –60.4567 +45     45 =     -15.4522

4)  –60.4567 – 45    45 =    -105.4612

Інші варіанти – машинне уявлення окремо дробової і цілої частини.

 5)      105

6)        15

7)       -15

8)      -105

9)      0.4612

10)    0.4522

11)   -0.4522

12)   -0.4612

4. Хід роботи:

Обчислення дробових чисел:

1)    60.4567 - 10.001 =     50.4557 

2)      60.4567 + 10.001=     70.4577

3)  –60.4567 - 10.001 =     –70.4577

4)  –60.4567 + 10.001=     –50.4557

Інші варіанти – машинне уявлення окремо дробової і цілої частини:

 5)        70

6)        50

7)       50

8)      70

9)       0.4577

10)     0.4557

11)   0.4557

12)   0.4577

5. Переведення в двійкову системи числення:

1)   ;

;

;

2)   ;

;

;

3)  ;

;

;

4)  ;

;

;

6. Внутрішнє представлення чисел:

1. Машинний формат дійсних чисел типу float:

   

50.4557

S

Характеристика

Нормалізована мантиса

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Binary

0

1

0

0

0

0

1

0

0

1

0

0

1

0

0

1

1

1

0

1

0

0

1

0

1

0

1

0

0

0

1

1

Hex

4

2

4

9

D

2

A

3

70.4577

S

Характеристика

Нормалізована мантиса

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Binary

0

1

0

0

0

0

1

0

1

0

0

0

1

1

0

0

1

1

1

0

1

0

1

0

0

1

0

1

1

0

0

0

Hex

4

2

8

C

E

A

5

8

70.4577

S

Характеристика

Нормалізована мантиса

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Binary

1

1

0

0

0

0

1

0

1

0

0

0

1

1

0

0

1

1

1

0

1

0

1

0

0

1

0

1

1

0

0

0

Hex

C

2

8

C

E

A

5

8

50.4557

S

Характеристика

Нормалізована мантиса

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Binary

1

1

0

0

0

0

1

0

0

1

0

0

1

0

0

1

1

1

0

1

0

0

1

0

1

0

1

0

0

0

1

1

Hex

C

2

4

9

D

2

A

3

2. Машинний формат дійсних чисел типу double:

50.4557

S

Характеристика

Нормалізована мантиса

63

62

61

60

59

58

57

56

55

54

53

52

51

50

49

48

47

46

45

44

43

42

41

40

39

38

37

36

35

34

33

32

Binary

0

1

0

0

0

0

0

0

0

1

0

0

1

0

0

1

0

0

1

1

1

0

1

0

0

1

0

1

0

1

0

0

Hex

4

0

4

9

3

A

5

4

Нормалізована мантиса

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Binary

0

1

1

0

0

0

0

0

1

0

1

0

1

0

1

0

0

1

1

0

0

1

0

0

1

1

0

0

0

0

1

1

Hex

6

0

A

A

6

4

C

3

70.4577

S

Характеристика

Нормалізована мантиса

63

62

61

60

59

58

57

56

55

54

53

52

51

50

49

48

47

46

45

44

43

42

41

40

39

38

37

36

35

34

33

32

Binary

0

1

0

0

0

0

0

0

0

1

0

1

0

0

0

1

1

0

0

1

1

1

0

1

0

1

0

0

1

0

1

0

Hex

4

0

5

1

9

D

4

A

Нормалізована мантиса

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Binary

1

1

1

1

0

1

0

0

1

1

1

1

0

0

0

0

1

1

0

1

1

0

0

0

0

1

0

0

0

1

0

1

Hex

F

4

F

0

D

8

4

5

-70.4577

S

Характеристика

Нормалізована мантиса

63

62

61

60

59

58

57

56

55

54

53

52

51

50

49

48

47

46

45

44

43

42

41

40

39

38

37

36

35

34

33

32

Binary

1

1

0

0

0

0

0

0

0

1

0

1

0

0

0

1

1

0

0

1

1

1

0

1

0

1

0

0

1

0

1

0

Hex

C

0

5

1

9

D

4

A

Нормалізована мантиса

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Binary

1

1

1

1

0

1

0

0

1

1

1

1

0

0

0

0

1

1

0

1

1

0

0

0

0

1

0

0

0

1

0

1

Hex

F

4

F

0

D

8

4

5

-50.4557

S

Характеристика

Нормалізована мантиса

63

62

61

60

59

58

57

56

55

54

53

52

51

50

49

48

47

46

45

44

43

42

41

40

39

38

37

36

35

34

33

32

Binary

1

1

0

0

0

0

0

0

0

1

0

0

1

0

0

1

0

0

1

1

1

0

1

0

0

1

0

1

0

1

0

0

Hex

C

0

4

9

3

A

5

4

Нормалізована мантиса

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Binary

0

1

1

0

0

0

0

0

1

0

1

0

1

0

1

0

0

1

1

0

0

1

0

0

1

1

0

0

0

0

1

1

Hex

6

0

A

A

6

4

C

3


7. Код програми на мові Assembler:

8. Лістинг:

    

 

 


3 ЗАВДАННЯ  «ОБЧИСЛЕННЯ ЦІЛОЧИСЕЛЬНИХ АРИФМЕТИЧНИХ ВИРАЗІВ»

1. Зміст виконання завдання

Змістом виконання завдання є  обчислення цілочисельних арифметичних виразів для вхідних даних в знакових форматах довжиною 8 і 16 біт Short Int та Integer з використанням арифметичних операцій ADD, ADC, INC, SUB, SBB, DEC, NEG, IMUL, IDIV, CBW, CWD, SAL, SAR.

2. Порядок виконання завдання

1) Написати модуль обчислення арифметичного виразу на мові  Assembler.

2) Написати на мові С++ програму введення вхідних даних, обчислення арифметичного виразу та виведення отриманого результату.

3) Виконати стикування asm-модуля і С++-модуля.

4) Виконати тестування програми і виправити помилки, якщо такі знайдуться.

3. Варіант завдання

4. Код програми на мові Assembler:

5. Код програми на мові с++:

6. Тестування:


4 ЗАВДАННЯ  «ОРГАНІЗАЦІЯ УМОВНИХ ПЕРЕХОДІВ»

1. Зміст виконання завдання

Змістом виконання завдання є  обчислення заданого умовного виразу для даних у форматах INTEGER та WORD з використанням команд порівняння, умовного і безумовного переходів.

2. Порядок виконання завдання

1) Написати на мові С++ програму введення вхідних даних, обчислення умовного арифметичного виразу та виведення отриманого результату.

2) Написати модуль обчислення умовного арифметичного виразу на мові  Assembler.

3) Виконати стикування asm-модуля і С++-модуля.

4) Виконати тестування програми і виправити помилки, якщо такі знайдуться.

3. Варіант завдання

4. Код програми на мові Assembler:

5. Код програми на мові с++:

6. Тестування:


ВИСНОВОК

В результаті виконання курсової роботи було закріплено навички використання команд та директив алгоритмічної мови Assembler IBM PC – сумісних комп’ютерів щодо обробки числових та рядкових даних, створення програм обробки чисел і рядків символів, організації умовних переходів та циклів.


Змн.

Арк.

№ докум.

Підпис

ата

Арк.

РІ111.04.00.00.001ПЗ

Змн.

Арк.

№ докум.

Підпис

Дата

Арк.

РІ111.04.00.00.001ПЗ

Змн.

Арк.

№ докум.

Підпис

Дата

Арк.

РІ111.04.00.00.001ПЗ

Змн.

Арк.

№ докум.

Підпис

Дата

Арк.

РІ111.04.00.00.001ПЗ


 

А также другие работы, которые могут Вас заинтересовать

20943. Шифрування та дешифрування даних за допомогою потокових алгоритмів 51.15 KB
  100] of byte; var b : barray; NMijk : byte; z : longint; Procedure WriteBB:barray; begin IncZ; Write Z:3' : '; for i:=1 to M do writealphabet[b[i]]; writeln; end; Procedure SwapBvar B:barray;ik:byte; var x : byte; begin x:=B[i]; B[i]:=B[k]; B[k]:=x; end; Procedure PermuteAllB:barray;N:byte; var ikj : byte; begin WriteBB; while true do begin i:=N; while i 0 and B[i] =B[i1] do i:=i1; if i=0 then exit; for j:=i1 to N do if B[j] B[i] then K:=j; SwapBBik; for j:=i1 to i N1i div 2 do SwapBBjNi1j;...
20944. Створення програми для формування та перевірки повідомлень за допомогою електронно-цифрового підпису 48.9 KB
  czynniki pierwsze klucz zakryty p1 4 = 0 q1 4 = 0 p = 19; q = 23; n = pq; M = random n; print Message = M; print Cryptogram = C; C = M^2 n; m1= C ^ p1 4 p; m2= p C ^ p1 4 p; m3 = C ^ q1 4 q; m4 = q C ^ q1 4 q; fork=1p d=pk1 q; if floordda = qd;break;break;;; fork=1q d=qk1 p; if floorddb = pd;break;break;;; print Decryption = ; M1 = am1bm3 n M2 = am1bm4 n M3 = am2bm3 n M4 = am2bm4 n Результат виконання...
20945. Створення програми приховання повідомлення у графічному файлі за допомогою стеганографічних перетворень 69.4 KB
  h include iostream include string using namespace std int mainint argc char argv[] { HANDLE hFile hFileMess hFileCont; BYTE pdbFileByte pdbMessByte; const BYTE dbKeySize = 8; BYTE dbKey[dbKeySize]={4160824202832}; BYTE dbKey[dbKeySize]={12730546}; BYTE dbKey[dbKeySize]={01234567}; DWORD dwMessSizedwFileSizedwRealFiledwRealMess; DWORD dwOffsetPictdwPictSize; hFile = CreateFileargv[1]GENERIC_READFILE_SHARE_READNULLOPEN_EXISTING0NULL; dwFileSize = GetFileSizehFileNULL; pdbFileByte = new...
20946. Читання, очищення та запис секторів диску 63.5 KB
  Текст програми: Program LB1; uses doscrt; var ij:integer; n_sekn_dorn_golkol_sek:word; code:word; buf :array[0.es:=seg buf ; r.bx:=ofs buf ; intr13r; code:=r.es:=seg buf ; r.
20947. Запис і читання інформації в інженерні циліндри диска 53.38 KB
  MODEL SMALL STS segment para stack 'stack' dw 1000 dup 0 TOS label word STS ends DATA segment track80 db 801011 ;дорожкаголовкасектордлина сектора db 801021 db 801031 db 801041 db 801051 db 801061 db 801071 db 801081 db 801091 db 801101 db 801111 db 801121 db 801131 db 801141 ;таблица параметров контроллера дисководов DCP db 0DFh ;задержка переключения головок0Dh=3мс ;задержка при загрузке головокFh db 002h ;время загрузки=4мс db 025h ;задержка перед выключением двигателя db 001h ;размер...
20948. Запис і читання інформації диска с зміною чергуванням секторів 51.33 KB
  h Номер форматируемой дорожки define TRK 20 Код размера сектора 1024 байт define SEC_SIZE 2 таблица параметров дискеты typedef struct _DPT_ { unsigned char srt_hut; unsigned char dma_hlt; unsigned char motor_w; unsigned char sec_size; unsigned char eot; unsigned char gap_rw; unsigned char dtl; unsigned char gap_f; unsigned char fill_char; unsigned char hst; unsigned char mot_start; } DPT; union REGS inregs outregs; char _far diskbuf[1024]; void mainvoid; void mainvoid { struct diskinfo_t di; unsigned status; unsigned char...
20949. Стиснення даних 55.23 KB
  define MAX_VALUE 1 BITS 1 Отметим что на MSDOSмашине при define MAX_CODE MAX_VALUE 1 длине кода 14 бит необходимо компи лировать используя largeмодель. define TABLE_SIZE 9029 endif if BITS = 12 define TABLE_SIZE 5021 endif void malloc; Это массив для значений кодов int code_value; Этот массив содержит префиксы кодов unsigned int prefix_code; Этот массив содержит...
20950. Стеганографічні перетворення 33.98 KB
  h int checkchar; char rmallwschar; int main { int us = 1; char ss1ptr; cout vvedite nabor simvolov ; cin s; cout endl vvedite nabor simvolov dlya poiska i udaleniya ; cin s1; whileptr=0 { int ik; ptr=strstrss1; for i=1;i = strlens1;i { ptr=1; ptr=' '; } s=rmallwss; } return 0; } char rmallwschar str { char obuf nbuf; for obuf = str nbuf = str; obuf obuf; obuf { if isspaceobuf nbuf = obuf; } nbuf = ' 0'; return str; } Висновок: за час виконання практичноъ роботи роздивився тему...
20951. Робота з командним рядком. Мережна активність 377.58 KB
  Мережна активність Ціль роботи: одержання практичних навичок по роботі з Командним рядком і по виявленню шкідливих програм на локальному комп'ютері під керуванням Microsoft Windows XP за допомогою Командного рядка. Завдання: одержати навички роботи з Командним рядком вивчити й проаналізувати мережну активність можна за допомогою Командного рядка. Робота з Командним рядком Cmd.