나는 어셈블리에서 2 개의 다른 char (C 프로그램에서 어셈블리 함수를 호출)을 비교하려고한다. char 중 하나는 struct에 속하고 다른 하나는 함수를 호출 할 때 전달됩니다. 'C'가 2 개의 다른 값으로 나타 납니까?
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 내가 문자로 그들을 밖으로 인쇄 할 경우, 모두 'C'로 표시 83 21315.입니다 (%의 EDI) (10) 반면입니다. 21315에서 83으로 변환 할 수있는 방법이 있습니까?
find_course의 매개 변수는 무엇입니까? –