.将第一个字符串的内容倒序复制到第二个字符串中。 (使用循环)

.Copy the contents of the first string into the second string in the reverse order. (use loop)

问题:创建两个大小为 12 的字符串。使用用户输入加载其中一个字符串 字符(使用循环)。第二个字符串应该保持空白。将第一个字符串的内容以相反的顺序复制到第二个字符串中。 (使用循环) //这是我的 CODE.BUT 我的字符串也以相同的顺序存储输入而不是相反的 ORDER.WHAT 是问题吗? 包括 EMU8086.INC

.型号小

.堆栈 100H .数据

S1 DB 3 DUP(?),  '$'
S2 DB 3 DUP(?),  '$' 

.CODE

MOV AX,@DATA 
MOV DS,AX

MOV AH,1
MOV SI,0
MOV CX,3


_IN: 
    INT 21H
    MOV S1[SI],AL
    INC SI

LOOP _IN  

PRINTN
MOV SI,0  
MOV DI, 2 
MOV CX, 3

_COPY:
    MOV AL,S1[SI] 
    MOV S2[DI],AL
    INC SI
    DEC DI

LOOP _COPY    

LEA BP,S2


MOV AH,9
INT 21H  




EXIT:
 MOV AH,4CH
 INT 21H
 

结束

就像@Peter Cordes 已经在评论中告诉你的那样,输入和复制没问题。

但是显示结果有错误:

LEA BP,S2
MOV AH,9
INT 21H  

此 DOS 函数需要 DX 寄存器中的指针,而您在这种情况下不小心使用了包含垃圾的 BP

LEA DX, S2
MOV AH, 09h
INT 21h