入门龙芯旧世界汇编指令
我借到了一台宝贵的龙芯 3A6000 设备,我期望在这台设备上面学习龙芯汇编指令。这台设备上的是龙芯旧世界的麒麟系统,由于这台设备很宝贵,我不能随意玩。为了防止弄坏设备,我将在此设备上面搭建 docker 环境,进入到 docker 容器里面进行开发
在此设备上搭建 docker 环境的方法,详细请看 制作一个龙芯旧世界的 dotnet sdk docker 镜像
以下是我的 dockerfile 文件内容
FROM cr.loongnix.cn/library/debian:buster
WORKDIR /root
RUN apt-get install gcc -y
RUN apt-get install vim -y
使用如下两句命令进行构建和进入容器
docker build -t g1 .
docker run -it g1 /bin/bash
本文这里完全都是龙芯旧世界的
先使用 vim 敲入一些代码内容:
.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
接着使用 gcc 进行构建,命令如下
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
博客园博客只做备份,博客发布就不再更新,如果想看最新博客,请访问 https://blog.lindexi.com/
如图片看不见,请在浏览器开启不安全http内容兼容
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名[林德熙](https://www.cnblogs.com/lindexi)(包含链接:https://www.cnblogs.com/lindexi ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我[联系](mailto:lindexi_gd@163.com)。