在Mac上写汇编!(一)helloworld nasm on macos
参考和感谢:
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相关推荐
- MAC上写Verilog并编译仿真
安装Xcode 和 Developer Tools Appstore 安装Xcode 打开终端输入命令: xcode-select --install 安装包管理工具Homebrew Homebrew ...
- mac上Matlab怎么运行不了,解决macOS系统下matlab无法访问中文路径及中文乱码问题...
博主使用的matlab为2016a版本,首先通过feature('locale')命令,查看当前系统所用语言,如下图所示: 其中通过ctype: 'zh_CN.UTF-8'知道当前系统语言为" ...
- Mac上彻底卸载mysql
两天心血来潮,就想Mac上写PHP,但是需要配置环境,需要用到mysql,开始在网上下载了mysql的安装包,但是没看下面的安装教程,直接就是mysql-5.1.63-osx10.6-x86_64.p ...
- win7查看隐藏文件_在Mac上查看隐藏文件的四个方法
想要查看Mac上隐藏的文件吗?通常macOS会将重要文件隐藏起来,以防止它们被意外删除并因此而损坏系统.但是,在某些情况下,您可能需要在Mac上显示隐藏文件,例如,浏览Library文件夹并清除旧日志 ...
- 如何在Mac上查看隐藏文件,这四个方法百试不爽!
想要查看Mac上隐藏的文件吗?通常macOS会将重要文件隐藏起来,以防止它们被意外删除并因此而损坏系统.但是,在某些情况下,您可能需要在Mac上显示隐藏文件,例如,浏览Library文件夹并清除旧日志 ...
- mac catalina删除系统多余文件 内存不足_macOS Catalina Patcher(如何在旧mac上安装Catalina系统)...
macOS Catalina Patcher是一款macOS Catalina修补程序,可以在旧mac上安装最新的Catalina系统工具.macOS Catalina 10.15是Apple受欢迎的 ...
- 如何在Mac上关闭应用程序?
MAC系统没有任务栏,这对很多用户来说是一个很纠结的事,因为我们将一些应用程序的窗口关闭后,但是该应用程序却并未被关掉,而是在后头继续运行.那么怎么样才能将这些仍在运行的应用程序关闭呢?来看看吧! 在 ...
- 在mac上搭建了Java 环境,谨以此文写给自己
最近跳槽算空挡期吧,还是感觉这两年有点浮躁,总有想把自己归零一下,总结一下重新上路. 以前windows上搞过点java,自从入了iOS的坑,mac上还没搞过,现在借着面试facebook的准备时间, ...
- 在mac上用文本编辑器写python_Mac系统Python解释器、PyCharm编辑器安装及使用方法详解...
『环境配置』- 工欲善其事,必先利其器 视频讲解教程:[Mac系统Python开发环境配置教程详解(Python技术客栈)](https://www.bilibili.com/video/av8076 ...
最新文章
- windows服务器性能分析方法小结,Windows服务器性能分析方法小结
- A Quick Guide For Windows 2008 Server Core
- Win docker 桌面版报错error during connect: This error may indicate that the docker daemon is not running
- C#sql语句如何使用占位符
- JAVA知识积累 JSP第一篇【JSP介绍、工作原理、生命周期、语法、指令、行为】...
- mysql转sqlserver_mysql转sqlserver工具
- Percona XtraBackup热备份实践
- 【华为云技术分享】STM32L476移植华为LiteOS系列教程---Kconfig 6
- PL/SQL TOAD 不安装Oracle客户端连接数据库的方法
- oracle 结构化语言查询 DML DDL DCL
- 【生活相关】四(C++编程开发学习的50条建议)
- java import list_Java中的List集合
- JS学习之路系列总结五行阵(此文犹如武林之中的易筋经,是你驰骋IT界的武功心法,学会JS五大阵法就学会了JS,博主建议先学三才阵)...
- 如何搭建合理的BOM
- 【强化学习】Sarsa算法求解悬崖行走问题 + Python代码实战
- Zookeeper框架Curator使用
- telegram电报机器人配置
- 计算机专业二本可以考cfa,计算机专业备考CFA一年经验分享
- sim卡没坏但苹果手机无服务_手机突然显示无SIM卡?这样做就能恢复~
- js阻止默认事件(a标签跳转),阻止事件冒泡
热门文章
- 合并报表编制采用的理论_合并报表操作的整体思路梳理
- python中decode和encode的区别
- cppcheck编译安装命令
- CentOS6.3环境下openresty安装drizzle模块
- Fiddler+willow使用指南
- 斐波拉契数列python123_python计算机二级题目分类汇总
- iframe内容 固定比例_允知研习|浅析固定总价合同的结算问题
- armbian nginx 部署博客_从零开始搭建服务器之更加优雅地部署项目
- spark 简单实战_大数据入门与实战-Spark上手
- java中strictfp关键字,java strictfp关键字用法大全详解