0

outStr を出力するようにコンパイラに指示する printf ステートメントがあります。outStr はもともと emptybuf[1000] = "??? まだ翻訳されていません ???"; に設定されています。答えを outStr に移動することになっています。これにより、print ステートメントの outStr が更新されます。

何らかの理由で、私のインライン アセンブリは、以下に示すコードから何も出力しません。私は自分が間違っていることを理解できません。小文字を大文字に変換し、特殊文字を無視しようとしています。どんなアドバイスでも大歓迎です。

mov esi,inStr ;To start off initialize  esi point to input string
mov edi,outStr  ;edi point to the output string area

    ; using esi and edi with [esi] and [edi] as indirect operand

    ; suggestion  to start mov each character to al  like   -->  mov al,[esi]
    ; test, and manipulate character in al


        jmp getNext         
getNext: mov al,[esi]
    cmp al,0
 je exitProc
        test al,01100000b ;test to see if its a lowercase letter
        je toUpperCase
        test al,01000000b
        mov [edi],al
        inc esi
toUpperCase: test al,01000000
         AND al,11011111b
         mov [edi],al
         inc esi
         jmp getNext
exitProc: mov outStr, edi
4

1 に答える 1