-1

プログラムに文字列を単語ごとに反転させたい例:

入力:

スタックオーバーフロー

出力:

Kcats ウルフレボ

私を助けてください...

このコードを修正して完成させてください:

.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
4

1 に答える 1

-1

コメントの1つに記載されている問題の説明から判断すると(質問に移動してください)、ルーチンは1語だけ逆になり、終了します。

コードを見ると、ルーチンがまさにそれを行っていることが明らかです。つまり、1 つの単語だけを反転してから終了します。

したがって、1 つの単語を反転した後、ルーチンを終了するのではなく、残りの文字の検査に進むように、ほんの少しのコードを追加する必要があります。

私があなたのコードを書くことはありません。なぜなら、あなたがその方法を知らなければ、完了した課題を提出するに値しないからです。あなたの先生は私ではなく、あなたを採点します。

于 2015-12-05T10:28:55.537 に答える