如何用汇编语言逐字翻译字符串?

时间:2015-12-05 02:37:48

标签: string assembly reverse emu8086

我希望程序逐字反转 例如:

输入:

堆栈溢出

输出:

Kcats wolfrevo

请帮帮我......

请修复此代码并完成它:

.MODEL  SMALL
.stack 64
.DATA
    msg DB "stack owerflow"
        DB "$"
.CODE
    .STARTUP
    LEA SI, msg
    MOV DI, SI
l1:
    INC DI
    MOV AL, [DI + 1]
    CMP AL, ' '
    JNE l1 
l2:
    MOV AL, [SI]
    xchg AL, [DI]
    MOV [SI], AL
    INC SI
    DEC DI
    CMP SI, DI
    JB  l2

l3: 
    MOV AH, 09h
    LEA DX, msg
    INT 21h
    MOV AH, 08h
    INT 21H

.STACK
END

1 个答案:

答案 0 :(得分:-1)

根据您对其中一条评论中所述的问题的描述来判断(请将其移至问题中),您的例程只会反转一个单词然后退出。

通过查看您的代码,很明显您的例程就是这样:它只反转一个单词然后退出。

因此,您需要添加一些代码,以便在翻转一个单词后,您的例程会继续检查剩余的字符而不是仅仅退出。

我不会为您编写代码,因为如果您不知道如何执行此操作,那么您就不应该完成任务。你的老师会评价,而不是我。