oracle汇编01
1: / define numeric label "1"
one: / define symbolic label "one"
/ ... assembler code ...
jmp 1f / jump to first numeric label "1" defined
/ after this instruction
/ (this reference is equivalent to label "two")
jmp 1b / jump to last numeric label "1" defined
/ before this instruction
/ (this reference is equivalent to label "one")
1: / redefine label "1"
two: / define symbolic label "two"
jmp 1b / jump to last numeric label "1" defined
/ before this instruction
/ (this reference is equivalent to label "two")
2.There are fve classes of tokens:
■ Identifers (symbols)
■ Keywords
■ Numerical constants
■ String Constants
■ Operators
3.An x86 instruction statement can consist of four parts:
■ Label (optional)
■ Instruction (required)
■ Operands (instruction specifc)
■ Comment (optional)
4.Possible operand types and their instruction sufxes are:b Byte (8–bit)w Word (16–bit)
l Long (32–bit) (default)
q Quadword (64–bit)
5.Only jump and call
instructions can use indirect operands.
Immediate operands are prefxed with a dollar sign ($) (ASCII 0x24)
■ Register names are prefxed with a percent sign (%) (ASCII 0x25)
■ Memory operands are specifed either by the name of a variable or by a register that contains
the address of a variable. A variable name implies the address of a variable and instructs the
computer to reference the contents of memory at that address. Memory references have the
following syntax:
segment:offset(base, index, scale).
■ Segment is any of the x86 architecture segment registers. Segment is optional: if specifed,
it must be separated from offset by a colon (:). If segment is omitted, the value of %ds (the
default segment register) is assumed.Offset is the displacement from segment of the desired memory value. Offset is optional.■ Base and index can be any of the general 32–bit number registers.■ Scale is a factor by which index is to be multipled before being added to base to specify
the address of the operand. Scale can have the value of 1, 2, 4, or 8. If scale is not specifed,
the default value is 1.
movl var, %eax
-->Move the contents of memory location var
into number register %eax.
movl %cs:var, %eax
-->Move the contents of memory location var
in the code segment (register %cs) into
number register %eax.
movl $var, %eax
-->Move the address of var into number
register %eax.
movl array_base(%esi), %eax
-->Add the address of memory location
array_base to the contents of number
register %esi to determine an address in
memory. Move the contents of this address
into number register %eax.
movl (%ebx, %esi, 4), %eax
-->Multiply the contents of number register
%esi by 4 and add the result to the contents
of number register %ebx to produce a
memory reference. Move the contents of
this memory location into number register
%eax.
movl struct_base(%ebx, %esi, 4), %eax
-->Multiply the contents of number register
%esi by 4, add the result to the contents of
number register %ebx, and add the result to
the address of struct_base to produce an
address. Move the contents of this address
into number register %eax.
oracle汇编01的更多相关文章
- Oracle Recovery 01 - 常规恢复之完全恢复
背景:这里提到的常规恢复指的是数据库有完备可用的RMAN物理备份. 实验环境:RHEL6.4 + Oracle 11.2.0.4 DG primary. 一.常规恢复之完全恢复:不丢失数据 1.1 单 ...
- Oracle实用-01:绑定变量
数据库虽然在学校系统学习过,但是在工作中真正使用起来收获又是不一样的,今天起打算将项目中使用到的技术再分享出来,不以书本的顺序,只从碰到的问题为顺序. 虽然不是纯粹的数据库工程师,但是每个程序员总免不 ...
- Oracle笔记 #01# 简单分页
rownum是Oracle为查询结果分配的有序编号(总是从1~n).言下之意,rownum字段本来并不存在于表中,而是经查询后才分配的. 举一个例子: SELECT rownum, name, pri ...
- Oracle基础 01 表空间 tablespace
--查看表空间 select * from dba_tablespaces; select * from v$tablespace; select * from dba_data_files; --查 ...
- Oracle数据库01
常用函数 COUNT(*):统计所有的数据量,没有过滤功能 COUNT(字段):统计出指定字段不为null的数据量,有过滤功能 COUNT(DISTINCT 字段):统计指定字段不为空并且去掉重复数据 ...
- Oracle案例01——ORA-09925: Unable to create audit trail file
2018年春节后第一天上班就遇到一个审计日志无法写入的问题,具体解决思路如下. 一.错误日志 数据库错误日志内容: Fri Feb 23 11:16:30 2018OS Audit file coul ...
- oracle 汇编04
General-Purpose Instructions The general-purpose instructions perform basic data movement, memory ad ...
- oracle汇编03
.long expression1, expression2, ..., expressionNThe .long directive generates a long integer (32-bit ...
- Oracle 存储过程--01
1.简单的例子 /* 1.求圆的面积 */ create or replace procedure proc_1 is pi constant number(9,7):=3.1415927; radi ...
随机推荐
- Eigen中的矩阵及向量运算
Eigen中的矩阵及向量运算 ,[+,+=,-,-=] ,[\*,\*=] ,[.transpose()] ,[.dot(),.cross(),.adjoint()] ,针对矩阵元素进行的操作[.su ...
- @RequestMapping 和@ResponseBody 和 @RequestBody和@PathVariable 注解 注解用法
接下来讲解一下 @RequestMapping 和@ResponseBody 和 @RequestBody和@PathVariable 注解 注解用法 @RequestMapping 为url映射路 ...
- CSS-W3School:CSS table-layout 属性
ylbtech-CSS-W3School:CSS table-layout 属性 1.返回顶部 1. CSS table-layout 属性 CSS 参考手册 实例 设置表格布局算法: table { ...
- 终于, Delphi XE2 携带 GDI+ 库了
终于, Delphi XE2 携带 GDI+ 库了 使用了较早的 http://www.progdigy.com uses Winapi.GDIPAPI, Winapi.GDIPOBJ{, Winap ...
- ARTS-1
ARTS的初衷 Algorithm:主要是为了编程训练和学习.每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard).进行编程训练,如果不训练你看再多的算法 ...
- Git 的使用及其一些基本用法
打开你的git-bash 绑定用户和邮箱作为标识 $ git config --global user.name "your name" $ git config --global ...
- 实验3&总结5
老师:lijin2019,助教:晨晨果 提交作业 实验三 String类的应用 实验目的 掌握类String类的使用: 学会使用JDK帮助文档: 实验内容 1.已知字符串:"this is ...
- C#读取 *.exe.config
读语句: String str = ConfigurationManager.AppSettings["DemoKey"];写语句: Configuration cfa = Con ...
- Ubuntu 16.04简单配置备忘录
1.几个安装包的地址 1.Linux QQ:https://im.qq.com/linuxqq/index.html 2.网易云音乐:http://s1.music.126.net/download/ ...
- Java常用的日志框架
1.Java常用日志框架对比 https://www.jianshu.com/p/bbbdcb30bba8 2.Log4j,Log4j2,Logback日志框架性能对比 https://bbs.hua ...