アセンブリで2つの異なる文字を比較しようとしています(Cプログラムでアセンブリ関数を呼び出しています)。char の 1 つは構造体に属し、もう 1 つは関数を呼び出すときに渡されます。
struct node {
void *previous;
void *next;
unsigned int num;
unsigned int A;
unsigned int B;
}
node something;
something.A = 'C'; //assume everything else is correct
char A = 'C';
int func( char A ){ }:
find_course:
pushl %ebp
movl %esp, %ebp
subl $28, %esp
movl 8(%ebp), %ebx
movl 10(%ebp), %ecx
movl 16(%ebp), %edx
movl something, %edi
cmpl 10(%edi), %ebx
.END:
leave
ret
gdb でデバッグすると、%ebx は 83 ですが、10(%edi) は 21315 です。それらを文字として出力すると、どちらも「C」に見えます。21315 を 83 に変換する方法はありますか?