Дипломная работа: Вивід вмісту каталогу y середовищі MS DOS
IDEAL
MODEL small
ASCnull EQU 0 ; ASCIIнуль
ASCcr EQU 13 ; ASCIIсимвол повернення каретки
ASClfEQU 10 ; ASCIIсимвол вертикальної табуляції
; (прогону рядка)
CODESEG
PUBLIC StrLength, StrWrite, StrWrite2, NewLine, WriteSimv
; ------------------------------------------------------------------------------------------
; StrLength підраховує кількість ненульових символів в рядку
; -------------------------------------------------------------------------------------------
; Вхід di адреса ASCIIрядка
; Вихід cx кількість ненульових символів в рядку
; Регістри cx
; -------------------------------------------------------------------------------------------
PROCStrLength
pushax ; зберегти у стеку змінювані
pushdi ; регістри ax, di
xoral, al ; в alпоміщується шуканий символ 0
mov cx, 0ffffh ; в cxмаксимальна глибина пошуку
cld ; автоматичне збільшення di
repnzscasb ; шукати al, доки [di] або cxне стане 0
not cx ; логічне заперечення cx
dec cx ; зменшення cxна 1 – довжина рядка
popdi ; відновлення регістрів
popax
ret ; повернення до викликаючої програми
ENDP StrLength
; -------------------------------------------------------------------------------------------