如何在MacOS上玩儿汇编?

2023-11-04

在Mac上写汇编还是相当方便的。本文通过写一个Helloworld程序来入门。


首先,MacOS 自带nasm,只是版本有点老,编译不了64位程序,只要上官网下一个最新的,替换一下就行了。

有一点需要注意的是mac上gcc编译.o文件的默认入口是_main,而使用ld命令的时候默认的事start.


下面创建helloworld.asm文件:

SECTION .data
   
msg: db "hello world!", 0x0a
len: equ $-msg
  
SECTION .text
global _main
  
kernel:
     syscall
     ret
 
_main:
     mov rax,0x2000004
     mov rdi,1
     mov rsi,msg
     mov rdx,len
     call kernel
  
     mov rax,0x2000001
     mov rdi,0
     call kernel


在终端运行以下语句


nasm -f macho64 -o helloworld.o helloworld.asm
ld -o helloworld -e _main helloworld.o
./helloworld


显示hello world! 就是成功了!


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在MacOS上玩儿汇编? 的相关文章

  • asm:常用语法

    常用语法 1 循环 1 1 使用条件跳转指令实现循环 1 2 使用LOOP指令实现循环 2 字符串 2 1 指定字符串的长度 2 2 字符串指令 2 3 重复前缀 3 数组 4 递归 5 宏 6 文件操作 7 内存管理 1 循环 1 1 使
  • Mac使用Python接入东方财富量化接口Choice,调试与获取数据

    这篇博客用来把在Mac平台上使用python接入东方财富Choice接口的流程细化并重写 官方文档有些地方说的太含糊了 有的地方博主尝试了多种方法才试出来 这里直接把标准答案给到大家 尽量避坑吧 吐槽 同花顺科技感很足 赞 但是没有Mac版
  • Mac使用工具tree,打印项目目录树到Markdown

    主要使用tree这个工具 安装方法 brew install tree 使用方法是 tree 参数 目录 常用方法 显示当前目录及子目录结构 tree 只显示目录 不显示文件 tree d 保存打印的结果到文件 tree gt my pro
  • mac .ssh文件位置

    1 Finder gt 前往文件夹 gt 输入 ssh 2 打开终端 输入cd ssh cd ssh
  • 执行pod setup 报错error: RPC failed; curl 18 transfer closed with outstanding read data remainin

    执行pod setup 报错 error RPC failed curl 18 transfer closed with outstanding read data remaining fatal the remote end hung u
  • 8259初始化命令字(ICW1-ICW4)

    8259A的中断操作功能很强 包括中断的请求 屏蔽 排队 结束 级联以及提供中断类型号和查询等操作 并且其操作的方式又有不同 它既能实现向量中断 又能进行中断查询 它可以用于16位机 也可用于8位机 因此 使用起来感到复杂且不好掌握 为此
  • MAC DOCKER无法ping通容器解决方案

    原因 解决方案 原因 先来看下LINUX的docker架构 docker是在linux内核容器基础上实现的 linux安装docker后 会创建一个为docker0的虚拟网卡 linux宿机与docker容器之间的通信 通过docker0虚
  • mac charles4.0.2免费破解版安装

    mac charles4 0 2免费破解版安装 按相关步骤即可成功安装并使用 1 下载安装charles https www jianshu com p 4f0573f3c5db 2 安装成功之后相关配置 https www jianshu
  • apple资讯

    6 月 10 日消息 macOS 12 Monterey 支持通过 AirPlay 将内容发送到第二台 Mac 上 用户还可以使用该功能进行屏幕镜像 将一台备用机器变成一个外部显示器 除了使用 AirPlay 无线方式外 macOS 12
  • 【亲测】Parallels Desktop 16 / 17在MacOs Big Sur / Monterey下网络初始化失败:您的虚拟机将继续正常运作 解决办法

    场景 Mac升级Big Sur Monterey后 然后再升级Parallels Desktop到16 17版本后 Parallels Desktop开启windows或者其他虚拟机就出现 网络初始化失败 您的虚拟机将继续正常运作 解决办法
  • 在Mac上安装MongoDB

    1 访问MongoDB官方下载地址 http www mongodb org downloads 2 解压文件mongodb osx ssl x86 64 4 0 9 tgz 解压之后会变成mongodb osx x86 64 4 0 9文
  • ads+jlink和keil+jlink调试环境配置

    ads1 2 and jlinkv8 1 安装ads1 2和jlink驱动Setup JLinkARM V408i exe 安装ads1 2时 最后在100 时如果持续时间长 耐心等一下吧 没有等待而点了cancel 则之后就不好重装了 解
  • x86寄存器

    通用寄存器 GPR寄存器 AX Accumulator 累加寄存器 也叫累加器 BX Base 基地址寄存器 CX Count 计数器寄存器 DX Data 数据寄存器 指针寄存器 SP Stack Pointer 堆栈指针寄存器 BP B
  • 使用Mac的十大最好用神器

    资深 Mac 用户 提升效率的 10 大神器 谢志鹏 大家好 我是曹将的徒弟 Pem 最近刚结束悉尼大学研究生的学习 是一枚正在求职的交互设计师 我是从 2015 年开始使用 Mac 的 如果用一句话来形容 Mac 的使用感受 那就是 令人
  • Obsidian 入门使用手册

    文章目录 一 Obsidian 入门 1 1 什么是 Obsidian 1 2 安装 Obsidian 二 Obsidian 配置 2 1 创建第一个笔记 2 2 设置界面语言使用中文 2 3 主题 三 小结 一 Obsidian 入门 1
  • 9.用python写网络爬虫,完结

    前言 这是python网络爬虫的最后一篇给大家做个总结 且看且珍惜把 截止到目前 前几章本书介绍的爬虫技术都应用于一个定制网站 这样可以帮助我们更加专注于学习特定技巧 而在本章中 我们将分析几个真实网站 来看看这些技巧是如何应用的 首先我们
  • 汇编语言(第三版)读书笔记 2 - 第2章 寄存器

    第2章 寄存器 前一章所说的总线 相对于CPU内部来说是外部总线 内部总线实现了CPU内部各个器件 运算器 控制器 寄存器 之间的联系 外部总线实现了CPU和主板上其他器件的联系 不同的CPU 寄存器的个数 结构是不相同的 8086 CPU
  • 使用brew services管理服务

    原文 https www jianshu com p 6c3b26490861 简介 官网 https github com Homebrew homebrew services macOS使用launchctl命令加载开机自动运行的服务
  • 探索创意无限的Photoshop CC 2020Mac/Win版

    作为一款功能强大的图像处理软件 Photoshop CC 2020 简称PS 2020 在全球范围内备受设计师 摄影师和艺术家的喜爱和推崇 它不仅为用户提供了丰富多样的工具和功能 还不断推出新的创意特效和改进的功能 让用户的创意无限延展 首
  • 用Sketch for Mac轻松创作无限可能的矢量绘图

    在如今的数码时代 矢量绘图软件成为了许多设计师和创意爱好者的必备工具 而在众多的矢量绘图软件中 Sketch for Mac无疑是最受欢迎的一款 它以其简洁易用的界面和强大的功能 让用户能够轻松创作出无限可能的矢量图形 首先 Sketch

随机推荐

  • 使用ESP8266和Blynk应用程序的远程房间恒温器

    该项目可通过您的手机通过家庭WiFi或移动网络的任何地方控制您的家庭供暖单元 基本上 它可以用远程控制器代替普通的可编程房间恒温器 作为遥控器 它使用安装了Blynk App并配置为可以满足所有需求的智能手机 智能手机和供暖系统之间的通信由
  • Android 9(P)应用进程创建流程大揭秘

    Android 9 P 应用进程创建流程大揭秘 Android 9 P 系统启动及进程创建源码分析目录 Android 9 P 之init进程启动源码分析指南之一 Android 9 P 之init进程启动源码分析指南之二 Android
  • 【面试题】-java分布式及微服务面试题汇总

    目录 1 CAP理论 2 BASE理论 3 接口的幂等性问题 4 消息中间件如何解决消息丢失问题 5 什么是分布式事务 分布式事务的类型有哪些 6 分布式事务的解决方案有哪些 7 Dubbo的服务请求失败怎么处理 10 Soa和微服务架构有
  • 二叉树中序线索化与遍历(c)

    对下图的二叉树进行 1 创建一个带线索域的二叉树 数据类型如下 typedef struct 当 tag 为0时 代表child 正常指向下一个节点 当tag为1时 child为线索 其中 lchild 为指向中序遍历前驱 rchild 为
  • 中级职称的计算机考试题库,中级职称计算机考试模拟题库及答案

    资料仅供参考 中级职称计算机考试模拟题库及答案 1 计算机中数据的表示形式是 C A 八进制 B 十进制 C 二进制 D 十六进制 2 硬盘工作时应特别注意避免 B A 噪声 B 震动 C 潮湿 D 日光 3 下面列出的四种存储器中 易失性
  • 好像还挺好玩的GAN5——Keras搭建COGAN耦合生成式对抗网络

    好像还挺好玩的GAN5 Keras搭建COGAN耦合生成式对抗网络 学习前言 什么是COGAN 神经网络构建 1 Generator 2 Discriminator 训练思路 实现全部代码 学习前言 发现一个挺有意思的结构 可以通过同一个输
  • Unity实现扇形小地图的区域检测

    说明 最近接到一个需求 在一个雷达界面 扇形UI 的界面上显示出三维场景中真实的物体显示情况 我的思路就是一个三维场景某物体的位置映射到二维UI界面上 实现思路 物体到扇形原点的距离需要小于扇形半径的距离 否则就不在扇形范围内 物体与扇形原
  • 【git】 无法commit问题

    今天写完代码git commit m 一下发现提示 Another git process seems to be running in this repository e g an editor opened by git commit
  • 2022-10-20 Linux LED灯驱动gpio-leds心跳呼吸灯heartbeat、timer,路径/sys/bus/platform/devices/leds

    一 测试环境 Android 9 系统 二 驱动文件在 kernel drivers leds leds gpio c 三 dts的官方配置文档 kernel Documentation devicetree bindings leds l
  • Idea 使用技巧(MAC)

    记住符 打标快捷键 Ctrl Shift 任意数字 查标快捷键 Ctrl 任意数字 在Idea查看标签相关操作 Navigate Bookmarks 快捷键设置 intellij Preferencs keyMaps 快捷键 顶部 fn c
  • crontab每分钟执行一次任务

    0 实例 在 home 下面写了一个test sh bin sh echo hello gt home hello txt echo hello hello hello hello gt gt home hello txt 还是用这个比较好
  • 五、C++语言初阶:文件

    5 文件 5 1 流 流 数据从一个对象到另一个对象的传输 功能 标准输入输出 文件处理 分类 含义 文本流 一串ASCII字符 二进制流 一串二进制 5 2 流类型 标准库定义了三大类流类型 标准I O流 文件流 字符串流 标准I O流
  • Kaggle 数据竞赛

    文章目录 一 前言 二 主要内容 1 评估 2 时间线 3 奖金 4 代码要求 三 总结 CSDN 叶庭云 https yetingyun blog csdn net 一 前言 使用机器学习技术 通过匿名健康特征的测量数据来检测疾病 比赛目
  • 动力节点最新Java17零基础视频第二章 初识Java

    计算机概述 计算机是一种现代化的电子设备 它能够接受 存储 处理和输出数据 计算机由硬件和软件两部分组成 硬件包括中央处理器 CPU 内存 硬盘 显示器 键盘 鼠标等部件 软件则包括系统软件和应用软件 计算机可以进行各种操作 如文字处理 图
  • 当定制化的呼声响起,MaaS就在百融云的掌心

    中国的TMT产业 似乎每隔几年都要经历一轮痛苦的反思 而这次的新课题 是AI到底能不能拯救中国的软件行业 大洋彼岸的Adobe 用订阅制付费牢牢拴住离不开自己的专业视频剪辑用户 Shopify用收租的模式 为电商卖家提供搭建网店的技术和模版
  • BigDecimal基本知识

    在我们的日常计算中 有时会涉及到比较大的数字之间的计算 如 超大金额的计算 如果是韩元等的话 还要大 这时 使用float double这样的浮点数就不那么准确了 因为不论是float 还是double都是浮点数 而计算机是二进制的 浮点数
  • 如何使用github中的pull request功能?

    pull request是社会化编程的象征 通过这个功能 你可以参与到别人开发的项目中 并做出自己的贡献 pull request是自己修改源代码后 请求对方仓库采纳的一种行为 github入门与实践 下面具体说一下github中使用pul
  • Unity TimeLine实用功能讲解

    这一个技术相对于其他动画系统 最大的区别就是 TimeLine针对多个游戏物体做出的一系列动画 主要用于过场动画的制作 实现电影级的那种分镜效果 注意 使用TimeLine需要2017以上的版本 在菜单栏中点Window 找到TimeLin
  • uView 中 Steps 步骤条,竖向步骤条不展示

    问题描述 Steps 步骤条在竖向时候步骤条竖线不展示 解决方法 找到uview ui components u steps item u steps item vue文件 设置 style height 100 即可 如图
  • 如何在MacOS上玩儿汇编?

    在Mac上写汇编还是相当方便的 本文通过写一个Helloworld程序来入门 首先 MacOS 自带nasm 只是版本有点老 编译不了64位程序 只要上官网下一个最新的 替换一下就行了 有一点需要注意的是mac上gcc编译 o文件的默认入口