我的代码有问题。我在终端弹出窗口中看不到结果。我需要在相同的内存中反转字符串。请帮我这个代码。
text db 'some dec/hex/bin here'
change db 26 dup('?')
Begin:
lea si, text
lea di, change
mov cx, 26
changes:
mov al, [si]+26
mov [di], al
dec si
inc di
loop changes
lea si, text
lea di, change
mov cx, 26
back:
mov al, [di]
mov [si], al
inc di
inc si
loop back
Print:
mov ah, 09h
lea dx, text
int 10h
Ending:
mov ax, 4c00h
int 21h
End Begin
答案 0 :(得分:0)
TEXT只有21个字符mov al,[si]+26
读取它的方式!
您错误地使用int 10h
进行打印!应该是int 21h
您还需要 $ 才能正确终止字符串。
我不会将此就地反转称为因为您正在使用单独的缓冲区。考虑使用两个指针,每个指针在一个末端初始化并向TEXT中间移动。