在龙芯上用nasm编写x86汇编程序

我在中科梦兰论坛发表于 2007-2-10 22:24:06

在龙芯上用nasm编写x86汇编程序
http://bbs.lemote.com/forum.php?mod=viewthread&tid=5443&fromuid=76
(出处: 龙芯论坛(loongson forum))

硬件:福珑LFLM010029(龙芯2E)
软件:Linux debian 2.6.18.1lemote #1 Thu Dec 28 16:51:25 CST 2006 mips GNU/Linux

步骤:
第一步:在福珑上安装nasm。在福珑终端中运行命令:sudo apt-get install nasm
loongson@debian:~$ sudo apt-get install nasm
正在读取软件包列表… 完成
正在分析软件包的依赖关系树… 完成
下列【新】软件包将被安装:
nasm
共升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 9 个软件未被升级。
需要下载 1599kB 的软件包。
解压缩后会消耗掉 3105kB 的额外空间。
获取:1 http://www.lemote.com etch/main nasm 0.98.38-1.2 [1599kB]
下载 1599kB,耗时 27s (57.3kB/s)
选中了曾被取消选择的软件包 nasm。
(正在读取数据库 … 系统当前总共安装有 115024 个文件和目录。)
正在解压缩 nasm (从 …/nasm_0.98.38-1.2_mipsel.deb) …
正在设置 nasm (0.98.38-1.2) …

第二步:打开gedit或其他文本编辑器,输入以下内容,保存为bintest.asm。

; test source file for assembling to binary files
; build with:
;    nasm -f bin -o bintest.com bintest.asm

; When run (as a DOS .COM file), this program should print
;    hello, world
; on two successive lines, then exit cleanly.

; This file should test the following:
; [1] Define a text-section symbol
; [2] Define a data-section symbol
; [3] Define a BSS-section symbol
; [4] Define a NASM local label
; [5] Reference a NASM local label
; [6] Reference a text-section symbol in the text section
; [7] Reference a data-section symbol in the text section
; [8] Reference a BSS-section symbol in the text section
; [9] Reference a text-section symbol in the data section
; [10] Reference a data-section symbol in the data section
; [11] Reference a BSS-section symbol in the data section

BITS 16
ORG 0x100

SECTION .text

jmp start                ; [6]

endX          mov ax,0x4c00                ; [1]
int 0x21

start          mov byte [bss_sym],’,’ ; [1] [8]
mov bx,[bssptr]        ; [7]
mov al,[bx]
mov bx,[dataptr]        ; [7]
mov [bx],al
mov cx,2
.loop          mov dx,datasym        ; [1] [4] [7]
mov ah,9
push cx
int 0x21
pop cx
loop .loop                ; [5] [6]
mov bx,[textptr]        ; [7]
jmp bx

SECTION .data

datasym          db ‘hello  world’, 13, 10, ‘$’ ; [2]
bssptr          dw bss_sym                ; [2] [11]
dataptr          dw datasym+5                ; [2] [10]
textptr          dw endX                ; [2] [9]

SECTION .bss

bss_sym          resb 1                ; [3]

第三步:编译第二步的文件。
loongson@debian:~$ nasm -f bin -o bintest.com bintest.asm

第四步:把第三步生成的bintest.com复制到一台运行DOS或WIN的X86电脑上,在命令提示符下运行bintest.com。
运行结果是在屏幕上输出两行hello, world。

MIPS指令集的翻译

http://godsontech.blog.sohu.com/

我2006年写的这个博客被搜狐隐藏了不少帖子,原因不明。这次自己建的网站应该就可以一直保存着了吧。原来写的电子档不一定找得到了。只能手动一篇一篇的转过来了。

一个小时后。。。。。。。

哈哈,在移动硬盘上面一顿狂搜,找到了。这样就可以建个新的分类目录转过来吧,慢慢完善起来吧。

顺便找了当时做最短的mipsel的可执行文件的纸质材料。别针都生锈了啊。

福珑 80个字节的可执行文件http://bbs.lemote.com/forum.php?mod=viewthread&tid=5834&fromuid=76(出处: 龙芯论坛(loongson forum))

 

我手上的龙芯 下篇

(接上篇)

接下来要讲的是1B的开发板。是龙芯广州公司曾志峰送的。图片如下。龙芯1B开发板 龙芯1B开发板

 

下面图片是最新的龙芯1C的智龙开发板。在未来一段时间内,我们会基于这块板子做3D打印机的控制系统。

龙芯1C,智龙开发板

 

下面的图片是最后出场的补拍的8089D。我手上还有七八台新机器,如果哪位朋友有需要,打算用这款机器,可以联络我。

龙芯电脑 逸珑 8089D 龙芯电脑 逸珑 8089D

以上全部,就是我手上的龙芯。

我手上的龙芯 上篇

接触龙芯,有十多年了。先来张全家福:

我手上的龙芯电脑
我手上的龙芯电脑

拍完想起了忘了拍逸珑8089D了。Yeeloong也是2F的,最后再上图。刚才顺手去www.lemote.com中科梦兰的网站上看了一下,官网貌似只有8089A和8089B。

2006年12月,收到江苏中科龙梦科技有限公司市场部关于预定2E盒子的邮件。

尊敬的客户您好:

首先向您表示诚挚的祝贺和由衷的谢意!我谨代表江苏中科龙梦科技有限公司,对您的积极参与表示感谢,同时很荣幸地通知您,您被我公司选择作为首批次龙芯福珑迷你电脑用户。您拥有选择和拒绝购买的权利。

为 了表达对一直以来支持和鼓励我公司不断取得进步的朋友们的谢意,同时也为了龙芯事业的稳步发展,我公司在相对公平公正的基础上,对首批次福珑迷你电脑使用 者进行了简单有效的选择,您是其中一位。希望龙芯福珑迷你电脑能在您手中物尽其用,如果您有任何问题,可以随时与我们取得联系,我们将尽可能帮助您解决。

另外,请购买者务必确定您的地址、联系方式是正确有效的,如因此出现的任何问题,我公司将不负责任。另外请注意,目前我公司尚未开通资金帐号,请不要急于打款,具体的返款措施,我们将于后期公布。

在此回执的客户我们将正式登记记录,正式生效.

其实在收到这份邮件之前,都有直接发资料给张福林的。这台龙芯2E的盒子,后来我在一家公司技术入股时折算成股份了,再也拿不回来了。不过我是付了全款的。虽然是大概一年之后才付款的。所有的优惠条款,我都没有用,算是支持龙芯吧。它样子长得和刘世伟后来送给我的2F的盒子差不多,见下图。回想起八年多前,拿到第一批2E的盒子,打算是做MIPS指令集的翻译和汇编编程环境的开发,最后只搞了个文字MUD西游记的移植,实在是汗颜。在那年的高交会上,第一届龙芯俱乐部会员一起溜达了一圈,去龙芯的展位上看了一下。自此以后,生活所迫,只有梦兰的论坛我偶尔去看看,剩下的时间,我都是远远观望了。然而将近九年之后,在这个深圳如火的下午,我点燃心中的热血,试图再来用龙芯做点什么。

龙芯2F电脑盒子
龙芯2F电脑盒子

 

下面的是海山半导体的HS3210i,2010-12-15日从”龙芯soc”的淘宝店买的。我也曾连续奋斗45天,试图通过EJTAG来调试它,始终不得其门而入。不过貌似当时通过EJTAG读到的那个芯片的命名ID之类的还是01010101之类的测试版的,一晃四五年过去了,这些玩意陪我搬家无数次,被南方的蟑螂爬过,默默地存在着,让人不胜感慨。我认为这块板子最出人意料的是,一块开发板竟然涂了防潮油。防潮处理一般是我们做洗衣机之类的主板,用在潮湿环境下的才会做的。我一直没想明白这个事情……

龙芯智见HS3210i
龙芯智见HS3210i