私は現在、アセンブリコードのいくつかの基本を学んでいます。いくつかのエクササイズが提案されている本を読んでいます。そのうちの1人の答えがわかりません。
本の答えを含む演習は次のとおりです。3行目と4行目で困っています。
3 行目で、 char を unsigned に変換する必要があります。最初に変換を行います: char --> unsigned char。ビット レベルの変更はありません。次にunsigned char --> unsignedなのでゼロ拡張を使用します。これは命令movzbl %al, (%edx) につながります。
4 行目で、 unsigned char を int に変換する必要があります。まず、 unsigned char --> charという変換を行います。ビットレベルは変化しません。次に、char --> intで符号拡張を行います。これは命令movsbl %al, (%edx) につながります。
私は何か間違ったことをしていますか、それともこれは本の間違いだと思いますか?
ありがとうございました !