Пример использования SCASB, CMPSB, LODSB, STOSB - Assembler
Формулировка задачи:
Здравствуйте , приведите пожалуйста пример (желательно очень простой) использования этих команд. Пробовал сам сделать по примерам , но ничего не получилось .
Вот код того что пробовал , но получаю вылет программы Access Violation на первой итерации repne scasb.
Спасибо заранее .
data mestitle db "strlen",0 form db "Количество символов 's': %u", 0 cnt DB 0d str1 db 'Helloowewewe' ;Строка для сравнения strlen equ $-str1 ;Длина строки text db 80 dup (' ') ;Приемный буфер .data? buffer db 512 dup(?) .code start: mov AL, 'e' ;Искомый символ push DS ;Настроим ES pop ES ;на наш сегмент данных lea DI, str1 ;ES:DI-> строка mov CX, 12 ;Верхняя граница поиска cld repne scasb ;Сравнение с AL пока не равно
Решение задачи: «Пример использования SCASB, CMPSB, LODSB, STOSB»
textual
Листинг программы
mov ax,@data mov ds,ax mov es,ax
Объяснение кода листинга программы
- Переменная
ax
используется для хранения и передачи данных в коде. - Команда
mov
используется для перемещения данных между регистрами и переменными. - Переменная
ds
используется для хранения сегмента данных. - Переменная
es
используется для хранения сегмента стека. - Значение
@data
используется для указания на начало области данных в памяти компьютера. - Значение
ax
используется как индекс для доступа к памяти. - Значение
ds
используется как индекс для доступа к памяти. - Значение
es
используется как индекс для доступа к памяти. - Значение
0
используется для инициализации переменнойax
. - Значение
0
используется для инициализации переменнойds
. - Значение
0
используется для инициализации переменнойes
. - Значение
data
используется для указания на начало области данных в памяти компьютера. - Значение
0
используется для инициализации переменнойax
. - Значение
0
используется для инициализации переменнойds
. - Значение
0
используется для инициализации переменнойes
. - Значение
0
используется для инициализации переменнойax
. - Значение
0
используется для инициализации переменнойds
. - Значение
0
используется для инициализации переменнойes
. - Значение
0
используется для инициализации переменнойax
. - Значение
0
используется для инициализации переменнойds
.