张成岗(CZ)的博客世界分享 http://blog.sciencenet.cn/u/zcgweb 脑损伤与脑保护;神经认知;生物信息;蛋白质组;辐射损伤与防护

博文

[转载]内联汇编:指的是 在C语言中可以插入汇编语言

已有 1452 次阅读 2021-3-1 12:41 |系统分类:科研笔记|文章来源:转载

https://baike.baidu.com/item/%E5%86%85%E8%81%94%E6%B1%87%E7%BC%96/3183809


本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

内联汇编,指在C语言中插入汇编语言,其是Linux中使用的基本汇编程序语法。

  • 中文名

  • 内联汇编

  • 解    释

  • 在C语言中可以插入汇编语言

  • GNU 汇编简述

  • Linux 中使用的基本汇编程序语法

  • 寄存器命名

  • 寄存器名称有 % 前缀

  • 操作数大小

  • 字节 ,字 ,长型 。

  • 立即操作数

  • 通过使用 $ 指定直接操作数

目录

  1. 1 名词概念

  2. 2 汇编程序简述

  3.  寄存器命名

  4.  操作数的顺序

  5.  操作数大小

  6.  立即操作数

  7.  间接内存引用

  8. 3 内联汇编

名词概念

编辑

在C语言中可以插入汇编语言。

汇编程序简述

编辑

Linux 中使用的基本汇编程序语法。GCC(用于 Linux 的 GNU C 编译器)使用 AT&T 汇编语法。下面列出了这种语法的一些基本规则。

寄存器命名

寄存器名称有 % 前缀。即,如果必须使用 eax,它应该用作 %eax。

操作数的顺序

在所有指令中,先是源操作数,然后才是目的操作数。这与将源操作数放在目的操作数之后的 Intel 语法不同。

mov %eax, %ebx, transfers the contents of eax to ebx.

操作数大小

根据操作数是字节 (byte)、字 (word) 还是长型 (long),指令的后缀可以是 b、w 或 l。这并不是强制性的;GCC 会尝试通过读取操作数来提供相应的后缀。但手工指定后缀可以改善代码的可读性,并可以消除编译器猜测不正确的可能性。

movb %al, %bl -- Byte move movw %ax




https://blog.sciencenet.cn/blog-40692-1274392.html

上一篇:[转载]2021年度国家自然科学基金原创探索计划项目申请指南
下一篇:写在2021年新学期开始的话:努力推动生物医学领域创新科研的持续发展
收藏 IP: 124.207.31.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-5 08:14

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部