C指针原理(2)-ATT汇编
.section .text
data:
.byte 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01#8字节
.globl main
main:
movl $0x12345678,%edx
bswap %edx#反转字符顺序 ,结果为0x87654321
movl %edx,%eax
movl $1,%ebx
xadd %ebx,%eax#交换%eax和%ebx的值,并相加,结果放在目标位置%eax
cmpxchg %edx,%ebx#如果目标操作数%ebx等于%eax、16位是ax,8位是al,则把源操作数%edx的值加载到%eax中、16位
#是ax,8位是al,如果不等,则把目标操作数%ebx加到源操作数%edx加载到%eax中、16位是ax,8位是almovl $2,%edx#高位
movl $3,%eax#低位
cmpxchg8b data#如果%edx:%eax组成的8字节值与目标值data匹配,则把%edx:%eax组成的8字节值传送到目标内存位置
#,否则将目标值data加载到%edx:%eax
pushad
popad
#pusha/popa 压入弹出所有16位通用寄存器
#pushad/popad 压入弹出所有32位通用寄存器
#pushf/popf 压入弹出EFLAGS寄存器的低16位
#pushf/popf 压入弹出EFLAGS寄存器的全部32位
AT&T汇编关于地址和取地址操作的示例代码如下:
.section .datamynum:.int 8mygs:.asciz "%x----%x----%x\n"
.section .text.globl mainmain:leal mynum,%eax #将mynum地址复制到%eax movl (%eax),%ebx#将%eax内地址所指内容复制到%ebxmovl mynum,%ecx#将mynum内容复制到%ecx中push %ecxpush %ebxpush %eaxpush $mygscall printfpush $0call exit乘法和除法操作如下:.section .data.section .text.globl mainmain:movl $2,%eaxmovl $5,%ebxmul %ebx#%eax*%ebx->%eax,无符号乘法movl $-2,%eaxmovl $5,%ebximul %ebx#%eax*%ebx->%eax,有符号乘法 #除法使用dev和idev(有符号)
C指针原理(2)-ATT汇编相关推荐
- C指针原理(4)-ATT汇编
首先我们先用汇编编写一个helloworld,注意我们直接在汇编代码中调用C语言的printf函数将"hello,world\n" 输出在屏幕上. .section .dataou ...
- C指针原理(3)-ATT汇编
Linux 平台的标准汇编器是 GAS,它是 GCC 所依赖的后台汇编工具,通常包含在 binutils 软件包中, –gstabs 告诉汇编器在生成的目标代码中加上符号表,我们首先完成汇编: as ...
- C指针原理(1)-ATT汇编
汇编在LINUX系统下的意义远远大于WINDOWS系统,LINUX内核部分代码就是汇编编写的.然后,绝大多数 Linux 程序员以前只接触过DOS/Windows 下的汇编语言,这些汇编代码都是 In ...
- C指针原理(5)-ATT汇编
.section .datamyvalue:.byte 67,68,69,70,0mygs:.asciz "%c\n".section .text .globl mainmain: ...
- 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语言中的变量来源与汇编的伪指令(微机和单片机中的作用稍微不同,但是规则机制相同)微机原理中的汇编指令和伪指令是标准的,单片机的指令和伪 ...
最新文章
- 第十六届全国大学生智能车竞赛组委会第三次扩大会议
- 网路游侠:日志审计系统与SOC的区别
- ssr面板_碧蓝航线:详解SSR里诺强不强 航母专用保姆 三流防空特化型轻巡
- 八十四、堆排序解决TopK问题
- Windows下编程需要看哪些书
- python猴子偷桃_Python实例100个(基于最新Python3.7版本)
- 李飞飞点赞!,刚刚公布了第一批数据集benchmark入围名单
- 《C++沉思录 第2版》
- 2016数据库考试题
- OpenCV : 仿射变换
- 宋宝华: 文件读写(BIO)波澜壮阔的一生
- android 打开公众号页面_解决「微信公众号」开发网页安卓端访问空白问题
- 二维灰度地形图山脊线自动提取方法整理(PPA)
- 给出一个用逗号分隔开的字符串。求各部分之和
- FigDraw 20. SCI文章中绘图之马赛克图 (mosaic)
- java农夫过河_C语言实现农夫过河代码及解析
- 换手机号都有哪些绑定信息需要更换?
- Java笔记——数据库05
- 会计本科转计算机,会计专业转行干设计工作,这些宝贵经验和感悟,对你有用(一)...
- postgresql 开启远程访问、postgre设置开机自启动、psql: error: FATAL: Peer authentication failed for user “postgres“
热门文章
- 关于@property()的那些属性及ARC简介【nonatomic,atomic,assign,retain,strong,weak,copy。】
- 通过IP地址查计算机名
- 不带参数的SQL语句执行方法
- 用Python实现一个大数据搜索引擎
- List的遍历 Java
- [iOS] UITextField隐藏软键盘心得(隐藏自身软键盘、点击Return自动转到下个文本框、轻触背景隐藏软键盘)...
- tomcat无法启动(JVM错误)
- Windows Vista Beta 1试用体会
- 刚体运动中变换矩阵的逆
- Meta分析如何进行敏感性分析