Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет№7(asm).docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
126.5 Кб
Скачать

2.Расчетно-графическая часть

Задание (Вариант 8): При выводе результата пробел делать после каждой цифры.

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

Turbo Assembler Version 3.2 01/16/13 13:08:02 Page 1

lab2.ASM

LaborRabota1

1

2 0000 sts SEGMENT PARA STACK 'Stack'

3 0000 20*(????) DW 32 DUP (?)

4 0040 sts ENDS

5

6 0000 data SEGMENT

7 0000 45 6E 74 65 72 0A 0D+ mes1 db 'Enter',0Ah,0Dh,'$'

8 24

9 0008 31 73 74 0A 0D 24 mes2 db '1st',0Ah,0Dh,'$'

10 000E 0A 0D 32 6E 64 0A 0D+ mes3 db 10,13,'2nd',0Ah,0Dh,'$'

11 24

12 0016 0A 0D 52 65 7A 75 6C+ mes4 db 10,13,'Rezult ',0Ah,0Dh,'$'

13 74 20 0A 0D 24

14 0022 15 ?? famm db 21,?

15 0024 0A*(????) fam dw 10 dup (?)

16 0038 15 ?? tabss db 21,?

17 003A 0A*(????) tabs dw 10 dup (?)

18 004E 0A*(????) dim dw 10 dup (?)

19 0062 data ends

20

21 0000 text SEGMENT

22 assume CS:text, DS:data, SS:sts

23 0000 main proc far

24 ;-----Block 1-----------

25 0000 1E push DS

26 0001 33 C0 xor AX,AX

27 0003 50 push ax

28 ;-----Block 2-----------

29 0004 B8 0000s mov ax,data

30 0007 8E D8 mov DS,AX

31 ;-----Block 3-----------

32 0009 BA 0000r lea DX,mes1

33 000C B4 09 mov AH,09h

34 000E CD 21 int 21h

35 ;-----Block 4-----------

36 0010 BA 0008r lea DX,mes2

37 0013 B4 09 mov AH,09h

38 0015 CD 21 int 21h

39 ;-----Block 5-----------

40 0017 BA 0038r lea DX,tabss

41 001A B4 0A mov AH,0Ah

42 001C CD 21 int 21h

43 ;-----Block 6-----------

44 001E BA 000Er lea DX,mes3

45 0021 B4 09 mov AH,09h

46 0023 CD 21 int 21h

47 ;-----Block 7-----------

48 0025 BA 0022r lea DX,famm

49 0028 B4 0A mov AH,0Ah

50 002A CD 21 int 21h

51 ;-----Block 8-----------

52 002C BE 0000 mov SI,0

53 002F BF 004Er lea DI,dim

54 0032 B9 000A mov CX,10

55 ;-----Block 9-----------

56 0035 M1:

57 0035 8B 84 003Ar mov AX,tabs[SI]

Turbo Assembler Version 3.2 01/16/13 13:08:02 Page 2

lab2.ASM

LaborRabota1

58 0039 8B 9C 0024r mov bx,fam[SI]

59 003D 3B C3 cmp AX,BX

60 003F 74 03 je Equal

61 0041 B8 3030 mov AX,3030h

62 0044 Equal:

63 0044 89 05 mov [DI],AX

64 0046 83 C6 02 add SI,2

65 0049 83 C7 02 add DI,2

66 004C E2 E7 loop M1

67 ;-----Block 10----------

68 004E B5 00 mov CH,0

69 0050 B1 00 mov CL,0

70 0052 B6 19 mov DH,25

71 0054 B2 50 mov DL,80

72 0056 B7 07 mov BH,07

73 0058 B4 06 mov AH,06

74 005A B0 00 mov AL,0

75 005C CD 10 int 10h

76 ;-----Block 11----------

77 005E B4 02 mov AH,02

78 0060 B7 00 mov BH,0

79 0062 BA 0000 mov DX,0

80 0065 CD 10 int 10h

81 ;-----Block 12----------

82 0067 BA 0016r lea DX,mes4

83 006A B4 09 mov AH,09

84 006C CD 21 int 21h

85 ;-----Block 13----------

86 006E B9 0005 mov CX,5

87 0071 BE 0000 mov SI,0

88 0074 M2:

89 0074 51 push CX

90 0075 8B 84 004Er mov AX,dim[SI]

91 0079 B3 04 mov BL,04h

92 007B E8 0010 call print

93 007E 8B 84 0050r mov AX,dim[SI+2]

94 0082 B3 10 mov BL,10h

95 0084 E8 0007 call print

96 0087 59 pop CX

97 0088 83 C6 04 add SI,4

98 008B E2 E7 loop M2

99 ;-----------------------

100 008D CB ret

101 008E main endp

102 ;=======================

103 008E print proc

104 ;-----Block 14----------

105 008E 50 push AX

106 ;-----Block 15----------

107 008F B4 09 mov AH,09

108 0091 B7 00 mov BH,0

109 0093 B9 0001 mov CX,1

110 0096 CD 10 int 10h

111 ;-----Block 16----------

112 0098 B4 03 mov AH,03

113 009A B7 00 mov BH,0

114 009C CD 10 int 10h

Turbo Assembler Version 3.2 01/16/13 13:08:02 Page 3

lab2.ASM

LaborRabota1

115 ;-----Block 17----------

116 009E 80 C2 02 add DL,1

117 00A1 B4 02 mov AH,02

118 00A3 B7 00 mov BH,0

119 00A5 CD 10 int 10h

120 ;-----Block 18----------

121 00A7 58 pop AX

122 00A8 86 E0 xchg AH,AL

123 ;-----Block 19----------

124 00AA B4 09 mov AH,09

125 00AC B9 0001 mov CX,1

126 00AF CD 10 int 10h

127 ;-----Block 20----------

128 00B1 B4 03 mov AH,03

129 00B3 B7 00 mov BH,0

130 00B5 CD 10 int 10h

131 ;-----Block 21----------

132 00B7 80 C2 02 add DL,2

133 00BA B4 02 mov AH,02

134 00BC B7 00 mov BH,0

135 00BE CD 10 int 10h

136 ;-----------------------

137 00C0 C3 ret

138 00C1 print endp

139 00C1 text ends

140 end main