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

来源:互联网 发布:latex mac下载官网 编辑:程序博客网 时间:2024/05/16 09:36

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

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

二、简单使用NASM

  1. 准备好源文件
    假设命名为 c07_mbr.asm(这是《x86汇编语言:从实模式到保护模式》一书的配书代码),这个程序的功能是计算1+2+3+…+100
         ;代码清单7-1         ;文件名:c07_mbr.asm         ;文件说明:硬盘主引导扇区代码         ;创建日期:2011-4-13 18:02         jmp near start message db '1+2+3+...+100=' 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         ;以下计算1100的和          xor ax,ax         mov cx,1     @f:         add ax,cx         inc cx         cmp cx,100         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 $ times 510-($-$$) db 0                 db 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
可以看到

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

(完)

0 0
原创粉丝点击