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 ...
随机推荐
- Chrome 抓包:快速定位HTTP协议问题
标签(空格分隔): 快速定位HTTP协议问题 Chrome:快速定位HTTP协议问题 快捷键:control+shift+i(windows),command+option+i(mac) 控制器: 控 ...
- Java 有几种修饰符?分别用来修饰什么
4种修饰符 访问权限 类 包 子类 其他包 public ∨ ∨ ∨ ∨ protect ∨ ∨ ∨ × default ∨ ∨ ...
- 一元回归1_基础(python代码实现)
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003&u ...
- node_modules .bin文件夹下的文件
node_modues/.bin文件夹下,对于一个npm包,有两个可执行文件,没有后缀名的是是对应unix系的shell脚本,.cmd文件对应的是windows bat脚本,内容都是用node执行一个 ...
- wpf 收集的不错的datagrid样式
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...
- MySQL单列索引和组合索引的创建及区别介绍
MySQL单列索引是我们使用MySQL数据库中经常会见到的,MySQL单列索引和组合索引的区别可能有很多人还不是十分的了解,下面就为您分析两者的主要区别,供您参考学习. 为了形象地对比两者,再建一个表 ...
- vue+egg.js+mysql一个前后端分离留言板项目
一.前序 我相信每个人前端搬运工和我想法都是一样的,都有一个做全栈的梦,无奈面对众多的后台语言,却不从下手,今天由我来带你们潜入全栈的门槛,注意是门槛.能不能学的会后面的内容全靠坚持了. 我今天主要做 ...
- Linux进程状态——top,ps中看到进程状态D,S,Z的含义
在top和ps命令中有一列显示进程状态,分别有如下值: 值 含义 S 进程处于interruptable sleep状态 D 进程处于Uninterruptable sleep状态 R 进程处于运行状 ...
- 发布项目到github上web服务器来运行
$ git add dist Administrator@LuoTong- MINGW32 /D/react_workspace (master) $ git commit -m "git ...
- Python 入门之数据类型之间的相互转换 以及 在编程中会遇到的数据类型的坑
Python 入门之数据类型之间的相互转换 以及 在编程中会遇到的数据类型的坑 1.数据类型总结: 可变,不可变,有序,无序 (1)可变的数据类型:list dict set (2)不可变的数据类型: ...