ї символу $ bx, RdStr; в bx завантажуємо адресс строкіbyte ptr [bx +1]; враховуємо символ кінця рядка '$' cl, [bx +1]; заносимо в лічильник кількість сімволовch, ch ; рядки: mov al, [bx +1]; зсув символів вправо на одну позицію [bx], albx; перехід до наступній парі сімволовm1al, '$'; заносимо в кінець рядка символ '$' byte ptr [bx], al
; Переклад рядка шляхом виведення на екран послідовно 2-х символів
; 13 - переклад рядка і 10 повернення кареткіah, 2h; Функція DOS виводу сімволаdl, 13; в dl завантажується код символу
int 21hdl, 1021h
EndM
; **** Висновок рядка на екран ********************************* ********
WriteString macro WrStrah, 09h; Функція DOS виводу рядка
lea dx, WrStr; посилання на сообщеніеdx; пропускаємо довжину строкі21h; вивести повідомлення на екран
; Переклад рядка шляхом виведення на екран послідовно 2-х символів
; 13 - переклад рядка і 10 повернення кареткіah, 2h; Функція DOS виводу сімволаdl, 13; в dl завантажується код символу
int 21hdl, 1021h
EndM
; ****** Вставка в кінець слів значення їх довжин *************************
WriteLenWords macrom0, m1, m2, m3, m4, m5, mend
lea si, mystring; Завантажуємо в SI адреса рядка
inc sidi, sibx, bxbl, R0; R0-MAX довжина
add di, bx; di-cледует слово
inc di: xor cx, cx;
mov cl, R0; занесення до лічильник: cld;; завантаження поточного елемента строкіal, '$'; якщо кінець предложеніяmend; то виходal, ','; якщо знайшли кінець словаm2; то вичісляемbx, cx; кількість літер в словеm5; якщо 0 то шукаємо след.словоm3; інакше записуємо в кінець довжину слова: loop m1: dec si; кінець словаbyte ptr [si], '['; Вставляемbyte ptr [si +4], ']'; дужки іbyte ptr [si +5], ','; знак комою в строкуal, bl; AL-довжина словаbl, 0Ah; BL-число 10si, 3; Встаємо на останній символ числа дліниcx, 3; Кількість поділок - 3 тому 3 цифри: xor ah, ah; Очищаємо залишок від деленіяbl; Ділимо AL на 10 (AH-залишок, AL-число) ah, 30h; Додаємо до залишку код нуля'0 '
; щоб отримати ASCII код ціфриbyte ptr [si], ah; Вставляємо в рядок отриманий сімволsi; зсувається вліво на один сімволm4; Повторюємо поділ три рази: mov si, di; si-ставимо на наступне слово
xor ch, ch; bl, R0;
add di, bx; di-на наступне після si словоdim0; продовжуємо вставку довжин
mend:
EndM
; ***** Занесення в стек декількох регістрів ************************** m...