最近喜欢上了自制操作系统,但是要上班,使用电脑的时间很少,所以自己将nasm移植到了安卓上,不说废话,我先说怎么做的吧。
准备工作如下:
1,下载工具,移植后的nasm:http://pan.baidu.com/s/1hqqu4WO,limbo模拟器汉化版http://pan.baidu.com/s/1ct86a,还需要下载个终端模拟器,这个应用市场都有,就不说了
2,运行环境,root环境,即为手机需要root
安装nasm:
准备工作做好了就按以下步骤来做
1,将nasm解压到/data/local下
2,在终端模拟器执行以下命令(需要root)
su
export PATH=/data/local/nasm/bin:$PATH
这里就可以执行nasm命令了
比如我把yuos.asm放在sdcard/nasm下(yuos.asm是我的系统的名字,你们也可以给你们的系统起个好听的名字)
就要执行
cd sdcard/nasm
nasm yuos.asm -o yuos.img
大家可能看到我这里没有配置环境变量,那是因为我在系统中配置了变量,不用每次都配置
我在这里讲下怎么配置变量吧
用re管理器或者其他能进入系统核心的文件管理器找到system/etc/mkshrc文件,在最后加入export PATH=/data/local/nasm/bin:$PATH,这样就能配置变量了
,然后就是配置limbo模拟器了
先是叫你设置模拟器名字,没什么说的,然后其他设置看你心情
最后设置A盘镜像,直接设置为你的img文件目录就行了
最后启动虚拟机,你就会发现。。。。
这个是一个计算的汇编题,要求计算1+2+3+4+........+1000,我懒得改,直接拿上来了,不是hello ,OS world
代码我还是发上来吧:
;代码清单7-1;文件名:c07_mbr.asm
;文件说明:硬盘主引导扇区代码
;创建日期:2011-4-13 18:02
jmp near start
message db '1+2+3+...+1000='
message1 db 0x0a,0x0a
start:
mov ax,0x7c0 ;设置数据段的段基地址
mov ds,ax
mov ax,0xb800 ;设置附加段基址到显示缓冲区
mov es,ax
;以下显示字符串
mov si,message
mov di,0
mov cx,start-message
@g:
mov al,[si]
mov [es:di],al
inc di
mov byte [es:di],0x07
inc di
inc si
loop @g
;以下计算1到100的和
xor ax,ax
mov cx,1
@f:
add ax,cx
inc cx
cmp cx,1000
jle @f
;以下计算累加和的每个数位
xor cx,cx ;设置堆栈段的段基地址
mov ss,cx
mov sp,cx
mov bx,10
xor cx,cx
@d:
inc cx
xor dx,dx
div bx
or dl,0x30
push dx
cmp ax,0
jne @d
;以下显示各个数位
@a:
pop dx
mov [es:di],dl
inc di
mov byte [es:di],0x07
inc di
loop @a
jmp near $
mov si,message1
mov di,0
mov cx,start-message1
times 510-($-$$) db 0
db 0x55,0xaa
自此,教程结束,希望帮到大家!(好像用安卓自制系统只有我哈。。。)
另外感谢我的朋友柒月初七用手机模拟Ubuntu帮我编译了nasm,不然我是移植不了的
我的qq:1173130639,如有问题,请联系我