Как увеличить буквы указателя в ассемблере?

У меня есть процедура на ассемблере, и я хочу добавить к каждой букве строки StrV, который является байтовым указателем некоторое значение, в этом случае это будет +3. Я пытаюсь добавить 3 только для первой буквы, но proc возвращает странный знак или ничего, поэтому я прошу помощи. (Возвращенный указатель будет назначен на строку char * в C ++).

start proc strV: PTR BYTE
mov eax, [strV]
ret
start endp

0

Решение

Вы хотите добавить 3 к каждой букве строки?

Следующий код не проверено, но должно работать. Разумеется, если предположить, что ваша строка является строкой с нулевым символом в конце.

Я просто проверяю, находимся ли мы в конце строки,
если мы не это добавляет 3 и продолжает идти.

start proc strV: PTR BYTE
mov eax, strV
next:
cmp byte ptr [eax], 0
je done
add byte ptr [eax], 3
inc eax
jmp next
done:
ret
start endp
1

Другие решения


По вопросам рекламы [email protected]