安卓手机制作pc操作系统,安装nasm并编译asm汇编文件

时间:2021-08-08 01:28:10

最近喜欢上了自制操作系统,但是要上班,使用电脑的时间很少,所以自己将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

安卓手机制作pc操作系统,安装nasm并编译asm汇编文件

大家可能看到我这里没有配置环境变量,那是因为我在系统中配置了变量,不用每次都配置

我在这里讲下怎么配置变量吧

用re管理器或者其他能进入系统核心的文件管理器找到system/etc/mkshrc文件,在最后加入export PATH=/data/local/nasm/bin:$PATH,这样就能配置变量了安卓手机制作pc操作系统,安装nasm并编译asm汇编文件

,然后就是配置limbo模拟器了

先是叫你设置模拟器名字,没什么说的,然后其他设置看你心情

安卓手机制作pc操作系统,安装nasm并编译asm汇编文件

最后设置A盘镜像,直接设置为你的img文件目录就行了

安卓手机制作pc操作系统,安装nasm并编译asm汇编文件

最后启动虚拟机,你就会发现。。。。

安卓手机制作pc操作系统,安装nasm并编译asm汇编文件

这个是一个计算的汇编题,要求计算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,如有问题,请联系我