2
これは簡単な質問のようですが、私は失われています。2バイト変数を1バイトに切り捨てる
この例では、character
は2バイトの変数ですが、レジスタbx
は1バイトです。私はcmp bx, [character]
をやろうとしていますが、それはサイズの違いのためにはうまくいきません。
bx
をcharacter
の最初のバイトと比較しようとしています。思考?
これは簡単な質問のようですが、私は失われています。2バイト変数を1バイトに切り捨てる
この例では、character
は2バイトの変数ですが、レジスタbx
は1バイトです。私はcmp bx, [character]
をやろうとしていますが、それはサイズの違いのためにはうまくいきません。
bx
をcharacter
の最初のバイトと比較しようとしています。思考?
BX rebisterは、16ビットの大きさであり、2つの8ビットBLとBHから構成されています! 8ビットBL CMP
cmp bl, byte ptr[character]
または8ビットBH CMP
cmp bh, byte ptr[character + 1]
感謝のために
:
16ビットのCMPのためには、接頭辞を使用することができます!私は最初のバイト(2番目ではない)を探していたので、cmp bh、バイトptr [文字+ 0]がその仕事をしました。 –
接頭辞は必要ありません(そうであってはいけません)。適切なアセンブラは、 'bl'がバイトと比較し、' bx'が単語と比較されることを知ることができます。 –