首页 > 编程语言 >gcc 内联汇编简介

gcc 内联汇编简介

时间:2023-02-27 16:24:46浏览次数:38  
标签:汇编 gcc 简介 cr0 寄存器 内联 TODO uint32

 

 

在内联汇编中,标识寄存器的一个%变成了两个%

 

如图是内联汇编的模板

assembler template 是汇编代码

output operands TODO

input operands TODO

clobbers TODO

 

如图,这个内联汇编的含义是:

1. 把 cr0 寄存器的内容读入到变量 uint32_t cr0 中

2. 对变量 uint32_t cr0 进行一个或操作

3. 把变量 uint32_t cr0 的值写回到 cr0 寄存器中

下图是编译成汇编代码后的样子

 

volatile: 表示里面的汇编代码不会被优化,不需要调整顺序

%0: 用来表示第一个、没有特殊名字(比如 cr0)的寄存器,它将受到约束

r: 约束为,任意寄存器,即不限制gcc可以编译成的代码

 

 

上面这段内联汇编的含义是:

执行指令 int $0x80, 这是一个特权指令,需要指定 “参数” 和 “返回值”

“=a” (__res) 的意思是:把 int $0x80 指令的返回值(一般通过eax传递),写给 __res 变量    TODO: 感觉这里,已经 ebp 做的减法的减数有点不对劲

“0”(11)表示让 eax=11,作为第一个参数

"b" (arg1) 表示让 ebx = arg1,作为第二个参数

"c"(arg2) 表示让 ecx = arg2,作为第三个参数

"d" (arg3) ...

"S" ....

 

标签:汇编,gcc,简介,cr0,寄存器,内联,TODO,uint32
From: https://www.cnblogs.com/yinhuachen/p/17159997.html

相关文章

  • 1_1jQuery简介
    1.1 jQuery定义和特点为什么使用jQuery?使用原生JavaScript编码存在问题1选择器功能弱 2DOM操作繁琐之极3浏览器兼容性不好4动画功能弱jQuery的优点1强大的......
  • 【Linux】简介以及安装(一)
    目录 ​​1.前言​​​​1.1什么是Linux​​​​1.2为什么要学Linux​​​​1.3学完Linux能干什么​​​​2.Linux简介​​​​2.1主流操作系统​​​​2.2Linux发......
  • odoo 给form表单视图内联列表添加按钮
    实践环境Odoo14.0-20221212(CommunityEdition)代码实现模块文件组织结构说明:为了更好的表达本文主题,一些和主题无关的文件、代码已略去odoo14\custom\estate│_......
  • 一、Docker简介
    官方定义docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux、windows操作系统的机器上,也可以实现虚拟......
  • linux之gcc
    #################usr是unixsystemresource缩写,不是user缩写;  /lib,/usr/lib,/usr/local/lib的区别:/lib是内核级的;/usr/lib是系统级的;/usr/local/lib是用户级的......
  • Http 编码格式简介
    Http格式简介Http是用于在客户端和服务端之间进行通信的一种消息格式,一般由以下几个部分组成:起始行:这部分在Http响应中也被称为状态行,针对不同的Http类型,其中包......
  • Go从入门到精通——常见报错: C compiler "gcc" not found: exec: "gcc": executable f
    常见报错:Ccompiler"gcc"notfound:exec:"gcc":executablefilenotfoundin%PATH%一、背景操作系统:windows10专业版Go版本:goversiongo1.19.4windows/a......
  • Java负载均衡简介及快速入门并实战(有源码)
    Java负载均衡是什么?将负载(工作任务,访问请求)进行分摊到多个操作单元(服务器,组件)上执行服务端:服务提供端,比如nginx负载均衡客户端:服务请求方,在发送请求之前已经选好了由哪个......
  • Java排序算法简介
    一、Java排序算法什么是排序算法排序算法是一种计算机算法,用于将一组数据按特定顺序排列。它们可以根据一个或多个关键字对数据进行排序,以便更容易查找和比较。常见的......
  • 【macOS】xattr命令简介
    ✨扩展文件属性扩展文件属性是文件系统功能,使用户能够将计算机文件与文件系统不解释的元数据相关联,而常规属性具有由文件系统严格定义的目的(例如权限或创建和修改时间的记......