参考和感谢:

https://blog.csdn.net/s793223706/article/details/82469971 教你在Mac上写汇编

https://stackoverflow.com/questions/14103624/how-to-compile-using-nasm-on-macosx 解决了执行ld指令时候的警告问题

其实想学学linux相关的,但是这一个月的经验告诉我,最好将事情一件一件干好,不能朝三暮四。否则一件事情都干不好。

mac上安装nasm(需要先安装brew)

brew install nasm

确认是否已经安装成功

#xushiyundeMBP:~ xushiyun$ nasm -v
NASM version 2.14.02 compiled on Dec 27 2018

编写helloworld(照着网上敲得,现在还是小白)

SECTION .text
global _mainkernel:syscallret_main:mov rax,0x2000004mov rdi,1mov rsi,msgmov rdx,lencall kernelmov rax,0x2000001mov rdi,0call kernel

汇编:

xushiyundeMBP:nasm xushiyun$ nasm -f macho64 -o helloworld.o helloworld.asm

连接:

ld -o helloworld -e _main helloworld.o -lSystem -macosx_version_min 10.8

这两个后缀(-lSystem 和 -maxosx_version_min 10.8)需要加上去,否则会报一下警告:

ld: warning: No version-min specified on command line
ld: dynamic main executables must link with libSystem.dylib for inferred architecture x86_64

执行:

./helloworld

执行结果:

xushiyundeMBP:nasm xushiyun$ ./helloworld
helloworld!

在Mac上写汇编!(一)helloworld nasm on macos相关推荐

  1. MAC上写Verilog并编译仿真

    安装Xcode 和 Developer Tools Appstore 安装Xcode 打开终端输入命令: xcode-select --install 安装包管理工具Homebrew Homebrew ...

  2. mac上Matlab怎么运行不了,解决macOS系统下matlab无法访问中文路径及中文乱码问题...

    博主使用的matlab为2016a版本,首先通过feature('locale')命令,查看当前系统所用语言,如下图所示: 其中通过ctype: 'zh_CN.UTF-8'知道当前系统语言为" ...

  3. Mac上彻底卸载mysql

    两天心血来潮,就想Mac上写PHP,但是需要配置环境,需要用到mysql,开始在网上下载了mysql的安装包,但是没看下面的安装教程,直接就是mysql-5.1.63-osx10.6-x86_64.p ...

  4. win7查看隐藏文件_在Mac上查看隐藏文件的四个方法

    想要查看Mac上隐藏的文件吗?通常macOS会将重要文件隐藏起来,以防止它们被意外删除并因此而损坏系统.但是,在某些情况下,您可能需要在Mac上显示隐藏文件,例如,浏览Library文件夹并清除旧日志 ...

  5. 如何在Mac上查看隐藏文件,这四个方法百试不爽!

    想要查看Mac上隐藏的文件吗?通常macOS会将重要文件隐藏起来,以防止它们被意外删除并因此而损坏系统.但是,在某些情况下,您可能需要在Mac上显示隐藏文件,例如,浏览Library文件夹并清除旧日志 ...

  6. mac catalina删除系统多余文件 内存不足_macOS Catalina Patcher(如何在旧mac上安装Catalina系统)...

    macOS Catalina Patcher是一款macOS Catalina修补程序,可以在旧mac上安装最新的Catalina系统工具.macOS Catalina 10.15是Apple受欢迎的 ...

  7. 如何在Mac上关闭应用程序?

    MAC系统没有任务栏,这对很多用户来说是一个很纠结的事,因为我们将一些应用程序的窗口关闭后,但是该应用程序却并未被关掉,而是在后头继续运行.那么怎么样才能将这些仍在运行的应用程序关闭呢?来看看吧! 在 ...

  8. 在mac上搭建了Java 环境,谨以此文写给自己

    最近跳槽算空挡期吧,还是感觉这两年有点浮躁,总有想把自己归零一下,总结一下重新上路. 以前windows上搞过点java,自从入了iOS的坑,mac上还没搞过,现在借着面试facebook的准备时间, ...

  9. 在mac上用文本编辑器写python_Mac系统Python解释器、PyCharm编辑器安装及使用方法详解...

    『环境配置』- 工欲善其事,必先利其器 视频讲解教程:[Mac系统Python开发环境配置教程详解(Python技术客栈)](https://www.bilibili.com/video/av8076 ...

最新文章

  1. windows服务器性能分析方法小结,Windows服务器性能分析方法小结
  2. A Quick Guide For Windows 2008 Server Core
  3. Win docker 桌面版报错error during connect: This error may indicate that the docker daemon is not running
  4. C#sql语句如何使用占位符
  5. JAVA知识积累 JSP第一篇【JSP介绍、工作原理、生命周期、语法、指令、行为】...
  6. mysql转sqlserver_mysql转sqlserver工具
  7. Percona XtraBackup热备份实践
  8. 【华为云技术分享】STM32L476移植华为LiteOS系列教程---Kconfig 6
  9. PL/SQL TOAD 不安装Oracle客户端连接数据库的方法
  10. oracle 结构化语言查询 DML DDL DCL
  11. 【生活相关】四(C++编程开发学习的50条建议)
  12. java import list_Java中的List集合
  13. JS学习之路系列总结五行阵(此文犹如武林之中的易筋经,是你驰骋IT界的武功心法,学会JS五大阵法就学会了JS,博主建议先学三才阵)...
  14. 如何搭建合理的BOM
  15. 【强化学习】Sarsa算法求解悬崖行走问题 + Python代码实战
  16. Zookeeper框架Curator使用
  17. telegram电报机器人配置
  18. 计算机专业二本可以考cfa,计算机专业备考CFA一年经验分享
  19. sim卡没坏但苹果手机无服务_手机突然显示无SIM卡?这样做就能恢复~
  20. js阻止默认事件(a标签跳转),阻止事件冒泡

热门文章

  1. 合并报表编制采用的理论_合并报表操作的整体思路梳理
  2. python中decode和encode的区别
  3. cppcheck编译安装命令
  4. CentOS6.3环境下openresty安装drizzle模块
  5. Fiddler+willow使用指南
  6. 斐波拉契数列python123_python计算机二级题目分类汇总
  7. iframe内容 固定比例_允知研习|浅析固定总价合同的结算问题
  8. armbian nginx 部署博客_从零开始搭建服务器之更加优雅地部署项目
  9. spark 简单实战_大数据入门与实战-Spark上手
  10. java中strictfp关键字,java strictfp关键字用法大全详解