代码之家  ›  专栏  ›  技术社区  ›  Jet Blue

事件侦听器的实现-汇编与高级语言

  •  2
  • Jet Blue  · 技术社区  · 6 年前

    程序集:

    考虑 Intel 8080 .要处理中断(例如从键盘),只需让键盘将“int”管脚拉高,并将“vector”放在数据总线上。矢量指向程序集代码中中断服务程序(ISR)的位置。参见 this answer 了解更多详细信息。

    高级语言:

    考虑附加事件侦听器的概念。例如,考虑 Javascript's keydown event listener .一个 example 以下内容:

    document.getElementById("demo").addEventListener("keydown", myFunction);
    
    function myFunction() {
        document.getElementById("demo").style.backgroundColor = "red";
    }
    

    当“demo”元素处于焦点时按下一个键, myFunction 被呼叫。

    关系:

    附加事件监听器的概念与将ISR组装在一起的概念有何关联?

    我假设直接响应键盘中断的函数是1)操作系统内核的一部分,2)用C语言编写(这些假设正确吗?)

    用户程序如何告诉这个OS中断处理程序在中断时发出警报?操作系统函数在处理中断时是否保留要回调的函数的可变大小列表?那么呢? addEventListener 是否将用户回调函数附加到操作系统函数列表中?

    注意:我选择Intel8080作为一个例子,特别是因为与现代CPU相比,它不具有帮助操作系统相关功能的奇特功能。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Ross Ridge    6 年前