【发布时间】:2012-10-07 05:17:21
【问题描述】:
我正在尝试比较汇编中的 2 个不同字符(在 C 程序中调用汇编函数)。一个char属于一个struct,另一个是调用函数时传入的。
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?
【问题讨论】:
-
find_course的参数是什么?