C指针原理(5)-ATT汇编
.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汇编相关推荐
- C指针原理(4)-ATT汇编
首先我们先用汇编编写一个helloworld,注意我们直接在汇编代码中调用C语言的printf函数将"hello,world\n" 输出在屏幕上. .section .dataou ...
- C指针原理(3)-ATT汇编
Linux 平台的标准汇编器是 GAS,它是 GCC 所依赖的后台汇编工具,通常包含在 binutils 软件包中, –gstabs 告诉汇编器在生成的目标代码中加上符号表,我们首先完成汇编: as ...
- C指针原理(2)-ATT汇编
.section .text data: .byte 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01#8字节 .globl main main: movl $0x123 ...
- C指针原理(1)-ATT汇编
汇编在LINUX系统下的意义远远大于WINDOWS系统,LINUX内核部分代码就是汇编编写的.然后,绝大多数 Linux 程序员以前只接触过DOS/Windows 下的汇编语言,这些汇编代码都是 In ...
- C指针原理(44)-汇编基础
AT&T汇编语语言中的数据段与数据类型 .data段定义的数据元素保留在内存中能够被指令读取和写入; .rodata段定义的数据元素只读: .data与.rodata段的数据类型: .asci ...
- Objective-C中,ARC下的 strong和weak指针原理解释
Objective-C中,ARC下的 strong和weak指针原理解释 提示:本文中所说的"实例变量"即是"成员变量","局部变量"即是& ...
- iOS arc weak指针原理
iOS arc weak指针原理 ARC 都帮我们做了什么? weak是什么? weak是怎么实现的? 1. weak原理简介 2. weak简单测试 3. weak原理分析 3.1 weak指针帮我 ...
- att格式汇编指令_关于ATT汇编
ATT 汇编大体格式是: 指令 源操作数 目的操作数 ,比如将 10 移动到 eax 寄存器的写法: movl $10, %eax . 1.ATT 汇编的源操作数和目的操作数和 Intel 正好相反, ...
- C语言的变量和汇编中的伪指令,伪指令 尤其EQU DW DB(微机和单片机中的作用稍微不同,但是规则机制相同)微机原理中的汇编指令和伪指令是标准的,单片机的指令和伪指令是在微机标准版基础上修改的版
微机原理中表明 变量用伪指令DW,DB 单片机中的伪指令EQU C语言中的变量来源与汇编的伪指令(微机和单片机中的作用稍微不同,但是规则机制相同)微机原理中的汇编指令和伪指令是标准的,单片机的指令和伪 ...
最新文章
- JQuery-学习笔记04【基础——JQuery基础案例】
- Linux下常用文本处理命令
- 开发小Tips-setValue
- activiti动态办理人_安全生产许可证办理相关问题
- jpa 多字段like_Spring Date jpa 多个like匹配查询基础问题?
- TCP连接的99号和110号错误
- Docker学习总结(55)——Google和Facebook为什么不用Docker?
- 阿里开发规范_字字珠玑,高级技术专家带你了解阿里的开发流程规范
- 访问被拒绝:“Interop.jmail”
- 结构化CSS设计思维
- 双人五子棋(C++游戏)游戏代码在最底下
- 如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲
- 全球消费精品消博会亮相!科蒂、资生堂、欧莱雅、奔富、保乐力加、红牛、雀巢、拜耳、澳佳宝都来了 | 美通社头条...
- 这表白代码让我虎躯一震!
- javascript开发简易画板
- ios input 无法自动聚焦拉起手机键盘
- 机器学习入门 - Google的机器学习速成课程
- Bluehost注册流程与问题
- 干货 | 网络安全等级保护安全建设整改的流程、方法
- 浙江工业大学计算机应用基础,本科教学-浙江工业大学计算机科学与技术.doc
热门文章
- Python当中的a += a 与 a = a + a 的区别,可变类型与不可变类型的数据类型,引用传参...
- unity导出工程导入到iOS原生工程中详细步骤
- varchar 保存英文中文区别。
- Sublime Text 2 代码片断
- VS2008文件操作出现问题
- STM32下载库资料
- PHP-7.1 源代码学习:字节码在 Zend 虚拟机中的解释执行 之 概述
- 各种好用的代码生成器
- MVC3.0 Razor实现Ajax数据分页
- 伊利诺伊香槟分校计算机科学,伊利诺伊大学香槟分校计算机科学与工程世界排名2019年最新排名第24(ARWU世界排名)...