отчет asm 6 (Готовая лаба №6)

2018-01-09СтудИзба

Описание файла

Файл "отчет asm 6" внутри архива находится в папке "Готовая лаба №6". Документ из архива "Готовая лаба №6", который расположен в категории "". Всё это находится в предмете "системное программирование" из 4 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "системное программирование" в общих файлах.

Онлайн просмотр документа "отчет asm 6"

Текст из документа "отчет asm 6"

Защищено:

Гапанюк Ю. Е.

"__"_____________2014 г.

Демонстрация:

Гапанюк Ю. Е.

"__"_____________2014 г.

Отчет по лабораторной работе № 6 по курсу

Системное программирование

С доп Требованиями

Ввод и распечатка параметров к.с

4

(количество листов)

Вариант № 9

ИСПОЛНИТЕЛЬ:

студент группы ИУ5-42

_____________________

(подпись)

Зайков С.А.

"__"_____________2014 г.

Москва, МГТУ - 2014

_____________________________________________________________________________________________





СОДЕРЖАНИЕ



1. Цель и задание работы 3

2. Блок-схема алгоритма программы 3

3. Листинг кода 4

4. Результаты работы программы 4



1 Цель и задание работы

Разработать и отладить программу на языке Ассемблер для ввода, анализа (расшифровки, фактически грамматического разбора) и распечатки параметров командной строки при запуске программы (параметры размещаются в области PSP со смещением 081h). Нужно также описать в БНФ синтаксис запуска вашей программы с параметрами в командной строке для разработанной программы. Для этого надо изучить раздел 4 методических указаний к ЛР. Программа должна быть скомпонована в виде *.ЕХЕ – исполнимого файла.

2 Блок-схема алгоритма программы

3. Листинг кода

Turbo Assembler Version 3.1 05/04/14 10:43:31 Page 1

lab6.ASM

1 0000 stseg segment stack 'STACK'

2 0000 0100*(0000) DW 256 dup(0)

3 0200 stseg ends

4 0000 data segment 'DATA'

5 0000 4E 6F 20 65 6E 74 65+ npar DB 'No entered params$'

6 72 65 64 20 70 61 72+

7 61 6D 73 24

8 0012 46 69 72 73 74 20 70+ par1_Y DB 'First parametre: /c = y$'

9 61 72 61 6D 65 74 72+

10 65 3A 20 2F 63 20 3D+

11 20 79 24

12 002A 46 69 72 73 74 20 70+ par1_N DB 'First parametre: /c = n$'

13 61 72 61 6D 65 74 72+

14 65 3A 20 2F 63 20 3D+

15 20 6E 24

16 0042 46 69 72 73 74 20 70+ npar1 DB 'First parametre: Error$'

17 61 72 61 6D 65 74 72+

18 65 3A 20 45 72 72 6F+

19 72 24

20 0059 53 65 63 6F 6E 64 20+ par2 DB 'Second parametre: Entered$'

21 70 61 72 61 6D 65 74+

22 72 65 3A 20 45 6E 74+

23 65 72 65 64 24

24 0073 53 65 63 6F 6E 64 20+ npar2 DB 'Second parametre: Error$'

25 70 61 72 61 6D 65 74+

26 72 65 3A 20 45 72 72+

27 6F 72 24

28 008B 54 68 69 72 64 20 70+ par3 DB 'Third parametre: k=<******> $'

29 61 72 61 6D 65 74 72+

30 65 3A 20 6B 3D 3C 2A+

31 2A 2A 2A 2A 2A 3E 20+

32 24

33 00A8 54 68 69 72 64 20 70+ npar3 DB 'Third parametre: Error'

34 61 72 61 6D 65 74 72+

35 65 3A 20 45 72 72 6F+

36 72

37 00BE 50 72 65 73 73 20 2A+ s_star DB 'Press *$'

38 24

39 00C6 50 72 65 73 73 20 45+ s_enter DB 'Press Enter$'

40 6E 74 65 72 24

41 00D2 5A 61 79 6B 6F 76 20+ fio DB 'Zaykov S.A, IU5-42, Var 9$'

42 53 2E 41 2C 20 49 55+

43 35 2D 34 32 2C 20 56+

44 61 72 20 39 24

45 00EC 5A 61 79 6B 6F 76 20+ key DB 'Zaykov $'

46 24

47 00F4 00 y DB 0

48 00F5 00 fl1 DB 0

49 00F6 00 fl2 DB 0

50 00F7 00 fl3 DB 0

51 00F8 00 i DB 0

52 00F9 data ends

53 0000 mycode segment 'code'

54 assume cs:mycode, ds:data, ss:stseg

55 0000 start:

56 0000 B8 0000s MOV AX,DATA

57 0003 8E D8 MOV DS,AX

Turbo Assembler Version 3.1 05/04/14 10:43:31 Page 2

lab6.ASM

58 0005 26: 8A 0E 0080 MOV CL,ES:[80h]

59 000A 80 F9 00 CMP CL,0

60 000D 77 09 JA par1

61 000F BA 0000r MOV DX, offset npar

62 0012 E8 0176 CALL PutCh

63 0015 E9 00AF JMP finish

64 0018 Par1:

65 0018 B5 00 MOV CH,0

66 001A BF 0081 MOV DI,81h

67 001D E8 00C3 CALL Check1

68 0020 80 3E 00F5r 01 CMP fl1,1

69 0025 75 56 JNE npar_1

70 0027 E8 0103 CALL Check2

71 002A E8 0127 CALL Check3

72 002D 80 3E 00F7r 01 CMP fl3,1

73 0032 75 55 JNE npar_3

74 0034 51 PUSH CX

75 0035 80 3E 00F4r 01 CMP y,1

76 003A 75 10 JNE nClrScr

77 003C E8 0163 CALL ClrScr

78 003F BA 0012r LEA DX,par1_Y

79 0042 E8 0146 call PUTCH

80 0045 E8 014D call Clrf

81 0048 59 POP CX

82 0049 EB 0A 90 JMP par_2

83 004C nClrScr:

84 004C BA 002Ar LEA DX,par1_N

85 004F E8 0139 CALL PutCh

86 0052 E8 0140 CALL Clrf

87 0055 par_2:

88 0055 80 3E 00F6r 01 CMP fl2,1

89 005A 75 0C JNE par2_0

90 005C BA 0059r LEA DX, par2

91 005F E8 0129 CALL PutCh

92 0062 E8 0130 CALL Clrf

93 0065 EB 0A 90 JMP par_3

94 0068 par2_0:

95 0068 BA 0073r LEA DX,npar2

96 006B E8 011D CALL PutCh

97 006E E8 0124 CALL Clrf

98 0071 par_3:

99 0071 BA 008Br LEA DX, par3

100 0074 E8 0114 CALL PutCh

101 0077 E8 011B CALL Clrf

102 007A EB 16 90 JMP exit

103 007D npar_1:

104 007D BA 0042r LEA DX,npar1

105 0080 E8 0108 CALL PutCh

106 0083 E8 010F CALL Clrf

107 0086 EB 3F 90 JMP finish

108 0089 npar_3:

109 0089 BA 008Br LEA DX,par3

110 008C E8 00FC CALL PutCh

111 008F EB 36 90 JMP finish

112 0092 exit:

113 0092 80 3E 00F6r 01 CMP fl2,1

114 0097 75 22 JNE ent

Turbo Assembler Version 3.1 05/04/14 10:43:31 Page 3

lab6.ASM

115 0099 BA 00D2r LEA DX, fio

116 009C E8 00EC CALL PutCh

117 009F E8 00F3 CALL Clrf

118 00A2 BA 00BEr LEA DX,s_star

119 00A5 E8 00E3 CALL PutCh

120 00A8 E8 00EA CALL Clrf

121 00AB E8 001E CALL g_star

122 00AE E8 00E4 CALL Clrf

123 00B1 80 3E 00F4r 01 CMP y,1

124 00B6 75 0F JNE finish

125 00B8 E8 00E7 CALL ClrScr

126 00BB ent:

127 00BB BA 00C6r LEA DX,s_enter

128 00BE E8 00CA CALL PutCh

129 00C1 E8 00D1 CALL Clrf

130 00C4 E8 0013 CALL g_enter

131 00C7 finish:

132 00C7 B8 4C00 MOV AX,4C00h

133 00CA CD 21 INT 21h

134 00CC g_star PROC

135 00CC start1:

136 00CC B4 08 MOV AH,08h

137 00CE CD 21 INT 21h

138 00D0 3C 2A CMP AL, '*'

139 00D2 75 F8 JNE start1

140 00D4 8A D0 MOV DL,AL

141 00D6 E8 00B2 CALL PutCh

142 00D9 C3 RET

143 00DA g_star ENDP

144 00DA g_enter PROC

145 00DA entr:

146 00DA B4 08 MOV AH,08h

147 00DC CD 21 INT 21h

148 00DE 3C 0D CMP AL, 0Dh

149 00E0 75 F8 JNE entr

150 00E2 C3 RET

151 00E3 g_enter ENDP

152

153 00E3 Check1 PROC

154 00E3 4F DEC DI

155 00E4 E8 009C CALL ProbClr

156 00E7 26: 80 3D 2F CMP BYTE PTR ES:[DI], '/'

157 00EB 75 3F JNE Check1_e

158 00ED 47 INC DI

159 00EE 26: 80 3D 63 CMP BYTE PTR ES:[DI], 'c'

160 00F2 75 06 JNE param_c

161 00F4 26: 80 3D 43 CMP BYTE PTR ES:[DI], 'C'

162 00F8 75 32 JNE Check1_e

163 00FA param_c:

164 00FA 47 INC DI

165 00FB 26: 80 3D 3D CMP BYTE PTR ES:[DI], '='

166 00FF 75 2B JNE Check1_E

167 0101 47 INC DI

168 0102 26: 80 3D 79 CMP BYTE PTR ES:[DI], 'y'

169 0106 74 06 JE param_y

170 0108 26: 80 3D 59 CMP BYTE PTR ES:[DI], 'Y'

171 010C 75 0D JNE param_n

Turbo Assembler Version 3.1 05/04/14 10:43:31 Page 4

lab6.ASM

172 010E param_y:

173 010E C6 06 00F5r 01 MOV fl1,1

174 0113 C6 06 00F4r 01 mov y,1

175 0118 EB 12 90 JMP Check1_e

176 011B param_n:

177 011B 26: 80 3D 6E CMP BYTE PTR ES:[DI],'n'

178 011F 74 06 JE param_nn

179 0121 26: 80 3D 4E CMP BYTE PTR ES:[DI],'N'

180 0125 75 05 JNE Check1_e

181 0127 param_nn:

182 0127 C6 06 00F5r 01 MOV fl1,1

183 012C Check1_e:

184 012C C3 RET

185 012D Check1 ENDP

186 012D Check2 PROC

187 012D E8 0053 CALL ProbClr

188 0130 26: 80 3D 2F CMP BYTE PTR ES:[DI],'/'

189 0134 75 1B JNE Check2_e

190 0136 47 INC DI

191 0137 26: 80 3D 68 CMP BYTE PTR ES:[DI], 'h'

192 013B 74 0C JE param_h

193 013D 26: 80 3D 48 CMP BYTE PTR ES:[DI], 'H'

194 0141 74 06 JE param_h

195 0143 26: 80 3D 3F CMP BYTE PTR ES:[DI], '?'

196 0147 75 08 JNE Check2_e

197 0149 param_h:

198 0149 C6 06 00F6r 01 MOV fl2,1

199 014E 47 INC DI

200 014F 47 INC DI

201 0150 47 INC DI

202 0151 Check2_e:

203 0151 4F DEC DI

204 0152 4F DEC DI

205 0153 C3 RET

206 0154 Check2 ENDP

207 0154 Check3 PROC

208 0154 E8 002C CALL ProbClr

209 0157 26: 80 3D 2F CMP BYTE PTR ES:[DI], '/'

210 015B 75 25 JNE Check3_e

211 015D 47 INC DI

212 015E 26: 80 3D 6B CMP BYTE PTR ES:[DI], 'k'

213 0162 74 07 JE param_k

214 0164 26: 80 3D 4B CMP BYTE PTR ES:[DI], 'K'

215 0168 75 18 JNE Check3_e

216 016A 47 INC DI

217 016B param_k:

218 016B 47 INC DI

219 016C 26: 80 3D 3D CMP BYTE PTR ES:[DI], '='

220 0170 75 10 JNE Check3_e

221 0172 47 INC DI

222 0173 B9 0006 MOV CX,6

223 0176 BE 00ECr MOV SI, offset key

224 0179 F3> A6 REP CMPSB

225 017B 75 05 JNE Check3_e

226 017D C6 06 00F7r 01 MOV fl3, 1

227 0182 Check3_e:

228 0182 C3 RET

Turbo Assembler Version 3.1 05/04/14 10:43:31 Page 5

lab6.ASM

229 0183 Check3 ENDP

230

231 0183 ProbClr PROC

232 0183 REPEAT:

233 0183 47 INC DI

234 0184 26: 80 3D 20 CMP BYTE PTR ES:[DI], ' '

235 0188 74 F9 JE REPEAT

236 018A C3 RET

237 018B ProbClr ENDP

238

239 018B PutCh PROC

240 018B B4 09 MOV AH,09h

241 018D CD 21 INT 21h

242 018F C3 RET

243 0190 PutCh ENDP

244 0190 GetCh PROC

245 0190 B4 01 MOV AH,01h

246 0192 CD 21 INT 21h

247 0194 C3 RET

248 0195 GetCh ENDP

249 0195 Clrf PROC

250 0195 B4 02 MOV AH,02h

251 0197 B2 0A MOV DL,10

252 0199 CD 21 INT 21h

253 019B B4 02 MOV AH,02h

254 019D B2 0D MOV DL,13

255 019F CD 21 INT 21h

256 01A1 C3 RET

257 01A2 Clrf ENDP

258 01A2 ClrScr PROC

259 01A2 B4 00 MOV AH,00

260 01A4 B0 03 MOV AL,03

261 01A6 CD 10 INT 10H

262 01A8 C3 RET

263 01A9 ClrScr ENDP

264 01A9 MYCODE ENDS

265 END START

Turbo Assembler Version 3.1 05/04/14 10:43:31 Page 6

Symbol Table

Symbol Name Type Value

??DATE Text "05/04/14"

??FILENAME Text "lab6 "

??TIME Text "10:43:31"

??VERSION Number 030A

@CPU Text 0101H

@CURSEG Text MYCODE

@FILENAME Text LAB6

@WORDSIZE Text 2

CHECK1 Near MYCODE:00E3

CHECK1_E Near MYCODE:012C

CHECK2 Near MYCODE:012D

CHECK2_E Near MYCODE:0151

CHECK3 Near MYCODE:0154

CHECK3_E Near MYCODE:0182

CLRF Near MYCODE:0195

CLRSCR Near MYCODE:01A2

ENT Near MYCODE:00BB

ENTR Near MYCODE:00DA

EXIT Near MYCODE:0092

FINISH Near MYCODE:00C7

FIO Byte DATA:00D2

FL1 Byte DATA:00F5

FL2 Byte DATA:00F6

FL3 Byte DATA:00F7

GETCH Near MYCODE:0190

G_ENTER Near MYCODE:00DA

G_STAR Near MYCODE:00CC

I Byte DATA:00F8

KEY Byte DATA:00EC

NCLRSCR Near MYCODE:004C

NPAR Byte DATA:0000

NPAR1 Byte DATA:0042

NPAR2 Byte DATA:0073

NPAR3 Byte DATA:00A8

NPAR_1 Near MYCODE:007D

NPAR_3 Near MYCODE:0089

PAR1 Near MYCODE:0018

PAR1_N Byte DATA:002A

PAR1_Y Byte DATA:0012

PAR2 Byte DATA:0059

PAR2_0 Near MYCODE:0068

PAR3 Byte DATA:008B

PARAM_C Near MYCODE:00FA

PARAM_H Near MYCODE:0149

PARAM_K Near MYCODE:016B

PARAM_N Near MYCODE:011B

PARAM_NN Near MYCODE:0127

PARAM_Y Near MYCODE:010E

PAR_2 Near MYCODE:0055

PAR_3 Near MYCODE:0071

PROBCLR Near MYCODE:0183

PUTCH Near MYCODE:018B

REPEAT Near MYCODE:0183

START Near MYCODE:0000

Turbo Assembler Version 3.1 05/04/14 10:43:31 Page 7

Symbol Table

START1 Near MYCODE:00CC

S_ENTER Byte DATA:00C6

S_STAR Byte DATA:00BE

Y Byte DATA:00F4

Groups & Segments Bit Size Align Combine Class

DATA 16 00F9 Para none DATA

MYCODE 16 01A9 Para none CODE

STSEG 16 0200 Para Stack STACK

4. Результаты работы программы

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5057
Авторов
на СтудИзбе
456
Средний доход
с одного платного файла
Обучение Подробнее