Контрольные примеры. В результате последовательного выполнения этапов получены исходный объектный и отлаженный загрузочный модули

В результате последовательного выполнения этапов получены исходный объектный и отлаженный загрузочный модули. На рисунке 2 показаны процессы разработки программы в среде TASM.

Контрольные примеры. В результате последовательного выполнения этапов получены исходный объектный и отлаженный загрузочный модули - student2.ru

Рисунок 2 - Этапы разработки первой программы на ассемблере в среде DOS. Трансляция, компиляция и отладка программы в среде DOS

На рисунке 3 представлено окно DOS в результате последовательного выполнения команд.

Контрольные примеры. В результате последовательного выполнения этапов получены исходный объектный и отлаженный загрузочный модули - student2.ru

Рисунок 3 – Окно DOS после выполнения программы

Выводы

1. Изучили цепочечные команды в языке Assembler;

2. Разработана программа на ассемблере содержащая цепочечные команды и выполняющая замену некоторых символов с использованием стандартного пакета Turbo Assembler.

Список использованной литературы

1. Рудаков П.И., Финогенов К.Г. Программирование на языке Ассемблера IBMPC. Обнинск: Принтер, 1999.

2. Юров В., Хорошенко С. Ассемблер. Учебный курс. СПб: Питер, 2006.

ПРИЛОЖЕНИЕ

Листинг программы

Turbo Assembler Version 4.1 18/05/12 12:01:58 Page 1

prog5.asm

1 0000 .model small

2 0000 .stack 256

3 0000 .data

4 0000 0A 0D 53 69 6D 76 6F+ f db 0ah,0dh,"Simvol naiden","$"

5 6C 20 6E 61 69 64 65+

6 6E 24

7 0010 0A 0D 53 69 6D 76 6F+ nw db 0ah,0dh,"Simvol ne naiden","$"

8 6C 20 6E 65 20 6E 61+

9 69 64 65 6E 24

10 0023 0A 0D 49 73 63 68 6F+ mes1 db 0ah,0dh,"Ischodnaia stroka:","$"

11 64 6E 61 69 61 20 73+

12 74 72 6F 6B 61 3A 24

13 0038 15 00 15*(24) stq db 21,0,21 dup("$")

14 004F 0A 0D 24 db 0ah,0dh,'$'

15 0052 0A 0D 56 76 65 64 69+ mes2 db 0ah,0dh,"Vvedite simvol, na kotorii sleduet zamenit simvol 1"

16 74 65 20 73 69 6D 76+

17 6F 6C 2C 20 6E 61 20+

18 6B 6F 74 6F 72 69 69+

19 20 73 6C 65 64 75 65+

20 74 20 7A 61 6D 65 6E+

21 69 74 20 73 69 6D 76+

22 6F 6C 20 31

23 0087 0A 0D 24 db 0ah,0dh,'$'

24 008A 0A 0D 4E 6F 76 61 69+ mes3 db 0ah,0dh,'Novaia stroka: ','$'

25 61 20 73 74 72 6F 6B+

26 61 3A 20 24

27 009C 0A 0D 56 76 65 64 69+ mes6 db 0ah,0dh,'Vvedite simvol 1: ','$'

28 74 65 20 73 69 6D 76+

29 6F 6C 20 31 3A 20 24

30 ;db 0ah,0dh,'$'

31 00B1 0A 0D 44 6C 69 61 20+ mes7 db 0ah,0dh,'Dlia zavershenia najmi ENTER.','$'

32 7A 61 76 65 72 73 68+

33 65 6E 69 61 20 6E 61+

34 6A 6D 69 20 45 4E 54+

35 45 52 2E 24

36 00D1 2A mes4 db 6 ("$")

37 ;mes5 db 3 ("$"

38 00D2 .code

39 assume ds:@data,es:@data

40 0000 main:

41 0000 B8 0000s mov ax,@data

42 0003 8E D8 mov ds,ax

43 0005 8E C0 mov es,ax

44 0007 B4 09 mov ah,09h

45 0009 BA 0023r lea dx,mes1

46 000C CD 21 int 21h

47 000E B4 0A mov ah,0ah

48 0010 BA 0038r lea dx,stq

49 0013 CD 21 int 21h

50 0015 B4 09 mov ah,09h

51 0017 BA 009Cr lea dx,mes6

52 001A CD 21 int 21h

53 001C B4 01 mov ah,01h

54 001E CD 21 int 21h

55 0020 FC cld

56 0021 BF 0038r lea di,stq

57 0024 B9 0016 mov cx,22

_Turbo Assembler Version 4.1 18/05/12 12:01:58 Page 2

prog5.asm

58 0027 BD 0001 mov bp,01h

59 002A F2> AE repne scas stq

60 002C 74 14 je found

61 002E failed:

62 002E B4 09 mov ah,09h

63 0030 BA 0010r lea dx,nw

64 0033 CD 21 int 21h

65 0035 BA 00D1r lea dx,mes4

66 0038 B4 0A mov ah,0ah

67 003A CD 21 int 21h

68 003C B9 0008 mov cx,8

69 003F EB 24 90 jmp exit

70 0042 found:

71 0042 4F dec di

72 0043 F2> AE repne scas stq

73 0045 50 push ax

74 0046 83 FD 01 cmp bp,01h

75 0049 75 0D jne m1

76 004B B4 09 mov ah,09h

77 004D BA 0052r lea dx,mes2

78 0050 CD 21 int 21h

79 0052 B4 01 mov ah,01h

80 0054 CD 21 int 21h

81 0056 8A D8 mov bl,al

82 0058 m1:

83 0058 8A C3 mov al,bl

84 005A 4F dec di

85 005B FC cld

86 005C AA stos stq

87 005D 47 inc di

88 005E 58 pop ax

89 005F 45 inc bp

90 0060 83 F9 00 cmp cx,0

91 0063 75 DD jne found

92 0065 exit:

93 0065 83 F9 08 cmp cx,8

94 0068 74 0F je m2

95 006A B4 09 mov ah,09h

96 006C BA 008Ar lea dx,mes3

97 006F CD 21 int 21h

98 0071 BA 0038r lea dx,stq

99 0074 83 C2 02 add dx,2

100 0077 CD 21 int 21h

101 0079 m2:

102 0079 B4 09 mov ah,09h

103 007B BA 00B1r lea dx,mes7

104 007E CD 21 int 21h

105 0080 BA 00D1r lea dx,mes4

106 0083 B4 0A mov ah,0ah

107 0085 CD 21 int 21h

108 0087 B8 4C00 mov ax,4c00h

109 008A CD 21 int 21h

110 end main

_Turbo Assembler Version 4.1 18/05/12 12:01:58 Page 3

Symbol Table

Symbol Name Type Value Cref (defined at #)

??DATE Text "18/05/12"

??FILENAME Text "prog5 "

??TIME Text "12:01:58"

??VERSION Number 040A

@32BIT Text 0 #1

@CODE Text _TEXT #1 #1 #38

@CODESIZE Text 0 #1

@CPU Text 0101H

@CURSEG Text _TEXT #3 #38

@DATA Text DGROUP #1 39 39 41

@DATASIZE Text 0 #1

@FILENAME Text PROG5

@INTERFACE Text 000H #1

@MODEL Text 2 #1

@STACK Text DGROUP #1

@WORDSIZE Text 2 #3 #38

EXIT Near _TEXT:0065 69 #92

F Byte DGROUP:0000 #4

FAILED Near _TEXT:002E #61

FOUND Near _TEXT:0042 60 #70 91

M1 Near _TEXT:0058 75 #82

M2 Near _TEXT:0079 94 #101

MAIN Near _TEXT:0000 #40 110

MES1 Byte DGROUP:0023 #10 45

MES2 Byte DGROUP:0052 #15 77

MES3 Byte DGROUP:008A #24 96

MES4 Byte DGROUP:00D1 #36 65 105

MES6 Byte DGROUP:009C #27 51

MES7 Byte DGROUP:00B1 #31 103

NW Byte DGROUP:0010 #7 63

STQ Byte DGROUP:0038 #13 48 56 59 72 86 98

Groups & Segments Bit Size Align Combine Class Cref (defined at #)

DGROUP Group #1 1 39 39 41

STACK 16 0100 Para Stack STACK #2

_DATA 16 00D2 Word Public DATA #1 #3

_TEXT 16 008C Word Public CODE #1 1 #38 38

_

Наши рекомендации