Как в TASM проверить строку на пустоту? - Assembler
Формулировка задачи:
Здравствуйте.
Как в TASM можно проверить строку на пустоту?
Решение задачи: «Как в TASM проверить строку на пустоту?»
textual
Листинг программы
.model small .386 .data msg db '' len = $ - msg s1 db 'full$' s2 db 'empty$' .stack 100h .code start: mov ax,@data mov ds,ax mov ah,09h mov cx,len test cx,cx jz two one: lea dx,s1 jmp exit two: lea dx,s2 exit: int 21h mov ah,4Ch mov al,00h int 21h end start
Объяснение кода листинга программы
- .model small — указывает на модель памяти компьютера, в данном случае модель small, подразумевающая 16-битный код
- .386 — включает расширение 386 для поддержки защищенного режима
- .data — секция данных, где хранятся переменные
- msg db '' — объявление строки msg, которая будет использоваться для вывода
- len = $ - msg — вычисление длины строки msg, используя директиву $
- s1 db 'full$' — объявление строки s1, которая будет использоваться для вывода
- s2 db 'empty$' — объявление строки s2, которая будет использоваться для вывода
- .stack 100h — указывает на размер стека в 100 байт
- .code — секция кода, где размещается основной код программы
- start: — точка входа в программу
- mov ax,@data — перемещение сегмента данных в регистр AX
- mov ds,ax — установка сегмента данных в качестве текущего сегмента
- mov ah,09h — установка регистра AH для функции 09h (вывод строки)
- mov cx,len — перемещение длины строки msg в регистр CX
- test cx,cx — проверка регистра CX на ноль (пустая строка)
- jz two — переход к метке two, если регистр CX равен нулю
- one: — метка для случая, когда строка не пуста
- lea dx,s1 — перемещение адреса строки s1 в регистр DX
- jmp exit — переход к метке exit
- two: — метка для случая, когда строка пуста
- lea dx,s2 — перемещение адреса строки s2 в регистр DX
- exit: — метка для завершения цикла
- int 21h — вызов функции 21h для вывода строки на экран
- mov ah,4Ch — установка регистра AH для функции 4Ch (завершение работы программы)
- mov al,00h — установка регистра AL для параметра функции 4Ch (выход с рабочим статусом)
- int 21h — вызов функции 21h для завершения работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д