Дипломная работа: Вивід вмісту каталогу y середовищі MS DOS
; Вихід di зміщення ASCIIрядка із потрібним параметром
; Регістри di
; -------------------------------------------------------------------------------------------
PROCGetOneParam
pushax ; збереження регістрів axі cx
pushcx
xoral, al ; обнуління al(ініціалізація шуканого
; значення 0)
movdi, offsetparams ; адреса параметрів рядка
jcxz@@99 ; якщо номер параметра(cx) дорівнює 0,
; то вихід
cmpcx, [numParams] ; порівняння cxіз кількістю параметрів
jae @@99 ; вихід, якщо передано неіснуючого
; параметру
cld ; автоматичне збільшення di
@@10:
scasb ; пошук нульового обмежувача
jnz @@10 ; повтор, доки не знайдено 0
loop @@10 ; повтор, доки в cxне буде 0
@@99:
popcx ; відновлення регістрів cx, ax
popax
ret ; повернення до викликаючої програми
ENDPGetOneParam
END
Таким чином, програмний модуль PARAMS.asmє зручним інструментом для реалізації роботи із командним рядком і буде використаний в основній програмі.
3.1.2. Модуль STRIO . asm
Оскільки важливою частиною основної програми, згідно із завданням, буде вивід текстових рядків на екран, то є необхідність у створенні спеціального програмного модуля, який би містив процедури для обробки і виводу ASCIIрядків на екран. Пряме використання функцій DOSв основній програмі є незручним, оскільки є потреба у спрощенні коду для його сприйняття.
З цих міркувань було розроблено програмний модуль STRIO.asm, в якому міститься п’ять спеціальних функцій: StrLength (визначає кількість символів, записаних в ASCIIрядку), дві функції виводу ASCII-рядків на екран – StrWriteі StrWrite2, а також функцію NewLine(перехід на новий рядок) та WriteSimv(виводить на екран заданий символ необхідну кількість разів).
Слід зазначити, що даний програмний модуль не містить функцій читання із консолі в рядок, однак основна програма отримує дані із PSPDOS-а і опрацьовує вже створені дані, а тому не потребує якихось додаткових вказівок через консоль від користувача, всі необхідні специфічні дані (наприклад, маска файлів) користувач може задати в командному рядку при визові основної програми.