如何链接两个 nasm 源文件

2023-11-22

我有一个定义非常基本的 IO 函数的文件,我想创建另一个使用该文件的文件。

有没有办法将这两个文件链接起来?

打印.asm:

os_return:
    ;some code to return to os
print_AnInt:
    ;some code to output an int, including negatives - gets param from stack
print_AChar:
    ;some code to output a char - gets param from stack

使用PrintTest.asm:

main:
   push qword 'a'
   call print_AChar ;gets this from prints.asm somehow (that's my question)
   call os_return   ;and this too..

请注意,这些不是实际的文件...它们只是用来解释我的问题:)

Thanks!


当然 - 你只需要使用链接器。组装每个文件:

nasm -o prints.o prints.asm
nasm -o usingPrintTest.o usingPrintTest.asm

然后,您可以将输出对象传递给链接器。就像是:

gcc -o myProgramName prints.o usingPrintTest.o

Using gcc因为链接器驱动程序可以通过链接程序运行所需的操作系统库来解决一些有趣的问题。您可能需要做出一些声明usingprintTest.asm让它知道print_Achar and os_return将在其他地方定义 - 在nasm,您将使用extern汇编指令:

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

如何链接两个 nasm 源文件 的相关文章

随机推荐

  • android 毕加索 清除缓存

    我正在使用Picasso显示一个人的肖像 当肖像改变时 我想清除该用户的缓存 或所有用户的肖像缓存 这是我的代码 它不起作用 有人可以帮助我吗 LruCache lruCache new LruCache context lruCache
  • 删除和/或排序Usings有什么价值?

    我一直在奔跑删除和排序用途当然 因为这似乎是正确的做法 但现在我开始想 我们为什么要这样做 当然 干净和紧凑的代码总是有好处的 如果 MS 花时间将其作为 VS 中的菜单项 一定会有一些好处 谁能回答 为什么要这样做 删除和 或排序使用对编
  • 可构造点的坐标能否准确表示?

    我想编写一个程序 让用户可以像使用直尺和圆规一样绘制点 线和圆 然后我希望能够回答这个问题 这三个点共线吗 为了正确回答 我需要在计算点时避免舍入误差 这可能吗 如何表示内存中的点 我研究了一些不寻常的数字库 但我没有找到任何声称提供精确算
  • jsp getServletContext() 错误

    html
  • if 语句是否保证不会进行不必要的评估? [复制]

    这个问题在这里已经有答案了 给定两个条件 联系 我知道评估的顺序是从左到右 但是 如果第一个条件解析为 false 那么第二个条件是否保证不会被评估 define SIZE bool array SIZE int index play wi
  • Xcode 自动完成功能停止工作

    我正在将 Xcode 6 1 与 Swift 项目一起使用 我每天都会遇到几次 SourceKit iirc 编辑器崩溃问题 但它通常会自行解决 并且不会导致必须关闭 Xcode 现在 上次发生这种情况时 它已自行解决 但现在已取消所有自动
  • org.json.JSONException:在字符 0 处输入结束

    I am trying to upload video to server but whenever I am trying to upload response is showing null null and in logcat it
  • 为什么“在只需要整数时避免枚举”从 Android 性能提示中删除?

    在只需要整数的地方避免枚举 部分已从官方版本中删除开发者文档 See 为什么 Android 不使用更多的枚举 对于旧部分内容 为什么 Android VM 是否发生了更改 导致该提示过时了 该文件的原始版本只是一堆偏见 它已被重写为仅包含
  • 从 ArrayAdapter 内启动 FragmentTransaction

    我有一个ListView有几行 每行都有一个button 我希望按钮启动 FragmentTransaction 以替换 ListView 所在的 Fragment 然而 在getView 的方法Adapter 这条线不起作用 Fragme
  • 在 Azure 应用服务上部署 FastAPI 和 uvicorn

    我想将一个简单的 FastAPI uvicorn 部署到 Azure 应用程序服务上 每次部署时 一切似乎都运行顺利 但当我输入 Web 应用程序的 URL 时 我会收到以下错误消息 在我的本地机器上 uvicorn 工作正常 在我的网络服
  • 无法将类型“Int”隐式转换为“T”

    我可以打电话Get
  • Firebase REST API POST 请求失败并出现错误:“数据无效;无法解析 JSON 对象、数组或值...”

    我正在尝试使用 Firebase REST API 将内容保存到我的数据存储中 我尝试使用 jQuery 和 vanilla JS XHR 但是 两者都给出相同的错误 403 Bad Request 和此响应 无效数据 无法解析 JSON
  • 使用 Jersey Client 2.22.1 关闭 GET 请求中的连接

    我正在使用 Jersey 客户端从 Java 代码进行 REST 调用
  • 如何让客户端计算机上的程序从 ASP.NET 页面运行?

    我有一个正在尝试在 Intranet 上运行的应用程序 在我的机器上它运行得很好 著名的最后一句话 但是当我把它放到服务器上时 它不起作用 当我看到 系统找不到指定的文件 错误时 我认为这一定是尝试运行客户端计算机上的程序造成的 是的 如果
  • 简化泛型类型推断

    我正在编写一个通用代码 应该处理从多个源加载数据的情况 我有一个具有以下签名的方法 public static TResult LoadFromAnySource
  • 如何更改Azure虚拟机中的时区?

    如何在运行 Windows 服务器的 Azure 虚拟机中将时区从 UTC 更改为阿拉伯标准时间 恐怕您实际上无法更改时区 即使您更改过一次 时区在重新启动后也会恢复为 UTC 此外 不建议更改 Azure IaaS VM 的时区 虽然更改
  • 选择/更新时死锁

    我在 SQL Server 2008 上的 SELECT UPDATE 上遇到死锁问题 我从这个帖子中读到了答案 SQL Server 在选择 更新或多选择之间死锁但我仍然不明白为什么我会陷入僵局 我在下面的测试用例中重新创建了这种情况 我
  • Java 桌面应用程序:SWT 与 Swing [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我现在是一名网络开发人员 正在考虑构建我的第一个真正的桌面应用程序 我们的想法是构建一个工具 在没有可用 API 的 Web 应用程序中自动执行非常重复的任务 我知道我想使用 Java 我
  • Angular 6 获取带有 httpclient 问题的响应标头

    我正在使用下面的代码尝试从响应标头中提取值 ReturnStatus Keep Alive timeout 5 max 100 ReturnStatus OK SO304545 Server Apache 2 4 29 Win32 Open
  • 如何链接两个 nasm 源文件

    我有一个定义非常基本的 IO 函数的文件 我想创建另一个使用该文件的文件 有没有办法将这两个文件链接起来 打印 asm os return some code to return to os print AnInt some code to