.section .datamyvalue:.byte 67,68,69,70,0mygs:.asciz "%c\n".section .text
.globl mainmain:#基地址(偏移地址[必须为寄存器],数据元素变址,数据元素长度[必须为寄存器],)#基地址+偏移地址+数据元素变址*数据元素长度movl $2,%ecxmovl myvalue(,%ecx,1),%ebx #将myvalue的变址为2,长度为1的数据值移到ebx中push %ebxpush $mygs    call printfpush $0call 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的参数

C指针原理(5)-ATT汇编相关推荐

  1. C指针原理(4)-ATT汇编

    首先我们先用汇编编写一个helloworld,注意我们直接在汇编代码中调用C语言的printf函数将"hello,world\n" 输出在屏幕上. .section .dataou ...

  2. C指针原理(3)-ATT汇编

    Linux 平台的标准汇编器是 GAS,它是 GCC 所依赖的后台汇编工具,通常包含在 binutils 软件包中, –gstabs 告诉汇编器在生成的目标代码中加上符号表,我们首先完成汇编: as ...

  3. C指针原理(2)-ATT汇编

    .section .text data: .byte 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01#8字节 .globl main main: movl $0x123 ...

  4. C指针原理(1)-ATT汇编

    汇编在LINUX系统下的意义远远大于WINDOWS系统,LINUX内核部分代码就是汇编编写的.然后,绝大多数 Linux 程序员以前只接触过DOS/Windows 下的汇编语言,这些汇编代码都是 In ...

  5. C指针原理(44)-汇编基础

    AT&T汇编语语言中的数据段与数据类型 .data段定义的数据元素保留在内存中能够被指令读取和写入; .rodata段定义的数据元素只读: .data与.rodata段的数据类型: .asci ...

  6. Objective-C中,ARC下的 strong和weak指针原理解释

    Objective-C中,ARC下的 strong和weak指针原理解释 提示:本文中所说的"实例变量"即是"成员变量","局部变量"即是& ...

  7. iOS arc weak指针原理

    iOS arc weak指针原理 ARC 都帮我们做了什么? weak是什么? weak是怎么实现的? 1. weak原理简介 2. weak简单测试 3. weak原理分析 3.1 weak指针帮我 ...

  8. att格式汇编指令_关于ATT汇编

    ATT 汇编大体格式是: 指令 源操作数 目的操作数 ,比如将 10 移动到 eax 寄存器的写法: movl $10, %eax . 1.ATT 汇编的源操作数和目的操作数和 Intel 正好相反, ...

  9. C语言的变量和汇编中的伪指令,伪指令 尤其EQU DW DB(微机和单片机中的作用稍微不同,但是规则机制相同)微机原理中的汇编指令和伪指令是标准的,单片机的指令和伪指令是在微机标准版基础上修改的版

    微机原理中表明 变量用伪指令DW,DB 单片机中的伪指令EQU C语言中的变量来源与汇编的伪指令(微机和单片机中的作用稍微不同,但是规则机制相同)微机原理中的汇编指令和伪指令是标准的,单片机的指令和伪 ...

最新文章

  1. JQuery-学习笔记04【基础——JQuery基础案例】
  2. Linux下常用文本处理命令
  3. 开发小Tips-setValue
  4. activiti动态办理人_安全生产许可证办理相关问题
  5. jpa 多字段like_Spring Date jpa 多个like匹配查询基础问题?
  6. TCP连接的99号和110号错误
  7. Docker学习总结(55)——Google和Facebook为什么不用Docker?
  8. 阿里开发规范_字字珠玑,高级技术专家带你了解阿里的开发流程规范
  9. 访问被拒绝:“Interop.jmail”
  10. 结构化CSS设计思维
  11. 双人五子棋(C++游戏)游戏代码在最底下
  12. 如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲
  13. 全球消费精品消博会亮相!科蒂、资生堂、欧莱雅、奔富、保乐力加、红牛、雀巢、拜耳、澳佳宝都来了 | 美通社头条...
  14. 这表白代码让我虎躯一震!
  15. javascript开发简易画板
  16. ios input 无法自动聚焦拉起手机键盘
  17. 机器学习入门 - Google的机器学习速成课程
  18. Bluehost注册流程与问题
  19. 干货 | 网络安全等级保护安全建设整改的流程、方法
  20. 浙江工业大学计算机应用基础,本科教学-浙江工业大学计算机科学与技术.doc

热门文章

  1. Python当中的a += a 与 a = a + a 的区别,可变类型与不可变类型的数据类型,引用传参...
  2. unity导出工程导入到iOS原生工程中详细步骤
  3. varchar 保存英文中文区别。
  4. Sublime Text 2 代码片断
  5. VS2008文件操作出现问题
  6. STM32下载库资料
  7. PHP-7.1 源代码学习:字节码在 Zend 虚拟机中的解释执行 之 概述
  8. 各种好用的代码生成器
  9. MVC3.0 Razor实现Ajax数据分页
  10. 伊利诺伊香槟分校计算机科学,伊利诺伊大学香槟分校计算机科学与工程世界排名2019年最新排名第24(ARWU世界排名)...