У меня есть процедура на ассемблере, и я хочу добавить к каждой букве строки StrV, который является байтовым указателем некоторое значение, в этом случае это будет +3. Я пытаюсь добавить 3 только для первой буквы, но proc возвращает странный знак или ничего, поэтому я прошу помощи. (Возвращенный указатель будет назначен на строку char * в C ++).
start proc strV: PTR BYTE
mov eax, [strV]
ret
start endp
Вы хотите добавить 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