私は前に何をしましたか
文字列内の特定の場所にある文字を単純に置換または上書きしようとしていました。私はこのコードを書きました:
INCLUDE Irvine32.inc
.data
myMessage BYTE 'This is a string',0
.code
main PROC
call Clrscr
mov esi, OFFSET myMessage
inc esi
inc esi
inc esi
mov ebx, 'a'
mov [esi], ebx
mov edx, OFFSET myMessage
call WriteString
call crlf
exit
main ENDP
END main
問題
このプログラムの期待される出力は「Thia is a string」ですが、「Thia」と出力されます。この文字列の特定の場所で文字を上書きすると、WriteString の呼び出しを使用して文字列を印刷すると、その文字列の印刷は、バイトが置き換えられた場所で停止します。これはどのように解決できますか?