Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2otchyot.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
443.61 Кб
Скачать

Задание № 6 Текст задания

Взять за основу созданный в предыдущем задании шаблон консольного приложения. Создать аргументы (аргументы должны иметь длину более, чем один символ) консольного приложения связанные с заданной структурой. Приложение должно уметь распознавать аргументы и выполнять соответствующие функции (вывод информации из заданной структуры).

Вариант 13

информация о цветке

Код программы

OPTION DOTNAME

option casemap:none

include temphls.inc

include win64.inc

OPTION PROLOGUE:rbpFramePrologue

OPTION EPILOGUE:rbpFrameEpilogue

extrn WriteConsoleA : PROC

extrn AllocConsole : PROC

extrn GetStdHandle : PROC

extrn ReadConsoleA : PROC

extrn ExitProcess : proc

.data

Flowers struct

flowername db 15 dup(?)

color db 15 dup (?)

territory db 15 dup (?)

Flowers ends

Petunia1 Flowers <'Petunia'>

Petunia2 Flowers <'different'>

Petunia3 Flowers <'garden'>

Rose1 Flowers <'Rose'>

Rose2 Flowers <'different'>

Rose3 Flowers <'garden'>

Kalanchoe1 Flowers <'Kalanchoe'>

Kalanchoe2 Flowers <'different'>

Kalanchoe3 Flowers <'home'>

MoneyTree1 Flowers <'MoneyTree'>

MoneyTree2 Flowers <'green'>

MoneyTree3 Flowers <'home'>

Chamomile1 Flowers <'Chamomile'>

Chamomile2 Flowers <'white'>

Chamomile3 Flowers <'garden'>

h DWORD ?

h1 DWORD ?

read byte 20 dup(?)

NumberOfCharsRead DWORD ?

NumberOfCharsWritten DWORD ?

view byte "Flower view:", 0

col byte "Color:", 0

terr byte "Territory:", 0

error byte "ERROR!", 0

newstr byte 10

description byte "*** Press to view all information about the flower: ***", 10, 10, "Chamomile - type 'Cham'", 10, "Rose - type 'Rose'", 10, "Kalanchoe - type 'Kala'", 10, "MoneyTree - type 'Mone'", 10, "Petunia - type 'Petu'", 10, "EXIT - type 'EXIT'", 10, 0

.code

Start proc

LOCAL msg:MSG

invoke AllocConsole

invoke GetStdHandle, STD_INPUT_HANDLE

mov h, EAX

invoke GetStdHandle, STD_OUTPUT_HANDLE

mov h1, EAX

invoke WriteConsoleA,h1,ADDR description,SIZEOF description,ADDR NumberOfCharsWritten,0

Read:

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke ReadConsoleA, h, ADDR read,sizeof read, ADDR NumberOfCharsRead, 0

.if read[0] == 'E' && read[1] == 'X' && read[2] == 'I' && read[3] == 'T'

.goto Exit

.else

.if read[0] == 'P' && read[1] == 'e' && read[2] == 't' && read[3] == 'u'

.goto Petunia

.else

.if read[0] == 'R' && read[1] == 'o' && read[2] == 's' && read[3] == 'e'

.goto Rose

.else

.if read[0] == 'K' && read[1] == 'a' && read[2] == 'l' && read[3] == 'a'

.goto Kalanchoe

.else

.if read[0] == 'M' && read[1] == 'o' && read[2] == 'n' && read[3] == 'e'

.goto MoneyTree

.else

.if read[0] == 'C' && read[1] == 'h' && read[2] == 'a' && read[3] == 'm'

.goto Chamomile

.else

.endif

.endif

.endif

.endif

.endif

.endif

Error:

invoke WriteConsoleA, h1, ADDR error,sizeof error, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

.goto Read

Petunia:

invoke WriteConsoleA, h1, ADDR view,sizeof view, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR Petunia1,sizeof Petunia1, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR col,sizeof col, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR Petunia2,sizeof Petunia2, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR terr,sizeof terr, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR Petunia3,sizeof Petunia3, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

.goto Read

Rose:

invoke WriteConsoleA, h1, ADDR view,sizeof view, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR Rose1,sizeof Rose1, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR col,sizeof col, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR Rose2,sizeof Rose2, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR terr,sizeof terr, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR Rose3,sizeof Rose3, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

.goto Read

Kalanchoe:

invoke WriteConsoleA, h1, ADDR view,sizeof view, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR Kalanchoe1,sizeof Kalanchoe1, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR col,sizeof col, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR Kalanchoe2,sizeof Kalanchoe2, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR terr,sizeof terr, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR Kalanchoe3,sizeof Kalanchoe3, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

.goto Read

MoneyTree:

invoke WriteConsoleA, h1, ADDR view,sizeof view, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR MoneyTree1,sizeof MoneyTree1, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR col,sizeof col, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR MoneyTree2,sizeof MoneyTree2, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR terr,sizeof terr, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR MoneyTree3,sizeof MoneyTree3, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

.goto Read

Chamomile:

invoke WriteConsoleA, h1, ADDR view,sizeof view, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR Chamomile1,sizeof Chamomile1, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR col,sizeof col, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR Chamomile2,sizeof Chamomile2, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR terr,sizeof terr, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

invoke WriteConsoleA, h1, ADDR Chamomile3,sizeof Chamomile3, ADDR NumberOfCharsWritten, 0

invoke WriteConsoleA,h1,ADDR newstr,SIZEOF newstr,ADDR NumberOfCharsWritten,0

.goto Read

Exit:

invoke ExitProcess,0

Start endp

Рисунок 11. Блок-схема.

Рисунок 12. Результат выполнения программы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]