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的更多相关文章

  1. Oracle Recovery 01 - 常规恢复之完全恢复

    背景:这里提到的常规恢复指的是数据库有完备可用的RMAN物理备份. 实验环境:RHEL6.4 + Oracle 11.2.0.4 DG primary. 一.常规恢复之完全恢复:不丢失数据 1.1 单 ...

  2. Oracle实用-01:绑定变量

    数据库虽然在学校系统学习过,但是在工作中真正使用起来收获又是不一样的,今天起打算将项目中使用到的技术再分享出来,不以书本的顺序,只从碰到的问题为顺序. 虽然不是纯粹的数据库工程师,但是每个程序员总免不 ...

  3. Oracle笔记 #01# 简单分页

    rownum是Oracle为查询结果分配的有序编号(总是从1~n).言下之意,rownum字段本来并不存在于表中,而是经查询后才分配的. 举一个例子: SELECT rownum, name, pri ...

  4. Oracle基础 01 表空间 tablespace

    --查看表空间 select * from dba_tablespaces; select * from v$tablespace; select * from dba_data_files; --查 ...

  5. Oracle数据库01

    常用函数 COUNT(*):统计所有的数据量,没有过滤功能 COUNT(字段):统计出指定字段不为null的数据量,有过滤功能 COUNT(DISTINCT 字段):统计指定字段不为空并且去掉重复数据 ...

  6. Oracle案例01——ORA-09925: Unable to create audit trail file

    2018年春节后第一天上班就遇到一个审计日志无法写入的问题,具体解决思路如下. 一.错误日志 数据库错误日志内容: Fri Feb 23 11:16:30 2018OS Audit file coul ...

  7. oracle 汇编04

    General-Purpose Instructions The general-purpose instructions perform basic data movement, memory ad ...

  8. oracle汇编03

    .long expression1, expression2, ..., expressionNThe .long directive generates a long integer (32-bit ...

  9. Oracle 存储过程--01

    1.简单的例子 /* 1.求圆的面积 */ create or replace procedure proc_1 is pi constant number(9,7):=3.1415927; radi ...

随机推荐

  1. 分享页(把末尾的JS函数换成这个)

    function jsApiStart(obj) { wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以 ...

  2. VBA通过C#以API方式调用JS脚本函数

    http://www.cnblogs.com/Charltsing/p/JSDotNetAPI.html 在网页采集中,很多时候需要运行网站下载的某个js文件中的函数,以计算Request参数.VBA ...

  3. Web - <a>标签中href="javascript:;"

    javascript: 是一个伪协议,其他的伪协议还有 mail:  tel:  file:  等等. 1 <a id="jsPswEdit" class="set ...

  4. Visual Studio Code 折叠代码快捷键

    为了快速阅读不熟悉的代码, 最好可以打开一个文件能先将具体实现折叠起来的,进行一个大概的认识,vscode中有这些折叠快捷键: ctrl+shift+[是折叠 ctrl+k ctrl+0 是折叠全部 ...

  5. 几家大的券商的PB系统以及算法交易概况大致是怎样的?

    PB的定位是托管-清算-交易.目前的PB系统方面的竞争点主要放在了交易环节(毕竟托管和清算没有多大的差异).目前的pb交易环节的技术提供有恒生.讯投.金证.同花顺等,以满足私募及高净值个人多样化交易和 ...

  6. 【ABAP系列】SAP ABAP 实现FTP的文件上传与下载

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 实现FTP的文 ...

  7. 20191110 Spring Boot官方文档学习(4.2)

    4.2.外部化配置 Spring Boot使您可以外部化配置,以便可以在不同环境中使用相同的应用程序代码.您可以使用Properties文件,YAML文件,环境变量和命令行参数来外部化配置.属性值可以 ...

  8. supervisor启动elk7.4.0组件

    es [program:elasticsearch] command = /srv/app/elk/elasticsearch/bin/elasticsearch autostart = true s ...

  9. JAVA基础面向对象分析

    面向对象内存的分析: 一:内存的分类 1:栈(tack) 2:堆(heop) 3: 静态区 4:代码区 二:引用数据类型内存特点 三:引用数据类型传值的特点 四:引用数据类型在作为参数时的特点 面向对 ...

  10. 《剑指offer》面试题26 复杂链表的复制 Java版

    (定义一个新的数据结构,每个节点除了具有普通链表的next域外,还有一个额外的引用指向任意节点.我们要对由该特殊数据结构形成的链表进行复制.) 我的方法:也就是克隆一个这种特殊链表,很快想到先不考虑原 ...