80386 寄存器

Intel80386中文学习手册(完整版) Intel80386中文学习手册,非常完整,想学习该CPU可以下了看看,如果你想分析linux内核源码,也要下了学习下,我好在分析LINUX内核时花了好大的功夫才搞到的,下了不后悔 立即下载

80386:
;=================================================
80386共有34个寄存器,可分为七类,它们分别是:
通用寄存器
段寄存器
指令指针和标志寄存器
系统地址寄存器
控制寄存器
调试寄存器
测试寄存器
;=================================================
   A1:General Register(通用寄存器)
    EAX,EBX,ECX,EDX,ESI,EDI,ESP,EBP,
   它们的低16位就是8086的
   AX,BX,CX,DX,SI,DI,SP,BP
   ;-------------------------
     EAX:累加器
     EBX:基址寄存器
     ECX:计数器
     EDX:数据寄存器
     ESI:源地址指针寄存器
     EDI:目的地址指针寄存器
     EBP:基址指针寄存器
     ESP:堆栈指针寄存器
     ;------------------------
   这些寄存器可将低16位单独存取
   也就是8086的AX,BX,CX,DX,SI,DI,SP,BP
   它们的高16位不受影响
   可单独存取AH,AL,BH,BL,CH,CL,DH,DL
 
;=================================================
     A2:Segment Register(段寄存器)
     80386增加了两个段FS,GS
     这些段寄存器都是16位的
     ;------------------------
     CS:代码段(Code Segment)
     DS:数据段(Data Segment)
     ES:附加数据段(Extra Segment)
     SS:堆栈段(Stack Segment)
     FS:附加段
     GS:附加段
     ;------------------------
;=================================================
     A3:Instruction Pointer(指令指针寄存器)
     80386的指令指针EIP是一个32位寄存器,是从8086的IP扩充而来。
    
;-------------------------------------------------
     Flag Register(标志寄存器)
     80386的标志寄存器EFLAGS也是一个32位寄存器,其中只使用了15位。
     32位标志寄存器中,除保留8088/8086CPU的9个标志外,另新增加了4个标志
  
     a.IOPL(I/O Privilege Level),I/O特权级字段,
     它的宽度为2bit,它指定了I/O指令的特权级。
     如果当前的特权级别在数值上小于或等于IOPL,
     那么I/O指令可执行。否则,将发生一个保护性异常。
    
     b.NT(Nested Task):嵌套任务(Nested Task,位14)。
     若NT=1,当前执行的任务嵌套于另一任务中
     执行完该任务后,要返回到原来的任务中去;
     否则NT=0。这个标志最早出现在80286中。
    
     c.RF(Restart Flag):重启标志,它的宽度是1位。
     它主要控制是否接受调试故障。RF=0接受,RF=1忽略。
     如果你的程序每一条指令都被成功执行,那么RF会被清0。
     而当接受到一个非调试故障时,处理器置RF=1。
    
     d.VM(Virtual Machine):虚拟8086模式
     (用软件来模拟8086的模式,所以也称虚拟机)。
     VM=0,处理器工作在一般的保护模式下;
     VM=1,工作在V8086模式下。
    
     其它16个标志位的含义和8086一样
     e.CF(Carry Flag):进位标志位,由CLC,STC两标志位来控制
     f.PF(Parity Flag):奇偶标志位
     g.AF(Assistant Flag):辅助进位标志位 
     h.ZF(Zero Flag):零标志位
     i.SF(Singal Flag):符号标志位
     j.IF(Interrupt Flag):中断允许标志位,由CLI,STI两条指令来控制
     k.DF(Direction Flag):向量标志位,由CLD,STD两条指令来控制
     l.OF(Overflow Flag):溢出标志位。
;=================================================
   A4:System Address Register(系统地址寄存器)
     80386有4个系统地址寄存器,用来:
     1.存储操作系统需要的保护信息和地址转换表信息;
     2.定义目前正在执行任务的环境;
     3.地址空间和中断向量空间。
   ;------------------------
     GDTR:48位全局描述符表寄存器
     用于保存全局描述符表的32位基地址和全局描述符表的16位界限
     (全局描述符表最大为216字节,共216/8=8K个全局描述符)。

     IDTR:48位中断描述符表寄存器
     用于保存中断描述符表的32位基地址和中断描述符表的16位界限
     (中断描述符表最大为216字节,共216/8=8K个中断描述符)。

     LDTR:16位局部描述符表寄存器
     用于保存局部描述符表的选择符。
     一旦16位的选择符放入LDTR,
     CPU会自动将选择符所指定的局部描述符
     装入64位的局部描述符寄存器中。

     TR:16位任务状态寄存器
     用于保存任务状态段(TSS)的16位选择符。
     与LDTR类似,一旦16位的选择符放入TR,
     CPU会自动将该选择符所指定的任务描述符
     装入64位的任务描述符寄存器中。
   ;------------------------
     LDTR和TR寄存器是由16位选择字段和64位描述符寄存器组成。
     用来指定局部描述符表和任务状态段TSS在物理存储器中的位置和大小。
     64位描述符寄存器是自动装入的,程序员不可见。
     LDTR与TR只能在保护方式下使用,程序只能访问16位选择符寄存器。
;=================================================
   A5:Control Register(控制寄存器)
     80386有4个32位控制寄存器(CR0、CR1、CR2和CR3)。
     它们的作用是保存全局性的机器状态。
     CR0的低16位称为机器状态字MSW。
   ;------------------------
     PE:保护允许位。
     进入保护方式时PE=1。除复位外,不能被清除。实方式时PE=0。

     MP:监视协处理器位。
     当协处理器工作时MP=1,否则MP=0。

     EM:仿真协处理器位。
     当MP=0,且EM=1时,表示要用软件来仿真协处理器功能。

     TS:任务转换位。
     当两任务切换时,使TS=1,此时不允许协处理器工作;
     当两任务之间切换完成后,TS=0。

     ET:协处理器类型位。
     系统配接80387时ET=1,配接80287时ET=0。

     PG:页式管理允许位。
     PG=1表示启用芯片内部的页式管理系统,否则PG=0。
  
     CR1:由Intel公司保留
     CR2:存放引起页故障的线性地址
     CR3存放当前任务的页目录基地址
;=================================================
    A6:Debug Register(调试寄存器)
     80386设有8个32位调试寄存器DR0~DR7,它们为调试提供了硬件支持。
     ;------------------------
     DR0~DR3:4个保存线性断点地址的寄存器
    
     DR4、DR5:备用寄存器
    
     DR6:调试状态寄存器
     通过该寄存器的内容可以检测异常,并允许或禁止进入异常处理程序
    
     DR7:调试控制寄存器
     用来规定断点字段的长度
     断点访问类型
     “允许”断点
     “允许”所选择的调试条件
     ;------------------------
;=================================================
     A7:Test Register(测试寄存器)
     80386设置了8个32位的测试寄存器TR0~TR7,
     其中TR0~TR5由Intel公司保留,用户只能访问TR6、TR7。
     它们用于控制对TLB中的RAM和CAM相联存储器的测试。
     TR6是测试控制寄存器,TR7是测试状态寄存器,保存测试结果的状态。
;=================================================

相关资料:

 

 

 http://mcit.xjtu.edu.cn/wlkj/wykj/ch2/ch2_4_1.htm

推荐-x86 instruction listings:

http://en.wikipedia.org/wiki/X86_instruction_listings

【系统架构设计师-2023年真题】综合知识-答案及详解 要实现多任务间的协同工作,操作系统必须提供任务间的通信手段。嵌入式操作系统一般都会提供多任务间通信的方法,其中()是任务间最直接、最明显的通信方法,也是访问共享的数据结构,即不同的任务都可以访问同一地址空间。()作为一种更高级的通信方式,能够在同一处理器的各个任务间传递任意长度(理论上只受物理内存和机器字长限制)的信息。(1)A. 共享内存 B. Socket C. 消息传递 D. 信号量(2)A. 共享内存 B. Socket C. 消息传递 D. 信号量【答案】A、C关于星型拓扑结构,下列说法正确的是( 阅读详情

相关推荐

【Unity】ABB CRB 15000 外部引导运动实战:从配置到实时控制

本文详细介绍了ABB CRB 15000协作机器人的外部引导运动(EGM)功能在Unity环境中的实战应用。从RobotStudio配置到Unity实时通信架构,再到EGM运动控制技巧和问题排查,全面解析如何实现机器人的高精度实时控制。通过实际案例展示EGM技术在精密装配等场景中的显著效果,帮助开发者快速掌握这一先进技术。

weixin_29057695的博客 445

动手写操作系统6----调色板

本节实现调色板功能,之前开启显存的图形模式,对于每一个像素点利用8位数字来表示颜色,可以得到256种颜色,颜色丰富度不够,因此使用调色板功能来增强颜色显示,使用RGB模式,表示一个RGB颜色需要24位数。 调色板功能简单实现 调色板原理:把多种RGB颜色的24位数值放入到一个数组中,原来的八位数不再对应一个颜色值,而是变成这个数组的下标,硬件在显示像素颜色时,从...

大魔王 1321

ABB机器人常见的几大数据类型

ABB机器人数据存储描述了机器人控制器内部的各项属性,ABB机器人控制器数据类型多达100余种,其中常见的数据类型包括基本数据、i/o数据、运动相关数据。 1、基本数据 基本数据: bool 逻辑值:逻辑状态下赋予的真或者假。逻辑值有两种情况:成立和不成立则逻辑值为真使用true或1表示不成立则逻辑值为假使用false或0表示 byte 字节值:用于计量存储容量的一种计量单位,取值范围为(0-255) num 数值:变量、可存储整数或小数整数取值范围(-8388607~8388608) dnum

soinlove36的专栏 1万+

80386 控制转移指令,串操作指令 (四)

控制转移指令,串操作指令80386控制转移指令包括:转移指令,循环指令,过程调用和返回指令。A.转移指令包括无条件转移指令JMP和条件转移指令,无条件转移指令分为段内直接转移,段内间接转 移,段间直接转移,段间间接转移。由于80386有保护模式和实模式,在实模式下,段内转移的范围在-128~127,段间转移最大范围为64K。在保护 模式需要用48位指针,即CS:EIP(16位+32位)。条件转

ANSWER 的专栏 2045

双硬盘下Ubuntu 16.04与Win10双系统的安装

之前写过一个双系统安装过程,今天再次整理的原因是想重点强调双硬盘的区别。标红的一定要注意看,那就是我自己一步一步踏出来的坑啊...   基础步骤就不再重复,重点讲区别,需要看详细步骤的童鞋(或者你只有一个硬盘)请看我上一篇博客https://blog.youkuaiyun.com/weixin_40308540/article/details/80157444   区别:双硬盘和单硬盘的区别是什么呢?...

不吃包子 1122

大数据架构中的数据血缘追踪技术解析

数据血缘(Data Lineage)是指数据从源头到目标的完整流转路径,它记录了数据在整个生命周期中的变化过程。在大数据架构中,数据血缘追踪技术已经成为数据治理的核心组成部分。本文旨在全面解析数据血缘追踪的技术原理、实现方法和应用实践,帮助读者深入理解这一关键技术。本文将从基础概念入手,逐步深入到技术实现细节,最后探讨实际应用和未来趋势。数据血缘的核心概念和技术原理数据血缘的数学模型和算法实现实际项目案例和代码解析主流工具和解决方案比较未来发展方向和技术挑战。

架构师的AI之路,分享AI应用开发架构的学习与实践。 687

80386实模式编程模型

概括:当80386上电复位后,进入实模式状态,本文就介绍80386在实模式下的编程模型,采用和8086同样的叙述结构,相同的部分会省略。 一、寄存器1.1、80386寄存器结构图如下1.2、由上图可知,80386的寄存器和8086相比,区别如下:■ 所有的寄存器都被扩展到了32位

技术点滴记录 1771

浙大数值分析lab2

最可怕的一道题,题目是这样的 Root of a Polynomial A polynomial of degree nnn has the common form as p(x)=cnxn+cn−1xn−1+⋯+c1x+c0p(x)=c_n x^n + c_{n-1} x^{n-1} + \cdots + c_1 x + c_0p(x)=c​n​​x​n​​+c​n−1​​x​

yao_zou的博客 4794

80x86系列CPU的寄存器大全(带注释)

8086 CPU是一款由英特尔公司推出的16位微处理器,它具有14个寄存器,其中8个通用寄存器、4个段寄存器和2个指针寄存器。80386 CPU是一款由英特尔推出的32位微处理器,相比于8086 CPU,它拥有更多的寄存器。

李白 2635

抖音中动态生成msToken的方法

抖音中动态生成msToken的方法

sh_moranliunian的博客 2483

【异常】Codybuddy Error Code: 14003 too many requests 限流报错问题排查与解决指南

14003报错本质为服务端限流拦截,并非账号封禁或程序致命故障,90%以上的场景可通过等待冷却+规范使用行为解决。通过本文的排查步骤,可快速恢复工具使用,同时规避后续重复触发该问题。

奶爸的编程之路,也就一周冷个三天 1251

80386常用内部寄存器

了解一款芯片,最基本的就是要了解它的寄存器。大家不要因为80386是32位处理器,就认为它的寄存器都是32位的。其实它的寄存器相当的复杂。不仅有32位的,还有16位的,48位的,乃至64位的。80386共有34个寄存器,可分为七类。它们分别是通用寄存器、指令指针和标志寄存器、段寄存器、系统地址寄存器、控制寄存器、调试和测试寄存器。以下是部分常用的寄存器:     一、通用寄存器(8个)

是真学霸自风流,公众号:IC免费课 2176

C#串口通信上位机开发实战:轻松实现硬件控制与数据交互

摘要:本文介绍如何使用C#开发串口通信上位机应用,实现与硬件设备(如传感器、PLC等)的数据交互。文章涵盖串口通信原理、开发环境配置、功能实现(串口连接管理、数据收发、实时显示)及UI设计,重点讲解SerialPort类的应用、多线程数据接收处理和错误优化。通过Windows Forms构建直观界面,帮助开发者快速掌握工业控制和自动化系统中的串口通信技术,为物联网和智能设备开发提供实用解决方案。全文约150字。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3029

系统寄存器 系统指令

为系统程序员设计的寄存器可以分为以下几类: EFLAGS (标志寄存器) Memory-Management Registers (内存管理寄存器) Control Registers (控制寄存器) Debug Registers (调试寄存器) Test Registers (测试寄存器) 4.1.1 系统标志 (System Flags) 系统标志寄存器EFLAGS 控制着 I

tasty 1046

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

80386的各种寄存器一览

注:本分类下文章大多整理自《深入分析linux内核源代码》一书,只是为了更好地理清系统编程和网络编程中的一些概念性问题,并没有深入地阅读分析源码,我也是草草翻过这本书,请有兴趣的朋友自己参考相关资料。此书出版较早,分析的版本为2.4.16,故出现的一些概念可能跟最新版本内核不同。 此书已经开源,阅读地址 http://www.kerneltravel.net 1、通用寄

Meditation 3767

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Intel_80386寄存器

80386寄存器80386内存架构逻辑地址|线性地址|物理地址关系80386的寄存器可以分为8组General Register(通用寄存器)Segment Register(段寄存器,也称 Segment Selector,段选择符,段选择子)Instruction Pointer(指令指针寄存器)Flag Register(标志寄存器) 80386内存架构 地址是访问内存空间的索引。一般而言,内存地址有两个:一个是CPU通过总线访问物理内存用到的物理地址,一个是我们编写的应用程序所用到的逻辑地址(也有人

个人笔记 917

80386寄存器(转)

 80386处理器是Intel公司80×86发展史上的里程碑,它不但兼容先前的8086/8088,80186,80286处理器,而且也为后来的486,Pentium(586),Pentium Pro(686)的发展打下了坚实的基础,对于我们程序员来讲更重要的是:我们关心80386在指令上到底有哪些扩展呢?80386有哪些寻址方式呢?毫无疑问,它不但兼容了8086的所有指令,而且还对它们进行增强.    呵呵,我知道有很多人问我CPU已经发展到PentiumIIII,没有必要学习80386的汇编。其实不然,8

TONGGETONGGE的专栏 920

80386寄存器简介

80386的寄存器组成 写这篇文章,完全是因为学习保护模式需要这些知识,读者完全可以走马观花,大致看看有什么内容,知道需要的时候来查这篇文章就可以了,完全没有必要抵抗着困意非要把这篇文章认真看完,记住里面每一个寄存器里每一位的定义,但是以后的文章如果需要,一定要记得回来查查相关的内容。 80386共提供7种类型的32位寄存器,如下: 通用寄存器(EAX、EBX、EC...

weixin_33938733的博客 542

80386的寄存器组成

作者:luketowne 原作网址:http://www.cppblog.com/luketowne/articles/87043.html  写这篇文章,完全是因为学习保护模式需要这些知识,读者完全可以走马观花,大致看看有什么内容,知道需要的时候来查这篇文章就可以了,完全没有必要抵抗着困意非要把这篇文章认真看完,记住里面每一个寄存器里每一位的定义,但是以后的文章如果需要,一定要记得回

xiaominthere的专栏 1613

80386标志寄存器

80386标志寄存器(图)

孤云出岫, 去留一无所系. 朗镜悬空,静躁两不相干. 1220

80386控制寄存器

80386控制寄存器和系统地址寄存器如下表所示。它们用于控制工作方式,控制分段管理机制及 分页管理机制的实施。 控  制寄存器CRxBIT31BIT30—BIT12BIT11—BIT5BIT4BIT3BIT2BIT1BIT0CR0PG0000000000000000ETTSEMMPPECR1保留CR2页故障线性地址CR3页目录表物理页码000000000000 BIT47—BIT16BIT15—B

_CX_的专栏 463

80386寄存器分布大纲

80386寄存器大纲如下。寄存器部分通讲:

咸鱼的笔记 496

80386寄存器

1.80386的的寄存器: 80386的寄存器可以分为8组:通用寄存器,段寄存器,指令指针寄存器,标志寄存器,系统地址寄存器,控制寄存器,调试寄存器,测试寄存器,它们的宽度都是32位的。本篇主要介绍80386的寄存器。  A1.General Register(通用寄存器) EAX,EBX,ECX,EDX,ESI,EDI,ESP,EBP,它们的低16位就是8086的AX,BX,CX,DX,

珑的专栏 751
上一篇: Wiki-how to set a graphics mode
下一篇: linux/init/main.c 注释
codeferever
博客等级 码龄17年 19粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值