Записать алфавит в файл - Assembler
Формулировка задачи:
У меня есть программа, создающая файл и записывающая в него строку.
Мне нужно записать в строку русский алфавит.
Пока я вводил буквы в строку вручную, вот так:
Мне же нужно написать процедуру/макрос, которая будет производить запись в строку/буфер сама.
Не получается. Пытаюсь пока для английского алфавита.
rus db 192,224,20,193,225,20,194,226,0;
eng db 100, ?, 100 dup(?) Alfavit macro lea bx, eng add bx, 2 mov dl, 'A' jmp me1 me2: inc dl me1: mov [bx], dl inc bx cmp dl, 'Z' jne me2 mov eng[si], 24h endm
Попытался записывать каждую букву по-отдельности, но не получилось.
ABC db ? Alfavit macro lea bx, ABC mov dl, 192 jmp me1 me2: inc dl me1: mov dl, ABC WriteToFile ABC ;макрос записи в файл cmp dl, 224 jne me2 endm
Решение задачи: «Записать алфавит в файл»
textual
Листинг программы
N = 0 A = 0 rept 32 db 128+N if N ge 16 A = 48 endif db 160+N+A if N lt 32 ; это если не нужен пробел в конце; а если нужен, убери эти 3 тсроки db 32 endif if N eq 5 ; это если нужны Ёё db 240,241,32 endif N = N + 1 endm
Объяснение кода листинга программы
- Устанавливается значение переменной N равным 0.
- Устанавливается значение переменной A равным 0.
- В цикле повторяется 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д