前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >入门龙芯旧世界汇编指令

入门龙芯旧世界汇编指令

作者头像
林德熙
发布2024-11-09 09:24:17
590
发布2024-11-09 09:24:17
举报
文章被收录于专栏:林德熙的博客

我是龙芯汇编指令新手,本文是我学习龙芯汇编的笔记

我借到了一台宝贵的龙芯 3A6000 设备,我期望在这台设备上面学习龙芯汇编指令。这台设备上的是龙芯旧世界的麒麟系统,由于这台设备很宝贵,我不能随意玩。为了防止弄坏设备,我将在此设备上面搭建 docker 环境,进入到 docker 容器里面进行开发

在此设备上搭建 docker 环境的方法,详细请看 制作一个龙芯旧世界的 dotnet sdk docker 镜像

以下是我的 dockerfile 文件内容

代码语言:javascript
复制
FROM cr.loongnix.cn/library/debian:buster
WORKDIR /root

RUN apt-get install gcc -y
RUN apt-get install vim -y

使用如下两句命令进行构建和进入容器

代码语言:javascript
复制
docker build -t g1 .
docker run -it g1 /bin/bash

本文这里完全都是龙芯旧世界的

先使用 vim 敲入一些代码内容:

代码语言:javascript
复制
.data

string: .asciz "Hello World!\r\n"

.text
.global main
main:

    li.w $a7, 64              # write syscall number
    li.w $a0, 1               # stdout file descriptor == 1
    la $a1, string            # string address
    li.w $a2, 15              # string len
    syscall 0x0               # syscall

    li.w $a7, 93              # exit syscall number
    li.w $a0, 0
    syscall 0x0               # syscall

以上代码来自于 https://github.com/foxsen/loongarch-assembly/blob/bdc24681d745a9f53dc9bc8f9fce28de470809ca/hello-world.S

接着使用 gcc 进行构建,命令如下

代码语言:javascript
复制
gcc -static hello.S -o hello

接下来就可以使用 ./hello 跑起来刚才写的汇编的程序

以下是我手敲的过程

环境搭建要点

本文以上使用的都是龙芯旧世界

业界都认为旧世界是过度的,之后会是新世界

在旧世界里面,不应该去下载 https://github.com/sunhaiyong1978/CLFS-for-LoongArch/releases/download/untagged-629b3c005484675292bc/loongarch64-clfs-3.0-cross-tools-gcc-glibc.tar.xz 工具,而是应该直接使用 apt-get install gcc -y 进行安装

本文的 docker 搭建不是必须的,只是我不想弄坏设备而已

那如果大家想要玩龙芯但是没有机器咋办?可以使用 QEMU 进行模拟,详细请看 龙芯汇编实验环境搭建 - github.com/foxsen/loongarch-assembly

必须说明的是以上使用 QEMU 进行模拟的做法使用的是龙芯新世界

参考文档

foxsen/loongarch-assembly: assembly experiment environment for loongarch

龙芯架构参考手册

LoongArch 汇编快速入门 - LoongArch 开放社区

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境搭建要点
  • 参考文档
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档