0
idt.c
이라는 파일이 있는데이 파일에서 어셈블리에서 idt_load
함수를 호출해야합니다. 자, 어셈블리 파일에서 변수 idtp
에 액세스해야하고 변수가 idt.c에 선언되어 있다는 것을 제외하고는이 작업이 정상적으로 작동합니다.순환 참조 및 저수준 어셈블리
링커에서 idt_load가 정의되지 않았거나 idtp가 정의되지 않았습니다. 어떻게 작동시킬 수 있습니까? idt.c의
관련 부품
struct idt_entry
{
unsigned short base_lo;
unsigned short sel;
unsigned char always0;
unsigned char flags;
unsigned short base_hi;
} __attribute__((packed));
struct idt_ptr
{
unsigned short limit;
unsigned int base;
} __attribute__((packed));
struct idt_entry idt[256];
struct idt_ptr idtp;
extern void idt_load();
//Later in the code...
idt_load();
idt.asm 밖으로 생각하는
global idt_load
extern idtp
idt_load:
lidt [idtp]
ret
재미있게 그냥 해결책을 제시해주세요. –