ASM 01

转载 2011年01月16日 08:38:00

1.通用寄存器:
EAX ECX EDX EBX ESP EBP ESI EDI (图1)
 1.jpg

 

数据寄存器以及定义:
EAX ECX EDX EBX用来暂时存放计算过程中所用的操作数、结果或其他信息。
EAX(Accumilator):累加器,算数运算的主要寄存器
ECX(Count):计数器,在循环(LOOP)和传处理指令中用作隐含的计数器
EDX(Date):数据寄存器,一般在做双字长运算时把EDX和EAX组合在一起放一个双字长数,EDX用来存放高位数字
EBX(Base):基址寄存器,
寄存器以及定义:ESP EBP ESI EDI它们可以像数据寄存器一样在运算过程中存放操作数,但它们只能16位使用。此外它们更经常的用途是在段内寻址时提供偏移地址。
ESP(Stack Pointer):堆栈指针寄存器,表示栈顶的偏移地址。
EBP(Base Pointer):基址指针寄存器,可作为堆栈区中的基值地址以便访问堆栈中的其他信息。
ESI (Source Index):原地址指针寄存器
EDI(Destination Index):目的地址指针寄存器
ESI和EDI一般与EDS联用,用来确定数据段中某一存储单位的地址。这两个变址寄存器有自动增量和减量的功能。

2.段寄存器:
ES CS SS DS FS GS(图2)
 2.jpg

(图2)
    CS:代码段(Code Segment)
    DS:数据段(Data Segment)
    ES:附加数据段(Extra Segment)
    SS:堆栈段(Stack Segment)
    FS:附加段
    GS  附加段

 

 

 

3.指令寄存器
 3.jpg

EIP(Instrcution Pointer):指令指针存储寄存器,它用来存放代码中偏移地址
4. 其他16个标志位(图3)
 4.jpg

                (图3)
       CF(Carry Flag):符号标志,记录运算结果的符号,结果为负数时则 1,否则0
       PF(Party Flag):奇偶标志,用来为机器中传送信息时可能产生的代码出错情况听歌检验条件。当结果操作数中1的个数为偶数时置1,否则置0
       AF(Assistant Flag):辅助进位标志位
       ZF(Zero Flag):零标志,运算结果为0时ZF位置1,否则置0
       SF(Singal Flag):符号标志,记录运算结果的符号,结果为负时置1,否则置0
       IF(Interrupt Flag):中断允许标志位,由 CLI,STI两条指令来控制
       DF(Direction Flag):向量标志位,由 CLD,STD 两条指令来控制
       OF(Overflow Flag):溢出标志,在操作数超出了计算能表示的范围称为溢出

【ASM的学习】asm官方手册学习心得01

【前言】 最近在搞一个b2b项目,为什么我会闲得蛋疼来搞asm字节码之类的? 原因在于在网上下载的一个数据库连接池里面的connection一旦关闭以后它会自动重新获取连接-----既然你都自...
  • cdnight
  • cdnight
  • 2013年08月06日 16:52
  • 836

asm(nop);具体延时

asm(“nop”)是内嵌汇编做空指令延时用的,其中asm()的作用是指函数内部的参数翻译为汇编指令,其作用是在C语言环境下直接使用汇编指令执行。nop是一个空等待汇编指令,这个指令执行时,单片机是什...
  • Mr_White01
  • Mr_White01
  • 2017年03月30日 15:53
  • 2142

java asm库的原理与使用方法(一)

ASMk ASM是一款基于java字节码层面的代码分析和修改工具;无需提供源代码即可对应用嵌入所需debug代码,用于应用API性能分析,代码优化和代码混淆等工作。ASM的目标是生成,转换和分析已编...
  • xysmiracle
  • xysmiracle
  • 2014年07月30日 09:58
  • 3414

ASM是怎样访问及修改编译了的class文件

java源码编译生成的class文件,其结构如何?   编译生成的class,其结构可以从java source 文件找到对应物。 一个编译后的class文件,包含以下与java s...
  • songshuaiyang
  • songshuaiyang
  • 2016年03月11日 15:37
  • 1042

c/c++/asm 混合编程

c/c++ 混合编程
  • chuchus
  • chuchus
  • 2014年04月23日 19:04
  • 2130

使用ASM来书写Java代码

原文地址:http://blog.sina.com.cn/s/blog_4b38e200010008to.html 小巧而神奇的ASM ASM是一套JAVA字节码生成架构。它可以动态生成二进制格式...
  • Mr__fang
  • Mr__fang
  • 2017年02月03日 13:47
  • 1751

单用户安装Oracle 11g 单机ASM

一、安装准备       环境:RedHat 5.6 64位   Oracle 11.2.0.3       初始化安装环境(用脚本完成):        #!/bin/bash if [ ! $1 ...
  • lnwf5188588
  • lnwf5188588
  • 2013年10月08日 17:45
  • 4739

梳理spring-aop的利器:asm3.0

AOP 的利器:ASM 3.0 介绍 随着 AOP(Aspect Oriented Programming)的发展,代码动态生成已然成为 Java 世界中不可或缺的一环。本文将介绍一种小巧轻便的 J...
  • u014586894
  • u014586894
  • 2016年06月11日 15:13
  • 559

java asm 修改方法

1.实体类 package com.study.asm; public class Person { private String name; public void sayNam...
  • yyywyr
  • yyywyr
  • 2014年08月04日 22:41
  • 6596

如何知道ASM磁盘组由哪些物理磁盘组成

我们知道用下面的方法可创建 ASM 磁盘,然后再创建逻辑的ASM磁盘组。 以 root 用户身份创建 ASM 磁盘。 # /etc/init.d/oracleasm createdisk VO...
  • lichangzai
  • lichangzai
  • 2014年03月17日 10:37
  • 2161
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASM 01
举报原因:
原因补充:

(最多只允许输入30个字)