Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >同一功能程序在汇编语言和C语言下的不同实现方式

同一功能程序在汇编语言和C语言下的不同实现方式

作者头像
Elapse
发布于 2020-08-17 03:40:52
发布于 2020-08-17 03:40:52
8000
举报
文章被收录于专栏:E条咸鱼E条咸鱼

本篇原创作者:Rj45

同一功能的程序,用汇编语言实现和用C语言实现,两者有什么不同形式?

程序

编写一个shell功能程序。

C语言实现

代码:

编译执行:

汇编语言实现

代码:

编译执行:

注意:该程序涉及到了栈与寄存器传参知识点,后续进行讲解。

比较

从实现来看,C语言编写的程序是通过库函数实现shell功能;而对于汇编语言编写的程序,其是通过系统调用来实现shell功能的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 E条咸鱼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
从一个简单的汇编程序学习linux下的系统调用机制
上节 从一个简单的汇编程序学习汇编程序的结构以及编译链接的过程中,打印hello world的汇编程序的详细解释为:
Elapse
2020/08/17
8920
深入理解计算机系统(3.1)------汇编语言和机器语言
IT可乐
2018/01/04
2.1K0
深入理解计算机系统(3.1)------汇编语言和机器语言
深入iOS系统底层之汇编语言
要想完全的了解一个系统唯一的方法就是去阅读这个系统的源代码实现!这个原则对于一个iOS程序员也是如此。很幸运的是我们现在处于一个开源代码迸发的美好时代(这里要感谢理查·马修·斯托曼以及他的GNU计划),很多优秀的库都以源代码的形式呈现给大家,甚至连iOS这种封闭的系统也迫于某种压力开放了部分源代码(虽然开放的部分并不一定和真实的相同),这也已经足以给了我们很多热情去窥探其内部的一些实现机制。目前网络上也有非常多的基于苹果的开源而介绍OC2.0的runtime原理以及runloop实现机制以及类的+load方法执行时机等等方面的文章。
欧阳大哥2013
2018/08/22
7920
深入iOS系统底层之汇编语言
Go:了解和集成使用 Plan 9 汇编语言
Go允许开发者直接使用汇编语言编写代码集成到go语言程序中。这是一种非常强大的功能,因为它可以让开发者优化代码,直接控制硬件层面的操作。今天我们将一起学习和使用go汇编语言Plan 9,并通过一个简单的例子来展示它的用法。go tool asm 是 Go 语言对外提供的一个汇编器工具,它可以用于调试go汇编代码。
运维开发王义杰
2024/05/10
6090
Go:了解和集成使用 Plan 9 汇编语言
计算机底层知识之汇编语言
在前面的文章中我们多次提到,计算机CPU能直接解释运行的只有「本地代码」(机器语言)程序。用C语言等编写的源代码,需要通过各自的「编译器」编译后,转换成本地代码。
前端柒八九
2022/12/19
4410
计算机底层知识之汇编语言
从一个简单的汇编程序学习汇编程序的结构以及编译链接的过程
由于大部分的pwn都是在Linux平台下的,故下面所涉及到的汇编都是在Linux平台下的汇编。
Elapse
2020/08/17
1.7K0
程序员需要了解的硬核知识之汇编语言(全)
之前的系列文章从 CPU 和内存方面简单介绍了一下汇编语言,但是还没有系统的了解一下汇编语言,汇编语言作为第二代计算机语言,会用一些容易理解和记忆的字母,单词来代替一个特定的指令,作为高级编程语言的基础,有必要系统的了解一下汇编语言,那么本篇文章希望大家跟我一起来了解一下汇编语言。
cxuan
2019/12/05
9880
程序员需要了解的硬核知识之汇编语言(一)
之前的系列文章从 CPU 和内存方面简单介绍了一下汇编语言,但是还没有系统的了解一下汇编语言,汇编语言作为第二代计算机语言,会用一些容易理解和记忆的字母,单词来代替一个特定的指令,作为高级编程语言的基础,有必要系统的了解一下汇编语言,那么本篇文章希望大家跟我一起来了解一下汇编语言。
cxuan
2019/12/02
6620
汇编语言的不同
汇编语言是一种低级编程语言,与计算机硬件直接相关。相比其他高级编程语言,如Java、Python或C++,汇编语言在语法、规则和表达方式上有着显著的不同。下面我们将探讨汇编语言与其他语言的不同以及汇编语言的作用,并给出一些汇编语言的示例。
为了伟大的房产事业
2024/03/15
2080
汇编语言设计程序篇-03
如果不明确指定,那么[0]就表示ds:[0],如果明确指定了,像上面es:[bx],那对应的段地址就默认按照es寄存器中的值为准
大忽悠爱学习
2022/06/19
6610
汇编语言设计程序篇-03
ret指令与call指令的深入理解
其中ret指令用栈中的数据,修改IP的内容,实现近转移。而call指令将IP或者CS和IP压入栈中,实现转移。还有retf指令,用栈中的数据,修改CS和IP的内容,实现远转移。
Elapse
2020/08/17
4.9K0
由一个简单的程序学习常见汇编指令
一直以来,内心有股焦急焦虑,急冲冲的学习,急冲冲的比赛,没有时间和心思回过头来静心总结。突然之间想安静下来回顾和记录一下pwn的知识点 其实是写web有点累了,想切换一下脑壳,看心情更新吧
Elapse
2020/08/17
8560
5.1 汇编语言:汇编语言概述
汇编语言是一种面向机器的低级语言,用于编写计算机程序。汇编语言与计算机机器语言非常接近,汇编语言程序可以使用符号、助记符等来代替机器语言的二进制码,但最终会被汇编器编译成计算机可执行的机器码。
王瑞MVP
2023/08/22
5340
Win32 Linux汇编语法区别
一、简介 作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿 Linux 内核来讲,虽然绝大部分代码是用 C 语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在 Linux 的启动部分。由于这部分代码与硬件的关系非常密切,即使是 C 语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件的性能。
ke1th
2019/05/26
2.6K0
深入iOS系统底层之程序中的汇编代码
合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。--(老子·道德经 )
欧阳大哥2013
2019/03/06
1.8K0
深入iOS系统底层之程序中的汇编代码
汇编语言_汇编语言程序
开头和结尾的两句代表伪指令 只有编译器可以读懂 汇编指令可以被翻译为机器码最终被cpu执行 汇编程序 就是包含汇编指令和伪指令的文本 mov ax,4c00h int 21h 跟C语言程序的return 0一样 返回控制权 一个汇编程序是由多个段组成的 这些段被用作各种空间来使用 一个有意义的汇编程序至少需要一个段 且每个段都需要段名 段名 segment--段的开始 段名 ends--段的结束 assume假设 含义是假设某一段寄存器和程序中我们定义的段名关联起来 可以理解为和变量的引用一个意思
用户7272142
2023/11/14
3450
汇编语言_汇编语言程序
PTX与汇编语言
总之,尽管汇编语言和PTX都属于低级编程语言,但它们在指令架构、并行编程支持、指令集与优化方式以及可移植性与灵活性方面存在显著差异。汇编语言更倾向于传统的单线程或多任务环境中的硬件控制,而PTX则专为GPU的并行计算架构设计,能够高效地管理大量线程并充分利用GPU的并行计算能力。这两种语言适用于不同的使用场景,在各自的领域发挥着重要作用。
jack.yang
2025/04/05
990
as - 汇编语言编译器
as是一款常用的汇编语言编译器,在软件开发和系统编程等领域应用广泛,以下是关于它的详细介绍:
是山河呀
2025/02/02
1170
嵌入式开发为什么不选择汇编、Java而是C语言呢?
对于现在我们从事嵌入式开发的人员来说,C语言好像是必备的技能,也是最常见的开发语言.
李肖遥
2020/06/24
2.2K0
AT&T汇编语言与GCC内嵌汇编简介
1 AT&T 与INTEL的汇编语言语法的区别 1.1大小写 1.2操作数赋值方向 1.3前缀 1.4间接寻址语法 1.5后缀 1.6指令
Java架构师必看
2021/03/22
2.2K0
相关推荐
从一个简单的汇编程序学习linux下的系统调用机制
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档