.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汇编相关推荐

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

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

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

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

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

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

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

    .section .datamyvalue:.byte 67,68,69,70,0mygs:.asciz "%c\n".section .text .globl mainmain: ...

  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. 第十六届全国大学生智能车竞赛组委会第三次扩大会议
  2. 网路游侠:日志审计系统与SOC的区别
  3. ssr面板_碧蓝航线:详解SSR里诺强不强 航母专用保姆 三流防空特化型轻巡
  4. 八十四、堆排序解决TopK问题
  5. Windows下编程需要看哪些书
  6. python猴子偷桃_Python实例100个(基于最新Python3.7版本)
  7. 李飞飞点赞!,刚刚公布了第一批数据集benchmark入围名单
  8. 《C++沉思录 第2版》
  9. 2016数据库考试题
  10. OpenCV : 仿射变换
  11. 宋宝华: 文件读写(BIO)波澜壮阔的一生
  12. android 打开公众号页面_解决「微信公众号」开发网页安卓端访问空白问题
  13. 二维灰度地形图山脊线自动提取方法整理(PPA)
  14. 给出一个用逗号分隔开的字符串。求各部分之和
  15. FigDraw 20. SCI文章中绘图之马赛克图 (mosaic)
  16. java农夫过河_C语言实现农夫过河代码及解析
  17. 换手机号都有哪些绑定信息需要更换?
  18. Java笔记——数据库05
  19. 会计本科转计算机,会计专业转行干设计工作,这些宝贵经验和感悟,对你有用(一)...
  20. postgresql 开启远程访问、postgre设置开机自启动、psql: error: FATAL: Peer authentication failed for user “postgres“

热门文章

  1. 关于@property()的那些属性及ARC简介【nonatomic,atomic,assign,retain,strong,weak,copy。】
  2. 通过IP地址查计算机名
  3. 不带参数的SQL语句执行方法
  4. 用Python实现一个大数据搜索引擎
  5. List的遍历 Java
  6. [iOS] UITextField隐藏软键盘心得(隐藏自身软键盘、点击Return自动转到下个文本框、轻触背景隐藏软键盘)...
  7. tomcat无法启动(JVM错误)
  8. Windows Vista Beta 1试用体会
  9. 刚体运动中变换矩阵的逆
  10. Meta分析如何进行敏感性分析