前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >教你在Mac上写汇编!

教你在Mac上写汇编!

作者头像
sean_yang
发布于 2018-10-10 02:58:14
发布于 2018-10-10 02:58:14
1.4K00
代码可运行
举报
文章被收录于专栏:Sorrower的专栏Sorrower的专栏
运行总次数:0
代码可运行

更新nasm

mac自带了nasm, 但是, 但是, 但是, 老得一塌糊涂.

apple版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
brew install nasm

安装完之后重启.

最新版本


撰写编译运行

之后就是和写c差不多了. 但是, 我们要讲究一些, 写个32, 写个64, 好吧.

  • 64:

64

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nasm -f macho64 -o helloworld.o helloworld.asm
ld -o helloworld -e _main helloworld.o
./helloworld

运行

  • 32:

32

运行


最后

我汇编很佛系的, 最近也是要开始认真学了. 喜欢记得点赞哦, 有意见或者建议评论区~

参考文章: http://gaoryrt.com/2015/11-18-assembly/ https://blog.csdn.net/u011987514/article/details/72615406

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.09.06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
运行第一个汇编程序
前面我们了解了计算机底层的一些知识,比如计算机体系机构、操作系统、数据库、以及网络的基础知识,今天我们来研究一下计算机底层的语言,相信有了基础知识的铺垫,对于后期的编程学习会有莫大的帮助。
希里安
2023/10/30
2570
运行第一个汇编程序
如何进行Linux平台共享库替换
*本文原创作者:gaearrow,本文属FreeBuf原创奖励计划,未经许可禁止转载 。 共享库基础知识 程序由源代码变成可执行文件,一般可以分解为四个步骤,分别是预处理(Prepressing)、编译(Compilation)、汇编(Assembly)和链接(Linking)。 预处理过程主要处理源代码中以“#”开始的预编译指令;编译过程把预处理完成的文件进行词法、语法、语义等分析并产生相应的汇编代码文件;汇编过程将汇编代码文件翻译成机器可以执行的目标文件;链接过程将汇编生成的目标文件集合相连接并生成
FB客服
2018/02/09
3K0
如何进行Linux平台共享库替换
只有170字节,最小的64位Hello World程序这样写成
机器之心转载 作者:CJ Ting 最简单的 C 语言 Hello World 程序,底层到底发生了什么?如何编写出最小的 64 位 Hello World 程序? Hello World 应该是每一位程序员的启蒙程序,出自于 Brian Kernighan 和 Dennis Ritchie 的一代经典著作 The C Programming Language。 // hello.c#include <stdio.h>int main() { printf("hello, world\n"
机器之心
2023/03/29
5370
只有170字节,最小的64位Hello World程序这样写成
深入iOS系统底层之程序中的汇编代码
合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。--(老子·道德经 )
欧阳大哥2013
2019/03/06
1.7K0
深入iOS系统底层之程序中的汇编代码
汇编寄存器的规则
在本章中,您将了解到 CPU 使用的寄存器,并研究和修改传入函数的参数。您还将了解常见的苹果计算机架构,以及如何在函数中使用它们的寄存器。这就是所谓的架构调用约定。
molier
2022/11/03
2.6K0
汇编寄存器的规则
移动端arm cpu优化学习笔记第4弹--内联汇编入门
本文主要内容是介绍ARMv7和v8内联汇编的一些基础知识,并且会结合两个具体例子去看下如何用内联汇编来改写原来的代码。
Ldpe2G
2020/05/31
3.1K0
Apple 操作系统可执行文件 Mach-O
Mach-O 的全称是 Mach Object File Format。可以是可执行文件,目标代码或共享库,动态库。Mach 内核的操作系统比如 macOS,iPadOS 和 iOS 都是用的 Mach-O。Mach-O 包含程序的核心逻辑,以及入口点主要功能。
用户7451029
2020/06/16
3K0
FFMPEG 配置选项详细说明
使用以下任何一个开关将允许FFmpeg链接到 相应的外部库。所有组件都依赖于该库 如果所有其他依赖项都得到满足而未满足,则将启用 明确禁用。例如。 –enable-libwavpack将启用链接 libwavpack并允许构建libwavpack编码器,除非它是 使用–disable-encoder = libwavpack专门禁用。
程序手艺人
2019/02/21
5.3K0
栈溢出漏洞的利用和缓解
一直有人说这个时代做渗透太难了, 各个平台都开始重视安全性, 不像十几年前, 随便有个栈溢出就能轻松利用. 现在的环境对于新手而言确实不算友好, 上来就需要 面临着各种边界保护, 堆栈保护, 地址布局
evilpan
2023/02/12
1.3K0
技术解码 | 内存问题的分析与定位
本期的技术解码,为您解析 编程中,内存问题的分析与定位方法 对编程语言设计来说,内存管理分为两大类:手动内存管理(manual memory management) 和垃圾回收(garbage collection). 常见的如C、C++使用手动内存管理,Java使用垃圾回收。本文主要关注手动内存管理。 GC GC使内存管理自动化,缺点是引入了GC时不可预测的暂停(unpredictable stall),对实时性要求高的场景不适用。现代的GC实现一直朝着减小“stop-the-world"影
腾讯云音视频
2021/04/29
4.5K0
深入剖析 iOS 编译 Clang / LLVM
2000年,伊利诺伊大学厄巴纳-香槟分校(University of Illinois at Urbana-Champaign 简称UIUC)这所享有世界声望的一流公立研究型大学的 Chris Lattner(他的 twitter @clattner_llvm ) 开发了一个叫作 Low Level Virtual Machine 的编译器开发工具套件,后来涉及范围越来越大,可以用于常规编译器,JIT编译器,汇编器,调试器,静态分析工具等一系列跟编程语言相关的工作,于是就把简称 LLVM 这个简称作为了正式的名字。Chris Lattner 后来又开发了 Clang,使得 LLVM 直接挑战 GCC 的地位。2012年,LLVM 获得美国计算机学会 ACM 的软件系统大奖,和 UNIX,WWW,TCP/IP,Tex,JAVA 等齐名。
用户7451029
2020/06/16
8K0
深入剖析 iOS 编译 Clang / LLVM
Mac OS X 背后的故事(下)
Mac OS X 背后的故事(九)半导体的丰收 半导体的丰收(上)   在美国宾夕法尼亚州的东部,有一个风景秀美的城市叫费城。在这个城市诞生了一系列改变世界的奇迹:第一个三权分立的国家——美立坚合众国,就在第五街的路口诞生;举世闻名的费城交响乐团,1900年在市中心的 Academy of Music 奏响了他们的第一个音符。而写这篇文章时,我正坐在三十四街的宾夕法尼亚大学计算机系的一楼实验室,面前摆放着世界上第一台电子计算机——ENIAC。   1946年 2 月 14 日,ENIAC 问世,每秒可运行
康怀帅
2018/02/28
2.3K0
将 Linux 移植到 M1 Mac 真的太难了!
【CSDN 编者按】自去年苹果自研 M1 芯片发布之后,激发了无数用户的体验热情,与此同时,也吸引大批开发者在 M1 上开启探索模式。其中,国外一位资深操作系统移植专家 Hector Martin 发起了一项名为「Asahi Linux」项目,通过众筹的方式为苹果 M1 系列新机移植 Linux 系统。
AI科技大本营
2021/04/21
3.1K0
将 Linux 移植到 M1 Mac 真的太难了!
​浅谈协程
作者:kylinkzhang,腾讯 CSIG 后台开发工程师 什么是协程 我们可以简单的认为:协程就是用户态的线程,但是上下文切换的时机是靠调用方(写代码的开发人员)自身去控制的。 同时,协程和用户态线程非常接近,用户态线程之间的切换不需要陷入内核,但部分操作系统中用户态线程的切换需要内核态线程的辅助。 下面是一个简单的例子: void A() {    cout << 1 << " ";    cout << 2 << " ";    cout << 3 << " "; } void B() {    
腾讯技术工程官方号
2022/07/01
2K0
​浅谈协程
.NET面试题系列[1] - .NET框架基础知识(1)
面试出现频率:从来没人问过。事实上我都不知道怎么问,考背书吗?倒是可以问问知不知道现在.NET最新版本是什么,考察面试者是否对新技术足够敏感。
s055523
2018/09/14
1.7K0
.NET面试题系列[1] - .NET框架基础知识(1)
Mac OS X 背后的故事(上)
作者:王越 来源:《程序员》 作者王越,美国宾夕法尼亚大学计算机系研究生,中国著名 TeX 开发者,非著名 OpenFOAM 开发者。 Mac OS X 背后的故事(一)力挽狂澜的Ellen Hancock Mac OS X 背后的故事(二)Linus Torvalds的短视 Mac OS X 背后的故事(三)Mach之父Avie Tevanian Mac OS X 背后的故事(四)政客的跨界 Mac OS X 背后的故事(五)Jean-Marie Hullot的Interface Builder神话 Ma
康怀帅
2018/02/28
3.1K0
【为中国芯生态万字投书马化腾】从Intel和ARM争霸战,看看做芯片有多难
---- 新智元专栏 作者:torvaldsing 【新智元导读】为什么中国做了30年芯片都没有出现英特尔、ARM这样的巨头?关键在于国产CPU缺少强大的生态系统。有着十余年芯片行业经验的torvaldsing投书新智元,把x86生态系统和ARM生态系统的艰难发展历程和残酷的市场竞争大起底。最后呼吁马化腾:请借助腾讯的强大生态,把CPU和OS这两个老大难问题给OTT掉! 这几天中兴事件持续发酵以来,各种议论纷纷扰扰。 上周,新智元推送了《中国芯“逃兵”:缺芯是因为缺钱;中国芯“老炮”:芯片救国靠BA
新智元
2018/05/29
1.4K0
各种编程语言的优缺点
文章转载自伯乐在线 原文地址:http://blog.jobbole.com/18587/ 【译注】:圣经记载:在远古的时候,人类都使用一种语言,全世界的人决定一起造一座通天的塔,就是巴别塔,后来被上帝知道了,上帝就让人们使用不同的语言,这个塔就没能造起来。 巴别塔不建自毁,与其说上帝的分化将人类的语言复杂化,不如说是人类自身心灵和谐不再的分崩离析。之所以后来有了翻译,不仅是为了加强人类之间的交流,更寄达了一种愿望,希望能以此消除人际的隔阂,获求来自心灵的和谐及慰藉。真正的译者,把握血脉,抚平创痕,通传
智能算法
2018/04/02
4.4K1
各种编程语言的优缺点
MIT 6.S081 学习记录(1)
记录一下 MIT 6.S081 的学习过程。主要是写 Lab 的经历吧,知识相关的笔记就不写了。
Clouder0
2023/02/03
7080
☀️全网唯一万字长文讲解Nginx安装运营维护☀️《❤️记得收藏❤️》
@[TOC](☀️全网唯万字长文讲解Nginx安装运营维护☀️《❤️记得❤️收藏》) #目录 # <table><tr><td bgcolor=#29b6f6>😊开讲啦!!!!🏳️‍🌈</td></tr></table> ![插入插入图片描述](https://img-blog.csdnimg.cn/1cc3ea6947a448b1b4c704be8743b7b9.gif#pic_center) ##🏳️‍🌈1、前言 ![在这里插入图片描述(https://img-blog.csdnimg.cn/a
苏州程序大白
2021/08/17
7110
☀️全网唯一万字长文讲解Nginx安装运营维护☀️《❤️记得收藏❤️》
相关推荐
运行第一个汇编程序
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文