centosx64位寄存器

[[email protected] ~]# uname -a
Linux monitor 2.6.32-431.23.3.el6.x86_64 #1 SMP Thu Jul 31 17:20:51 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux


[[email protected] ~]# cat /usr/include/sys/reg.h
/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, write to the Free
   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   02111-1307 USA.  */

#ifndef _SYS_REG_H
#define _SYS_REG_H      1
#include <bits/wordsize.h>

#if __WORDSIZE == 64
/* Index into an array of 8 byte longs returned from ptrace for
   location of the users‘ stored general purpose registers.  */

# define R15    0
# define R14    1
# define R13    2
# define R12    3
# define RBP    4
# define RBX    5
# define R11    6
# define R10    7
# define R9     8
# define R8     9
# define RAX    10
# define RCX    11
# define RDX    12
# define RSI    13
# define RDI    14
# define ORIG_RAX 15
# define RIP    16
# define CS     17
# define EFLAGS 18
# define RSP    19
# define SS     20
# define FS_BASE 21
# define GS_BASE 22
# define DS     23
# define ES     24
# define FS     25
# define GS     26
#else

/* Index into an array of 4 byte integers returned from ptrace for
 * location of the users‘ stored general purpose registers. */

# define EBX 0
# define ECX 1
# define EDX 2
# define ESI 3
# define EDI 4
# define EBP 5
# define EAX 6
# define DS 7
# define ES 8
# define FS 9
# define GS 10
# define ORIG_EAX 11
# define EIP 12
# define CS  13
# define EFL 14
# define UESP 15
# define SS   16
#endif

#endif
[[email protected] ~]# 
时间: 2024-10-12 21:19:28

centosx64位寄存器的相关文章

32位寄存器

 32位  16位 8位寄存器  EAX  AX AH AL  ECX  CX CH CL  EDX  DX DH DL  EBX  BX BH BL  ESP  SP    EBP  BP    ESI  SI    EDI  DI   寄存器        主要用途                                                                    存储范围 EAX            累加器                        

汇编32位寄存器和地址编号的五种书写形式

32位通用寄存器 32位:EAX   EBX  ECX   EDX  ESP  EBP   ESI  EDI  每个寄存器的最大宽度是32位 16位:AX       BX     CX    DX   SP     BP    SI     DI 8位   :AL     BL   CL      DL    AH    BH    CH    DH 想寄存器存一个数字可以用mov指令 mov eax,1  就是把1存到eax寄存器中 程序内存 一个32位的程序最大存储空间是4G 就是从0~0

32位16位8位寄存器及编号

编码 32位                         16位                8位 0      EAX      累加寄存器        AX                  AL 1      ECX      计数寄存器        CX                  CL 2      EDX      数据 | 基址       DX                  DL 3      EBX                        BX    

64位和32位的寄存器和汇编的比较

转载于http://blog.csdn.net/qq_29343201/article/details/51278798 64位(新增)汇编指令的不同 mov指令和push pop扩展了movq系列的mov和pushq以及popq用来操作quad word. 注意:movabsq不是32位的扩展,是纯新增的指令.用来将一个64位的字面值直接存到一个64位寄存器中.因为movq只能将32位的值存入,所以新增了这样一条指令. 顺带提一个小问题,64位的汇编代码在ret之前可能会加一句rep,这里的r

对所有CPU寄存器的简述(16位CPU14个,32位CPU16个)

32位CPU所含有的寄存器有:4个数据寄存器(EAX.EBX.ECX和EDX)2个变址和指针寄存器(ESI和EDI)2个指针寄存器(ESP和EBP)6个段寄存器(ES.CS.SS.DS.FS和GS)1个指令指针寄存器(EIP)1个标志寄存器(EFlags) --------------------------------------------------1.数据寄存器 寄存器AX和AL通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间.累加器可用于乘.除.输入/输出等

X86 32位的基本寄存器

本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/35268489 下面的寄存器前缀名E代表32,也就是说每个寄存器,可以拆分成两个16位寄存器. 1个指令指针寄存器(EIP) 4个数据寄存器(EAX.EBX.ECX和EDX) 2个栈指针寄存器(ESP和EBP) 2个变址寄存器(ESI和EDI) 6个段寄存器(ES.CS.SS.DS.FS和GS) 1个标志寄存器(EFlags) 1个任务管理寄存器(TR

【汇编指令】ARM指令集之寄存器及32位概述

1) ARM处理器有37+3个32位寄存器:其中有32个通用寄存器,只有一个PC指针寄存器,一般习惯用R15来指向正在取指的指令,而不是正在执行的指令.(这里涉及到arm处理器的流水线操作流程,下面在介绍),七个状态寄存器:但是只有一个CPSR寄存器(用来表示当前程序状态寄存器),6个SPSR寄存器(用来保存备份当前程序状态的异常数据). 处理器在工作时有8种不同的工作模式,对应的每一种处理器模式都有一组相应的寄存器组: 这里USER/SYS工作模式共用一个寄存器组,但是USER模式没有特权,而

32位Intel CPU所含有的寄存器

4个数据寄存器(EAX.EBX.ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES.CS.SS.DS.FS和GS)1个指令指针寄存器(EIP) 1个标志寄存器(EFlags) 1.数据寄存器 数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间. 32位CPU有4个32位的通用寄存器EAX.EBX.ECX和EDX.对低16位数据的存取,不会影响高16位的数据.这些低16位寄存器分别命名为:AX.BX

ARM寄存器

ARM寄存器 一.ARM工作状态下的寄存器组织 ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个位状态寄存器.但是这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式.但在任何时候,通用寄存器R14~R0.程序计数器PC(即R15).一个状态寄存器都是可访问的. 通用寄存器通用寄存器包括R0~R15,可以分为3类:(1)未分组寄存器R0~R7(2)分组寄存器R8~R14(3)程序计数器PC(R15) 1.未分组寄存器R0~R7在所有运