详解如何在Mac上用汇编语言写HelloWorld

 更新时间:2020年01月14日 11:21:37   作者:你的眼中有片海  
这篇文章主要介绍了详解如何在Mac上用汇编语言写HelloWorld,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

首先,Mac自带nasm,不过我们要先将其升级。

升级它的方法有很多种,因为我已经装好了homebrew,所以我直接在终端输入:

brew install nasm

这样就升级啦~

接下来,创建一个HelloWorld.asm文件!

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

创建好后,保存在一个你心仪的文件夹~再次打开终端,输入

cd (你放置的文件夹名)

例如我输入的就是

cd /Users/mac/Desktop

点击回车,接下来输入

nasm -f macho64 -o HelloWorld.o HelloWorld.asm

这样你就会发现一个名叫HelloWorld.o的文件悄然建好了

再于终端输入

ld HelloWorld.o -o HelloWorld -macosx_version_min 10.13 -lSystem

回车,输入

./HelloWorld

你就会发现,hello world!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 利用DOSBox运行汇编的详细步骤

    利用DOSBox运行汇编的详细步骤

    本文分步骤给大家介绍了利用DOSBox运行汇编,起初是利用VS2017进行配置,但后面运行好像有些问题,就想到用DOSBox,本文分步骤给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2022-03-03
  • 汇编语言中mov和lea指令的区别详解

    汇编语言中mov和lea指令的区别详解

    指令(instruction)是一种语句,它在程序汇编编译时变得可执行。本文给大家总结一下汇编语言中mov和lea指令的区别详解,感兴趣的朋友跟随小编一起看看吧
    2020-01-01
  • 汇编语言之寄存器详解

    汇编语言之寄存器详解

    这篇文章主要介绍了汇编语言之寄存器详解,需要的朋友可以参考下
    2020-01-01
  • 汇编实现冒泡排序的方法示例

    汇编实现冒泡排序的方法示例

    这篇文章主要介绍了汇编实现冒泡排序的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 汇编语言指令集之条件转移指令实现

    汇编语言指令集之条件转移指令实现

    这篇文章主要介绍了汇编语言指令集之条件转移指令实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 汇编程序成绩排序的实现

    汇编程序成绩排序的实现

    这篇文章主要介绍了汇编程序成绩排序的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 汇编语言AAD,DAA,DAS用法解析

    汇编语言AAD,DAA,DAS用法解析

    这篇文章主要介绍了汇编语言AAD,DAA,DAS用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 汇编语言中XLAT查表指令的使用

    汇编语言中XLAT查表指令的使用

    XLAT指令是汇编语言查表指令,本文主要介绍了汇编语言中XLAT查表指令的使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • ARM汇编判断之如何用汇编判断数组中正负数个数

    ARM汇编判断之如何用汇编判断数组中正负数个数

    这篇文章主要介绍了ARM汇编判断之如何用汇编判断数组中正负数个数,在汇编语言中程序的基本框架是不变的,这里我们可以直接把正向遍历的程序给贴过来,然后我们思考怎么运用判断后缀把数组中正数和负数分开,进行判断个数和分别求和,需要的朋友可以参考下
    2022-04-04
  • 汇编高效乘法运算的具体使用方法

    汇编高效乘法运算的具体使用方法

    在汇编语言中,乘法指令通常是通过mul(无符号乘法)和imul(有符号乘法)这两个指令实现的,本文就来详细的介绍一下汇编高效乘法运算,感兴趣的可以了解一下
    2024-03-03

最新评论