80386寄存器

①8个32-bit寄存器:
  %eax 一般用作累加器;
  %ebx 一般用作基址寄存器(Base);
  %ecx 一般用来计数(Count);
  %edx 一般用来存放数据(Data);
  %esp 一般用作堆栈指针(Stack Pointer);
  %ebp 一般用作基址指针(Base Pointer);
  %esi 一般用作源变址(Source Index);
  %edi 一般用作目标变址(Destinatin Index);
②8个16-bit寄存器:
  它们事实上是上面8个32-bit寄存器的低16位:%ax,%bx,%cx,%dx,%di,%si,%bp,%sp;
③8个8-bit寄存器:
  它们事实上是寄存器%ax,%bx,%cx,%dx的高8位和低8位:%ah,%al,%bh,%bl,%ch,%cl,%dh,%dl;
④6个段寄存器:
  %cs 代码段寄存器;
  %ds 数据段寄存器;
  %ss 堆栈段寄存器;
  %es 附加数据段寄存器;
  %fs 附加数据段寄存器;
  %gs 附加数据段寄存器;
⑤4个控制寄存器:%cr0,%cr2,%cr3(其中%cr1保留未使用);
⑥一个标志寄存器:EFLAGS
⑦8个浮点寄存器栈:%st(0),%st(1),%st(2),%st(3),%st(4),%st(5),%st(6),%st(7);
⑧2个测试寄存器:%tr6,%tr7;
⑨6个debug寄存器:%db0,%db1,%db2,%db3,%db6,%db7。

时间: 2024-10-08 02:44:44

80386寄存器的相关文章

Linux 0.11总结

1.内存分布示意图 再附一张,描述符表. 主要说一下全局描述符中的内容: 每一项都是8个字节. 第一项为全0,没有被使用. 第二项为存储段描述符,DT=1,DPL=00,代码段描述符,基地址是0,段界限是16MB. 第三项为存储段描述符,DT=1,DPL=00,数据段描述符,基地址是0,段界限是16MB. 第四项为全0,没有被使用. 第五项为系统段描述符,DT=0,DPL=00,进程0的任务状态段,基地址指向进程0的TSS的地址,段界限是进程0的TSS的长度. 第六项为系统段描述符,DT=0,D

Intel 80X86寄存器分类介绍(转)

开始读Linux内核相关书籍时,在书店里碰到一个计算机专业科班出身的朋友,向他请教时,他认为学习Linux内核不需要汇编和计算机体系结构等相关的知识.可是结合到现在的学习经历,我却越来越觉得为了搞清楚Linux内核相关设计和运行原理,自己那点自学来的汇编知识不但不够,还大大的需要补充.本文是我今日对微处理器寄存器学习总结所得,主要是翻译自<Intel 微处理器英文第7版>,阅读的过程中我参考了网上可以下载到的该书第六版的中文版和一篇关于寄存器在Visual Stdio 编译器中惯用方法的文章&

汇编语言--寄存器(cpu工作原理)

本文地址:http://www.cnblogs.com/archimedes/p/assembly-register.html,转载请注明源地址. 本文主要将介绍的是8086 CPU中的寄存器, 寄存器就是个存储信息的单元或者说是器件又或者说是容器而已,就比如内存也是一个存储介质或者说是存储单元而已,其实寄存器从理解上来说和内存差不多, 只不过寄存器(这里讨论的寄存器都是 CPU 中的寄存器,不包括外设上的寄存器)位于CPU内部,寄存器是 CPU 中的稀有资源,而对于一个汇编程序员来说,CPU

Kernel 2.4.0 之 head.S 为何用两次 jmp 刷新 EIP 寄存器

在arch\i386\kernel\head.S文件中,自line 100开始有这么几行:     movl %cr0,%eax     orl $0x80000000,%eax     movl %eax,%cr0      /* ..and set paging (PG) bit */     jmp 1f          /* flush the prefetch-queue */ 1:     movl $1f,%eax     jmp *%eax       /* make sure

80386与8086区别以及保护模式

在windows环境下,cpu的工作方式有三种:实模式:和8086工作一样(一般为开机时初始化计算机的时候),此时一个任务独占cpu 保护模式:即计算开机后所处的状态,此时可以运行多个程序,多线程. 虚拟8086模式:即计算机处于保护模式时运行的dos程序,此时处于保护模式,即在保护模式下模拟实模式,使之前8086下能运行的软                                                                                件在保护模式

内核基础 - 寄存器与内存寻址(by quqi99)

作者:张华  发表于:2016-03-01 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 汇编 汇编编译器assembler编译目标代码二进制文件(nasm -f elf -g -F stabs *.asm),连接器linker(ld -o bin_file *.o)除了把目标代码组合成一个单个的块,还要确保模块以外的函数调用能够指向正确的内存引用(连接器必须建立一个索引,也就是符号表,里面

80X86寄存器详解&lt;转载&gt;

引子 打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些基础知识, 自然,还是得从最基础的开始,那就从汇编语言开刀吧, 从汇编语言开刀的话,我们必须还先要了解一些其他东西, 像  CPU ,内存这些知识点还是理解深刻一点的比较好, 所以这一篇博文就绕着 80x86  CPU 中寄存器的基础部分下手,至于其他的一些将会在后续的博文中介绍 . 同时在这里说明一下,本篇博文介绍的算是比较详细的了,而且介绍的知识点也是比较多的,所以造成博文长度过长, 如果有兴趣想了解这一块的话,还请自行斟酌

80x86 CPU 寄存器简介

本博文围绕80x86 CPU中寄存器的基础部分下手,着眼于CPU寄存器的特性和功能. 前言 首先介绍一下Intel CPU的发展史. Intel CPU系列,最初是4位微处理器4004,然后到8位微处理器的8008,再到8位微处理器8080,以及稍后的16位微处理器8086. 由 8086 开始,Intel 进入现在所谓的 x86 时代 . Intel 8086 为 16 位 CPU ,而因为在 8086 之前的 CPU 都是 8 位 CPU,这样也就造成了很多的外设也只支持 8 位,因此 In

80X86寄存器详解

引子 打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些基础知识, 自然,还是得从最基础的开始,那就从汇编语言开刀吧, 从汇编语言开刀的话,我们必须还先要了解一些其他东西, 像  CPU ,内存这些知识点还是理解深刻一点的比较好, 所以这一篇博文就绕着 80x86  CPU 中寄存器的基础部分下手,至于其他的一些将会在后续的博文中介绍 . 同时在这里说明一下,本篇博文介绍的算是比较详细的了,而且介绍的知识点也是比较多的,所以造成博文长度过长, 如果有兴趣想了解这一块的话,还请自行斟酌