我有一个任务,需要输入一个字符串和一个数字,然后通过将该数字添加到字符串中返回字符串。我已经编写了一个程序,但是在字母Z之后,它返回了奇怪的值,我猜是由于ASCII码造成的。如何纠正这个问题?
这是我的代码-
section .text
global _start
_start:
mov ecx, len
mov esi, bang
mov edi, tang
loop_here:
lodsb
add al, 02
stosb
loop loop_here
cld
rep movsb
mov edx,20
mov ecx,tang
mov ebx,1
mov eax,4
int 0x80
mov edx,len2
mov ecx,newline
mov ebx,1
mov eax,4
int 0x80
mov eax,1
int 0x80
section .data
bang db 'password' ;source
len equ $-bang
newline db 0xa
len2 equ $ - newline
section .bss
tang resb 10
resb len+1
代替resb 10
,这样它的长度总是与bang+newline相同。或者只使用len
,因为似乎你将换行符与字符串分开了?哦,这样就不会被修改了。 - Peter Cordes