Записать алфавит в файл - Assembler

Узнай цену своей работы

Формулировка задачи:

У меня есть программа, создающая файл и записывающая в него строку. Мне нужно записать в строку русский алфавит. Пока я вводил буквы в строку вручную, вот так:
Листинг программы
  1. rus db 192,224,20,193,225,20,194,226,0;
Мне же нужно написать процедуру/макрос, которая будет производить запись в строку/буфер сама. Не получается. Пытаюсь пока для английского алфавита.
Листинг программы
  1. eng db 100, ?, 100 dup(?)
  2. Alfavit macro
  3. lea bx, eng
  4. add bx, 2
  5. mov dl, 'A'
  6. jmp me1
  7. me2:
  8. inc dl
  9. me1:
  10. mov [bx], dl
  11. inc bx
  12. cmp dl, 'Z'
  13. jne me2
  14. mov eng[si], 24h
  15. endm
Попытался записывать каждую букву по-отдельности, но не получилось.
Листинг программы
  1. ABC db ?
  2. Alfavit macro
  3. lea bx, ABC
  4. mov dl, 192
  5. jmp me1
  6. me2:
  7. inc dl
  8. me1:
  9. mov dl, ABC
  10. WriteToFile ABC ;макрос записи в файл
  11. cmp dl, 224
  12. jne me2
  13. endm

Решение задачи: «Записать алфавит в файл»

textual
Листинг программы
  1. N = 0
  2. A = 0
  3. rept    32
  4.         db      128+N
  5.   if    N ge 16
  6.     A = 48
  7.   endif
  8.         db      160+N+A
  9.   if    N lt 32  ; это если не нужен пробел в конце; а если нужен, убери эти 3 тсроки
  10.         db      32
  11.   endif
  12.   if    N eq 5  ; это если нужны Ёё
  13.         db      240,241,32
  14.   endif
  15.         N = N + 1
  16. endm

Объяснение кода листинга программы

  1. Устанавливается значение переменной N равным 0.
  2. Устанавливается значение переменной A равным 0.
  3. В цикле повторяется 32 раза: 3.1. Записывается байт с значением 128 + N в файл. 3.2. Если N больше или равно 16, то устанавливается значение переменной A равным 48. 3.3. Записывается байт с значением 160 + N + A в файл. 3.4. Если N меньше 32, то записывается байт с значением 32 в файл. 3.5. Если N равно 5, то записываются байты с значениями 240, 241, 32 в файл. 3.6. Увеличивается значение переменной N на 1.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы