我借到了一臺寶貴的龍芯 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
以上程式碼來自於 https://github.com/foxsen/loongarch-assembly/blob/bdc24681d745a9f53dc9bc8f9fce28de470809ca/hello-world.S
接著使用 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
龍芯架構參考手冊
LoongArch 彙編快速入門 - LoongArch 開放社群