Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly APIC定时器代码dosen';不行?_Assembly - Fatal编程技术网

Assembly APIC定时器代码dosen';不行?

Assembly APIC定时器代码dosen';不行?,assembly,Assembly,我使用N450板(Intel Atom),Eclipse作为IDE,我用C和AT&T编写汇编代码 我尝试在周期模式和ISR_55上使用APIC定时器 InitTickISR: push %ebp //save the context to swith back mov %esp,%ebp // Divide Configuration Register (for Timer) addr : FEE0 03E0 <- movl $0xFEE

我使用N450板(Intel Atom),Eclipse作为IDE,我用C和AT&T编写汇编代码

我尝试在周期模式和ISR_55上使用APIC定时器

InitTickISR:
    push    %ebp    //save the context to swith back
    mov     %esp,%ebp

// Divide Configuration Register (for Timer) addr : FEE0 03E0 <-
    movl    $0xFEE003E0, %eax
    movl    $0x3, (%eax)//0x3:Divided by 16, 0xA :divide by 128

// Initial Count addr : FEE0 0380 <- 0x1000
    movl    $0xFEE00380,%eax
    movl    $0x100, (%eax)

// LVT(Local Vector Table) Timer Register (FEE0 0320H) -- Interrupt 0x55
    movl    $0xFEE00320, %eax
    movl    $0x20055, (%eax)//2: periodic mode, 01:one shot
                            //55: interruption
// Enable local APIC addr : FEE0 00F0 <- 0x100
    movl    $0xFEE000F0, %eax
    movl    $0x100, (%eax)    

    pop     %ebp //Return to the calling function
    ret
我可以看到计时器计数改变值(我检查了寄存器0xFEE00390),但从未调用ISR(我在其中放了一个断点!!!)


我忘了做点什么了吗?如何确保所有设置都正确?

我已通过使用EOI寄存器重置ISR寄存器解决了问题。

我已通过使用EOI寄存器重置ISR寄存器解决了问题

isr0x55:
    cli
    sti
    iret