ОВТ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) пишете вы сами.


Быстрый старт

  1. Установить MASM32 (пакет masm32 — редактор QEditor, ассемблер ml, компоновщик link). Ассемблер должен лежать в \masm32 — в исходниках пути вида \masm32\include\windows.inc.

  2. Собрать окно из заготовки stub/01-window.asm:

    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.

S
Description
ОТВ ЛР №3 — Строковые операции в MASM32: окно Windows, ввод строки, цепочечные команды
Readme
86 KiB
Languages
Assembly 100%