欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > Ubuntu >内容正文

Ubuntu

NASM在Ubuntu上的安装与简单使用

发布时间:2025/3/15 Ubuntu 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 NASM在Ubuntu上的安装与简单使用 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

一 、安装NASM
1. 下载安装文件
地址是:http://www.nasm.us/pub/nasm/releasebuilds/2.11.08/

2.解压(具体命令要根据压缩包的类型来选用)
3.进入解压目录
进入刚解压的目录
./configure
make
sudo make install

二、简单使用NASM

  • 准备好源文件
    假设命名为 c07_mbr.asm(这是《x86汇编语言:从实模式到保护模式》一书的配书代码),这个程序的功能是计算1+2+3+…+100
  • ;代码清单7-1;文件名:c07_mbr.asm;文件说明:硬盘主引导扇区代码;创建日期:2011-4-13 18:02jmp near startmessage db '1+2+3+...+100='start:mov ax,0x7c0 ;设置数据段的段基地址 mov ds,axmov ax,0xb800 ;设置附加段基址到显示缓冲区mov es,ax;以下显示字符串 mov si,message mov di,0mov cx,start-message@g:mov al,[si]mov [es:di],alinc dimov byte [es:di],0x07inc diinc siloop @g;以下计算1100的和 xor ax,axmov cx,1@f:add ax,cxinc cxcmp cx,100jle @f;以下计算累加和的每个数位 xor cx,cx ;设置堆栈段的段基地址mov ss,cxmov sp,cxmov bx,10xor cx,cx@d:inc cxxor dx,dxdiv bxor dl,0x30push dxcmp ax,0jne @d;以下显示各个数位 @a:pop dxmov [es:di],dlinc dimov byte [es:di],0x07inc diloop @ajmp near $ times 510-($-$$) db 0db 0x55,0xaa

    2.用NASM汇编源文件

    nasm -f bin c07_mbr.asm -o c07.bin -l c07.lst

    说明:
    (1)-f bin 指明汇编格式是纯二进制文件
    (2)-o c07.bin 指定输出文件名
    (3)-l c07.lst 表示产生列表文件(在里面,地址和产生的代码列在左边,实际的源代码列在右边)c07.lst

    3 运行二进制文件
    我们用bochs来运行。(关于Bochs,我的其他文章里已经介绍了使用方法)
    因为我的Bochs的配置文件中写明了:
    floppya:1_44=a.img,status=inserted
    也就是说启动文件是软盘文件a.img
    所以我们把二进制文件写入软盘文件a.img(其实在配置文件中修改a.img为c07.bin也是可以的)

    dd if=c07.bin of=a.img

    接下来:
    启动Bochs
    可以看到

    在第一行显示了运行结果:)

    (完)

    总结

    以上是生活随笔为你收集整理的NASM在Ubuntu上的安装与简单使用的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。