.将第一个字符串的内容倒序复制到第二个字符串中。 (使用循环)
.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
问题:创建两个大小为 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