Как в 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 для завершения работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д