2016-08-09 32 views
-1

アセンブリ言語で2つの文字列を連結しようとしています。文字列をレジスタに格納する

mov esi, str1 
mov eax, str1 
mov edx, [str2] 
call slen 
mov [esi+eax-1], edx 

image

すべてが2番目の文字列の唯一の4文字が追加されることを除いて、正確に正常に動作します。私はその理由を知っていますが、私は解決策を見つけることができません。

+0

NASMとマイクロプロセッサーのタグは一緒に使えません.NTMはインテル専用です。 – m0skit0

+3

解決策にはポインタの使用が含まれます。プログラミングを教えるために使っている本はそれをカバーするはずですが、後になるまで待たなければなりません。最初に整数演算を理解する必要があります。 –

+1

これは、ASMの "文字列"(データブロックに近い)を少し理解するのに役立ちます:http://stackoverflow.com/a/38831846/4271923 – Ped7g

答えて

3

レジスタに文字列を格納することはできません。レジスタは固定サイズであるため、レジスタのサイズと同じか、またはそれより小さくなければなりません(ASCIIでエンコードされた文字列について言えば)。

関連する問題