Files
ovt3-masm-strings/README.md
T

105 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ОВТ3 — Строковые операции в MASM32
Репозиторий студента для одной лабораторной работы.
**Дисциплина:** Основы вычислительной техники и операционные системы
автоматизированных технологических комплексов (Б1.В.01)
**Специальность:** 15.03.06 «Мехатроника и робототехника»
**Семестр:** 3 · **Объём:** 4 часа
Название репозитория расшифровывается так:
| Часть | Значение |
|---|---|
| `ovt` | ОВТ — основы вычислительной техники |
| `3` | третья лабораторная работа |
| `masm` | среда MASM32, язык Assembler |
| `strings` | строковые (цепочечные) операции |
> Черновик. Требует проверки преподавателем перед выдачей студентам.
---
## О чём работа
Вы пишете GUI-приложение на языке Assembler для Win32 в среде MASM32:
в диалоговом окне Windows вводится строка, над ней выполняется
преобразование по индивидуальному варианту (Приложение А), результат
выводится обратно. В основе обработки — **цепочечные команды**
`MOVS`, `LODS`, `STOS`, `SCAS`, `CMPS` и префиксы `REP`/`REPE`/`REPNE`.
Полное задание, теория, 27 вариантов и вопросы допуска/защиты —
в **[task.md](task.md)**.
---
## Что в репозитории
```
ovt3-masm-strings/
├── README.md ← этот файл
├── task.md ← задание, теория, варианты, вопросы
├── stub/ ← заготовки (выдаёт преподаватель по лестнице)
│ ├── 01-window.asm ← каркас окна: edit + button, WM_CREATE/WM_COMMAND
│ └── 02-strings.asm ← каркас обработки строки (TODO по варианту)
└── print/ ← брошюра задания (DOCX)
└── methodical-lab3-strokovye-operatsii-student.docx
```
### Что в заготовках
| Файл | Что внутри | Что доделать |
|---|---|---|
| `stub/01-window.asm` | регистрация класса окна, создание главного окна, поле ввода (`edit`), кнопка (`button`), обработка `WM_CREATE`/`WM_COMMAND`/`WM_DESTROY` | вписать обработку строки в ветке `BN_CLICKED` |
| `stub/02-strings.asm` | примеры типовых приёмов (копирование, сравнение, поиск) и каркас `process_string` с `TODO` | реализовать алгоритм варианта цепочечными командами |
> **Важно:** заготовки — это стартовая точка, а не решение. Логику
> варианта (задание 3) пишете вы сами.
---
## Быстрый старт
1. **Установить MASM32** (пакет `masm32` — редактор QEditor, ассемблер
`ml`, компоновщик `link`). Ассемблер должен лежать в `\masm32` —
в исходниках пути вида `\masm32\include\windows.inc`.
2. **Собрать окно** из заготовки `stub/01-window.asm`:
```bat
ml /c /coff 01-window.asm
link /subsystem:windows 01-window.obj
```
Запустить `01-window.exe` — должно появиться окно с полем ввода и
кнопкой (кнопка пока выводит введённую строку без изменений).
3. **Реализовать вариант** в `stub/02-strings.asm` (процедура
`process_string`) и подключить её к обработчику кнопки.
4. **Проверить** на контрольных строках (пустая строка, строка из
пробелов, строка с цифрами) и, при необходимости, пройти ключевой
фрагмент пошагово в **OllyDbg**.
5. **Оформить отчёт** по структуре из `task.md`, раздел 4.
Или собрать через QEditor: открыть файл и «Build → Build all».
---
## Полезные ссылки
- `task.md` — задание, теория цепочечных команд, 27 вариантов,
контрольные вопросы, оценивание.
- Дополнительный материал по окнам Win32 (`Окна в MASM32.PDF`,
разделы 9, 10, 14) — на диске с методическими материалами или у
преподавателя.
---
## Порядок сдачи
1. Реализовать и собрать программу (задания 1–3).
2. Провести вычислительный эксперимент (задание 4).
3. Оформить отчёт (задание 5).
4. Ответить на контрольные вопросы (`task.md`, раздел 6).
Баллы по заданиям — в `task.md`, раздел 7.
Зачёт при **6 и более** баллах из 10.