ОВТ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.
Что в репозитории
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) пишете вы сами.
Быстрый старт
-
Установить MASM32 (пакет
masm32— редактор QEditor, ассемблерml, компоновщикlink). Ассемблер должен лежать в\masm32— в исходниках пути вида\masm32\include\windows.inc. -
Собрать окно из заготовки
stub/01-window.asm:ml /c /coff 01-window.asm link /subsystem:windows 01-window.objЗапустить
01-window.exe— должно появиться окно с полем ввода и кнопкой (кнопка пока выводит введённую строку без изменений). -
Реализовать вариант в
stub/02-strings.asm(процедураprocess_string) и подключить её к обработчику кнопки. -
Проверить на контрольных строках (пустая строка, строка из пробелов, строка с цифрами) и, при необходимости, пройти ключевой фрагмент пошагово в OllyDbg.
-
Оформить отчёт по структуре из
task.md, раздел 4.
Или собрать через QEditor: открыть файл и «Build → Build all».
Полезные ссылки
task.md— задание, теория цепочечных команд, 27 вариантов, контрольные вопросы, оценивание.- Дополнительный материал по окнам Win32 (
Окна в MASM32.PDF, разделы 9, 10, 14) — на диске с методическими материалами или у преподавателя.
Порядок сдачи
- Реализовать и собрать программу (задания 1–3).
- Провести вычислительный эксперимент (задание 4).
- Оформить отчёт (задание 5).
- Ответить на контрольные вопросы (
task.md, раздел 6).
Баллы по заданиям — в task.md, раздел 7.
Зачёт при 6 и более баллах из 10.