当前位置: 首页 > news >正文

【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-5

文件下载与邀请翻译者

学习英特尔开发手册,最好手里这个手册文件。原版是PDF文件。点击下方链接了解下载方法。

讲解下载英特尔开发手册的文章

翻译英特尔开发手册,会是一件耗时费力的工作。如果有愿意和我一起来做这件事的,那么,欢迎你的加入。

另外,我不仅仅是打算翻译这一种手册,以后,可能还需要去翻译许多的英文技术文档,以支持系统底层的教学,培养系统底层程序员。

我有钱了以后,应该是会出私钱来请人翻译一批英文技术文档。当前,暂时没钱,若是有志愿加入的,欢迎啊。

本节翻译

【原文】2.1.4. Interrupt and Exception Handling
External interrupts, software interrupts, and exceptions are handled through the Interrupt descriptor table (IDT), see Figure 2-1. The IDT contains a collection of gate descriptors, which provide access to interrupt and exception handlers. Like the GDT, the IDT is not a segment. The linear address of the base of the IDT is contained in the IDT register (IDTR).

【翻译】2.1.4. 中断和异常处理
外部中断、软件中断和异常是通过中断描述符表(IDT)处理的,如图2-1所示。IDT包含一组门描述符,提供对中断和异常处理程序的访问。像GDT一样,IDT不是一个片段。IDT基址的线性地址包含在IDT寄存器(IDTR)中。

【原文】The gate descriptors in the IDT can be of the interrupt-, trap-, or task-gate type. To access an interrupt or exception handler, the processor must first receive an interrupt vector (Interrupt number) from internal hardware, an external interrupt controller, or from software by means of an INT, INTO, INT 3, or BOUND instruction. The interrupt vector provides an index into the IDT to a gate descriptor. If the selected gate descriptor is an interrupt gate or a trap gate, the associated handler procedure is accessed in a manner very similar to calling a procedure through a call gate. If the descriptor is a task gate, the handler is accessed through a task switch.

【翻译】IDT中的门描述符可以是中断门、陷阱门或任务门类型。为了访问中断或异常处理程序,处理器必须首先从内部硬件、外部中断控制器或通过INT、INTO、INT 3或BOUND指令从软件接收一个中断向量(中断号)。中断向量提供IDT到门描述符的索引。如果选择的门描述符是中断门或陷阱门,则以与通过调用门调用过程非常相似的方式访问相关的处理程序过程。如果描述符是任务门,则通过任务切换来访问处理程序。

【讲评】在这里,谈到了中断向量的问题。我担心翻译文字没有说明白,所以,再来梳理一下。中断向量号,可以通过内部硬件或者外部中断控制器来获得。如果某一个中断,属于是硬件中断,且为可屏蔽中断,并且它连接到了可编程中断控制器 8259A上,那么,传递到处理器的中断向量号,则是8259A给出。如果是硬件中断,且为非屏蔽中断,那么,它的中断,固定地就是2号,且不是通过8259A等等的外部中断控制器传递进来。像是除0错误,无效的TSS等,均是通过内部硬件传递中断向量号的。

软件中断,这个呢,就是通过汇编指令,程序员主动发起的中断。在Linux里面,int 0x80,可以发起系统调用。系统调用,就是软中断。学习8086汇编是,在学习王爽老师的教材时,里面有BIOS中断,有DOS中断,这些个中断,都是通过【int n】指令发起的,这都是软件中断,都是程序员主动发起的。【int n】里面,n是一个整数,是中断向量号。

手册里面,还有提到了【into】,【int3】,【bound】等等的指令,这些指令也能发起软件中断。不过,以我目前的学习经验来讲,这三个东西,我还没有用到过。

至于【int n】,这个东西,我倒是用过。因为,在学习编写主引导山区的引导记录程序时,会用到BIOS中断。

想要更多地了解中断与异常处理程序,一个方法,就是你去学习流行的,教你写内核的教材。我所知道的,有郑刚的《操作系统真象还原》,李忠的《x86汇编语言,从实模式到保护模式》。你也可以去学习赵炯的《Linux内核完全剖析(基于0.12内核)》。

然后呢,关于这个中断和异常处理的知识,你还真得是把学习英特尔手册放在重要的位置上。这是因为,我所说的那几个教材,它在讲到中断和异常处理程序的时候,它把概念讲得比较混乱,说不清,道不明,一个人说的一个样。为了搞清楚这个概念,你还真的是需要再英特尔开发手册上,获得权威的知识。

我之前,学习这些个流行的内核教材的时候,有一个地方,流行的入门内核教材,也是给讲得很乱,那就是线性地址,虚拟地址,逻辑地址的概念。这个概念,也是英特尔开发手册里面,给出的说明比较权威一些。

当然了,手册的话,也不能完全靠它。因为,有的时候,手册上给出的讲解方式,也会令人疑惑。学习的时候,多方参照,认真求证,应该是一个比较好的态度与方法。

相关文章:

【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-5

文件下载与邀请翻译者 学习英特尔开发手册,最好手里这个手册文件。原版是PDF文件。点击下方链接了解下载方法。 讲解下载英特尔开发手册的文章 翻译英特尔开发手册,会是一件耗时费力的工作。如果有愿意和我一起来做这件事的,那么&#xff…...

设计模式4 适配器 (adapter)

一句话,适配器按照客户的需求, 适配当前已有的接口。 目标接口:reqeust() public interface Target {void request(); //this is client needed interface }已有接口:specificRequest package com.example.adapter;import android.uti…...

《分布式机器学习模式》:解锁分布式ML的实战宝典

在大数据和人工智能时代,机器学习已经成为推动技术进步的重要引擎。然而,随着数据量的爆炸性增长和模型复杂度的提升,单机环境下的机器学习已经难以满足实际需求。因此,将机器学习应用迁移到分布式系统上,成为了一个不…...

【项目实战】HuggingFace初步实战,使用HF做一些小型任务

Huggingface初步实战 一、前期准备工作二、学习pipline2.1.试运行代码,使用HuggingFace下载模型2.2. 例子1,情感检测分析(只有积极和消极两个状态)2.3. 例子2,文本生成 三、学会使用Tokenizer & Model3.1.tokenizer(分词器&am…...

堆的应用——堆排序和TOP-K问题

1.堆排序 想法⼀&#xff1a; 基于已有数组建堆、取堆顶元素完成排序。也就是利用写好的堆数据结构&#xff08;之前的文章有讲解&#xff09;&#xff0c;去实现排序。 void HeapSort(int* a, int n){HP hp;for(int i 0; i < n; i){HPPush(&hp,a[i]);}int i 0;whi…...

探秘 MySQL 数据类型的艺术:性能与存储的精妙平衡

文章目录 前言&#x1f380;一、数据类型分类&#x1f380;二、整数类型&#xff08;举例 TINYINT 和 INT &#xff09;&#x1f3ab;2.1 TINYINT 和 INT 类型的定义2.1.1 TINYINT2.1.2 INT &#x1f3ab;2.2 表的操作示例2.2.1 创建包含 TINYINT 和 INT 类型的表2.2.2 插入数据…...

使用任意绘图软件自学并结合上课所学内容完成数据库原理图绘制

本次绘图采用亿图图示软件...

static、 静态导入、成员变量的初始化、单例模式、final 常量(Content)、嵌套类、局部类、抽象类、接口、Lambda、方法引用

static static 常用来修饰类的成员&#xff1a;成员变量、方法、嵌套类 成员变量 被static修饰&#xff1a;类变量、成员变量、静态字段 在程序中只占用一段固定的内存&#xff08;存储在方法区&#xff09;&#xff0c;所有对象共享可以通过实例、类访问 (一般用类名访问和修…...

基于SSM的智能养生平台管理系统源码带本地搭建教程

技术栈与架构 技术框架&#xff1a;采用SSM&#xff08;Spring Spring MVC MyBatis&#xff09;作为后端开发框架&#xff0c;结合前端技术栈layui、JSP、Bootstrap与jQuery&#xff0c;以及数据库MySQL 5.7&#xff0c;共同构建项目。 运行环境&#xff1a;项目在JDK 8环境…...

Latex中文排版字体和字号

中文排版 最近常用latex排版&#xff0c;也遇到了很多问题。这里对于主要的参考文章做一个总结和推荐。 一份不太简短的 LaTeX2ε 介绍【中文资料】ctex宏包用户手册&#xff0c;用户手册使用 命令行texdoc ctex 这两个文档都是中文的&#xff0c;而且几乎解决了我90%的排版…...

[C++ 11] 列表初始化:轻量级对象initializer_list

C发展历史 C11是C语言的第二个主要版本&#xff0c;也是自C98以来最重要的一次更新。它引入了大量的新特性&#xff0c;标准化了已有的实践&#xff0c;并极大地改进了C程序员可用的抽象能力。在2011年8月12日被ISO正式采纳之前&#xff0c;人们一直使用“C0x”这个名称&#…...

【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (八):API说明(暂时完结,后续考虑将在线版mongoDB变为本地版)

本项目旨在学习如何快速使用 nodejs 开发后端api&#xff0c;并为以后开展其他项目的开启提供简易的后端模版。&#xff08;非后端工程师&#xff09; 由于文档是代码写完之后&#xff0c;为了记录项目中需要注意的技术点&#xff0c;因此文档的叙述方式并非开发顺序&#xff0…...

manictime整合两个数据库的数据

作用 老电脑崩溃了,有个1t.db&#xff0c; 新电脑有个3t.db 那么重装系统后就想整合起来用。 整合前文件大小 整合命令 .\mtdb.exe importtimelines -sdbpa ManicTimeCore-1t.db -dbpa ManicTimeCore-3t.db -tt ManicTime/ComputerUsage,ManicTime/Applications,ManicTime…...

Spring Boot植物健康系统:智慧农业的新趋势

6系统测试 6.1概念和意义 测试的定义&#xff1a;程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为&#xff1a; 目的&#xff1a;发现程序的错误&#xff1b; 任务&#xff1a;通过在计算机上执行程序&#xff0c;暴露程序中潜在的错误。 另一个…...

(三)第一个Qt程序“Qt版本的HelloWorld”

一、随记 我们在学习编程语言的时候&#xff0c;各种讲解编程语言的书籍中通常都会以一个非常经典的“HelloWorld”程序展开详细讲解。程序虽然简短&#xff0c;但是“麻雀虽小&#xff0c;五脏俱全”&#xff0c;但是却非常适合用来熟悉程序结构、规范&#xff0c;快速形成对编…...

【Python知识】一个强大的数据分析库Pandas

文章目录 Pandas概述1. 安装 Pandas2. 基本数据结构3. 数据导入和导出4. 数据清洗5. 数据选择和过滤6. 数据聚合和摘要7. 数据合并和连接8. 数据透视表9. 时间序列分析10. 数据可视化 &#x1f4c8; 如何使用 Pandas 进行复杂的数据分析&#xff1f;1. 数据预处理2. 处理缺失值…...

10.26学习

1.整形的定义和输出 在C语言中&#xff0c;整形&#xff08;Integer&#xff09;是一种基本数据类型&#xff0c;用于存储整数。整形变量可以是正数、负数或零。在定义和输出整形变量时&#xff0c;需要注意以下几点&#xff1a; ①定义整形变量&#xff1a; 使用 int 关键字…...

CSS易漏知识

复杂选择器可以通过&#xff08;id的个数&#xff0c;class的个数&#xff0c;标签的个数&#xff09;的形式&#xff0c;计算权重。 如果我们需要将某个选择器的某条属性提升权重&#xff0c;可以在属性后面写!important&#xff1b;注意!importent要写在;前面 很多公司不允许…...

【10天速通Navigation2】(三) :Cartographer建图算法配置:从仿真到实车,从原理到实现

前言 往期内容&#xff1a; 第一期&#xff1a;【10天速通Navigation2】(一) 框架总览和概念解释第二期&#xff1a;【10天速通Navigation2】(二) &#xff1a;ROS2gazebo阿克曼小车模型搭建-gazebo_ackermann_drive等插件的配置和说明 本教材将贯穿nav2的全部内容&#xff0c…...

测试造数,excel转insert语句

目录 excel转sql的insert语句一、背景二、直接上代码 excel转sql的insert语句 一、背景 在实际测试工作中&#xff0c;需要频繁地进行测试造数并插入数据库验证&#xff0c;常规的手写sql语句过于浪费时间&#xff0c;为此简单写个脚本&#xff0c;通过excel来造数&#xff0…...

Python 应用可观测重磅上线:解决 LLM 应用落地的“最后一公里”问题

作者&#xff1a;彦鸿 背景 随着 LLM&#xff08;大语言模型&#xff09;技术的不断成熟和应用场景的不断拓展&#xff0c;越来越多的企业开始将 LLM 技术纳入自己的产品和服务中。LLM 在自然语言处理方面表现出令人印象深刻的能力。然而&#xff0c;其内部机制仍然不明确&am…...

从零开始:用Spring Boot搭建厨艺分享网站

2 相关技术 2.1 Spring Boot框架简介 Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。通过这种方式&#xff0c;Sprin…...

《2024中国泛娱乐出海洞察报告》解析,垂直且多元化方向发展!

随着以“社交”为代表的全球泛娱乐市场规模不断扩大以及用户需求不断细化&#xff0c;中国泛娱乐出海产品正朝着更加垂直化、多元化的方向发展。基于此&#xff0c;《2024中国泛娱乐出海洞察报告》深入剖析了中国泛娱乐行业出海进程以及各细分赛道出海现状及核心特征。针对中国…...

强化学习数学原理学习(一)

前言 总之开始学! 正文 先从一些concept开始吧,有一个脉络比较好 state 首先是就是状态和状态空间,显而易见,不多说了 action 同理,动作和动作空间 state transition 状态转换,不多说 policy 策略,不多说 reward 奖励,不多说 MDP(马尔科夫) 这里需要注意到就是这个是无…...

获 Sei 基金会投资的 MetaArena :掀起新一轮链上游戏革命

MetaArena 是一个综合性的 Web3 游戏开发和发布平台&#xff0c;集成了最先进的技术架构&#xff0c;包括 Unreal Engine 5.3、去中心化虚拟资产交易市场和分布式计算资源支持。平台不仅为开发者提供了高效的开发工具&#xff0c;还通过跨链功能和 AI 模块&#xff0c;极大简化…...

react-signature-canvas 实现画笔与橡皮擦功能

react-signature-canvas git 地址 代码示例 import React, { Component } from react import { createRoot } from react-dom/clientimport SignaturePad from ../../src/index.tsximport * as styles from ./styles.module.cssclass App extends Component {state { trimmed…...

004:ABBYY PDF Transformer安装教程

引言&#xff1a;本文主要讲解。 一、软件介绍 ABBYY PDF Transformer由ABBYY公司出品&#xff0c;属于一款家庭及商业都适用的PDF文档转换工具。它结合了ABBYY的OCR&#xff08;光学字符识别&#xff09;技术和Adobe PDF库技术&#xff0c;以确保能够便捷地处理任何类型的PDF…...

FlinkSQL之temporary join开发

在实时开发中&#xff0c;双流join获取目标对应时刻的属性时&#xff0c;经常使用temporary join。笔者在流量升级的实时迭代中&#xff0c;需要让流量日志精准的匹配上浏览时间里对应的商品属性&#xff0c;使用temporary join开发过程中踩坑不少&#xff0c;将一些经验沉淀在…...

第二十六节 直方图均衡化

图像直方图均衡化 图像直方图均衡化可以增强图像增强&#xff0c;对输入图像进行直方图均衡化处理&#xff0c;提升后续对象检测的准确率在Opencv人脸检测的代码演示中已经很常见了&#xff0c;此外对医学影像图像与卫星遥感图像也经常通过直方图均衡化来提升图像质量 Opencv…...

工单管理用什么工具好?8款推荐清单

本文推荐的8款项目工单管理系统有:1. PingCode; 2.Worktile; 3.Teambition; 4.致远OA; 5.TAPD; 6.Gitee; 7.Wrike; 8.Trello。 很多企业在处理项目工单时&#xff0c;依然依赖电子邮件、Excel表格&#xff0c;甚至是手动记录。这样做不仅效率低下&#xff0c;还容易导致工单遗漏…...

中国空间站结构示意图/网站推广优化价格

我不太确定你想做什么.Oracle在java clases和sql类型之间有默认映射,请看一下这张表&#xff1a;http://docs.oracle.com/cd/E11882_01/java.112/e16548/apxref.htm#JJDBC28906例如,从NUMBER类型到java类型的转换有效&#xff1a;-----------------------------------| sql dat…...

wordpress 注册/百度广告投放公司

今年对Adobe而言真是多事之秋。被苹果修理完之后&#xff0c;这下轮到Opera了。在1994年发表CSS技术初步提议&#xff0c;因此被称为CSS之父&#xff0c;也是Opera CTO的哈哈康•维姆莱&#xff08;Hkon Wium Lie&#xff09;昨日在台湾表示&#xff0c;HTLL 5加上CSS 3可以做到…...

网站建设与设计论文/搭建一个网站

“钉钉应用开发不仅完成了实验室数字化运营的定制需求&#xff0c;这段落地的应用开发经验也丰富了我的实践经历&#xff0c;成为我的实习面试宝典。” ——「开发者」说 詹泽晔同学是南京大学软件效能实验室的一名研究生&#xff0c;利用专业优势&#xff0c;他所在的实验室…...

兼职做彩平网站/营销手段有哪些方式

1 unix操作系统 ubuntu 12版本Unix内核0.5天 常用命令2 c语言&#xff1a;标准c 十天主要练习动手能力 小案例水平高的 自己去写案例水平低的 理解并跟着写3 c&#xff1a;5天高级语言的特点&#xff1a;面向对象面向对象的特点&#xff1a;继承 封装 多态4 uc::unix 内核编程通…...

成都建设网站 scgckj/seo外包网络公司

转&#xff1a;http://www.cnblogs.com/tyonly/archive/2011/05/23/2054141.html 有感于做软件的辛苦&#xff0c;特撰一文。 一般软件公司接到了软件实施案子&#xff0c;第一步是急吼吼的去做需求调研。首先集中要使用软件的一帮人在一起开座谈会&#xff0c;有使用部门的&a…...

做的网站/b2b关键词排名工具

1. 下载golang wget https://dl.google.com/go/go1.17.7.linux-amd64.tar.gz 2. 解压缩到指定目录 tar -zxf go1.17.7.linux-amd64.tar.gz -C /usr/local 3. 配置环境变量 3.1. 修改配置文件 vi /etc/profile 3.2. 增加golang配置 #golang env config export GO111MODU…...