`
deepfuture
  • 浏览: 4340512 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:79510
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:68563
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:101699
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:281627
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:14651
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:65823
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:31400
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45307
社区版块
存档分类
最新评论

算法下午茶系列-重温汇编(4)[基址与变址]

 
阅读更多
.section .data
  myvalue:
     .byte 67,68,69,70,0
  mygs:
     .asciz "%c\n"
   
.section .text
.globl main
   main:
    #基地址(偏移地址[必须为寄存器],数据元素变址,数据元素长度[必须为寄存器],)
    #基地址+偏移地址+数据元素变址*数据元素长度
    movl $2,%ecx
    movl myvalue(,%ecx,1),%ebx #将myvalue的变址为2,长度为1的数据值移到ebx中
    push %ebx
    push $mygs    
    call printf
    push $0
    call exit
       
    
    

 这段代码将输出ASCII码为69的字符“E”

 

有2种方式,能以变址和基址结构的方式访问内存

1)基地址(偏移地址[必须为寄存器],数据元素变址,数据元素长度[必须为寄存器],)
2)基地址+偏移地址+数据元素变址*数据元素长度

 

上面代码采用了第1种方式:

movl $2,%ecx
movl myvalue(,%ecx,1),%ebx

 

myvalue这个变量的内容是:67,68,69,70,0
%ecx寄存器的值是数据元素变址,是2,数据元素长度是1

67所在内存地址加上变址2,就是myvalue的以1个字节为单位组成的5个元素中,第3个元素的位置

movl myvalue(,%ecx,1),%ebx 将第3个元素E的ASCII码放在ebx寄存器中,然后入栈,做为printf的参数

 

 

 

 如果转载请注明来源,如有错误之处,请及时指出。

 

分享到:
评论

相关推荐

    ARM指令的寻址方式-基址变址寻址.pdf

    ARM指令的寻址方式-基址变址寻址.pdf 学习资料 复习资料 教学资源

    汇编指令汇总

    在基址加变址寻址方式中,通常把BX和BP看作是基址寄存器,把SI和DI看作变址寄存器,可把两种方式组合起来形成一种新的寻址方式。基址加变址的寻址方式是把一个基址寄存器BX或BP的内容,加上变址寄存器SI或DI的内容,...

    动态地址的处理-找基址

    动态地址的处理-找基址动态地址的处理-找基址动态地址的处理-找基址动态地址的处理-找基址动态地址的处理-找基址

    汇编语言教程.chm

     4 汇编语言的主要特点  5 汇编语言的使用领域  1.2 数据的表示和类型  1 数值数据的表示  2 非数值数据的表示  3 基本的数据类型  1.3 习题 第2章 CPU资源和存储器  2.1 寄存器组  1 寄存器...

    寻址方式动画演示文件

    6-基址变址寻址的功能.swf 6-基址变址寻址的执行.swf 7-相对基址变址寻址的功能.swf 7-相对基址变址寻址的执行.swf 8-逻辑左移.swf 9-串传送 MOVSB .swf 10-串传送 MOVSW.swf 11-REP MOVSB .swf

    IBM-pc汇编语言试卷(B)

    一、单项选择题(每小题2分,共20分... 基址寻址 B. 寄存器间接寻址 C.变址寻址 D.直接寻址 3.若栈顶的物理地址为20100H,当执行完指令POP AX后,栈顶的物理地址为 ( )。 A. 20098H B. 20102H C. 200FEH D. 20100H

    易语言取模块基址

    易语言取模块基址源码,取模块基址,取进程模块,读模块基址,十六转十进制,十转十六进制,wvsprintf,StrToIntEx

    东大11秋汇编语言程序设计试题离线

    东大11秋汇编语言程序设计试题 ( A )1. 指令MOV AL,[BX+100]的源操作数的寻址方式为? A. 基址寻址 B. 寄存器间接寻址 C. 变址寻址 D.基址变址寻址 ( A )2.确定下列哪些数据在汇编语言中的表示是合法...

    C#游戏辅助制作教程-通用修改器源码-抓取内存基址

    C#游戏辅助制作教程-通用修改器源码-抓取内存基址,适合C#初学者,从培养兴趣爱好开始。。

    IBM-pc汇编语言试卷(A)

    基址寻址 B. 寄存器间接寻址 C.变址寻址 D.存储器直接寻址 2.在DEBUG工具中,单步执行指令的命令是( C )。 A. G B. D C. T D. R 3.若栈顶的物理地址为20100H,当执行完指令PUSH AX后,栈顶的物理地址为 ( c...

    易语言-植物大战僵尸基址易语言

    植物大战僵尸基址易语言源码中文汉化二版一级基址:0x006A9EC0阳光: +768 +5560金币: +82c +28冒险: +82c +24其他模式: +7f8 //16起 70结尾花肥 +82c +1f8杀虫剂+82c +1fc巧克力+82c +228树肥 +82c +230智慧树 +82c +...

    易语言-易语言取模块基址

    易语言取模块基址源码

    随手笔记-汇编语言概述-连载1

    1.寻址方式 1. 立即寻址方式 2. 寄存器寻址方式 3. 直接寻址方式 4. 寄存器间接寻址方式 5. 寄存器相对寻址方式 6. 基址加变址寻址方式 7.

    Sunday算法特征码搜索极速定位基址和call地址C++(支持通配符)

    Sunday算法特征码搜索极速定位基址和call地址C++(支持通配符),绝对可以用的特征码搜索基址,call的地址。上传备用。

    汇编语言考试

    期末汇编语言复习大全哦 1、80X86通用寄存储器各有不同特殊功能,其中CX寄存器特定用法是---不-------。 A、 I/O指令间接寻址中作地址寄存器 ------- DX寄存器 B、在循环指令作循环计数寄存器 ----------CX寄存器 C...

    汇编语言教程

     4 汇编语言的主要特点  5 汇编语言的使用领域  1.2 数据的表示和类型  1 数值数据的表示  2 非数值数据的表示  3 基本的数据类型  1.3 习题 第2章 CPU资源和存储器  2.1 寄存器组  1 寄存器组  2 ...

    汇编语言.chm 学习汇编语言入门

     4 汇编语言的主要特点  5 汇编语言的使用领域  1.2 数据的表示和类型  1 数值数据的表示  2 非数值数据的表示  3 基本的数据类型  1.3 习题 第2章 CPU资源和存储器  2.1 寄存器组  1 寄存器组  2 ...

    汇编语言教程-学习的极佳资料

     4 汇编语言的主要特点  5 汇编语言的使用领域  1.2 数据的表示和类型  1 数值数据的表示  2 非数值数据的表示  3 基本的数据类型  1.3 习题 第2章 CPU资源和存储器  2.1 寄存器组  1 寄存器组  2 ...

    汇编语言教程(AoGo汇编网站)

     4 汇编语言的主要特点  5 汇编语言的使用领域  1.2 数据的表示和类型  1 数值数据的表示  2 非数值数据的表示  3 基本的数据类型  1.3 习题 第2章 CPU资源和存储器  2.1 寄存器组  1 寄存器组  2 ...

    汇编教程 非常详细 说明的非常清楚 学汇编很好的教程

    汇编教程 非常详细 说明的非常清楚 学汇编很好的教程 课程介绍 第1章 预备知识  1.1 汇编语言的由来及其特点  1 机器语言  2 汇编语言  3 汇编程序  4 汇编语言的主要特点  5 汇编语言的使用领域  1.2 ...

Global site tag (gtag.js) - Google Analytics