zoukankan      html  css  js  c++  java
  • NASM在Ubuntu上的安装与简单使用

    一 、安装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
    可以看到

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

    (完)

  • 相关阅读:
    使用opencv显示视频的方法
    使用visual studio 2012 编译opencv2.4.9
    求前100个斐波那契数
    EXTJs前后台交互 常用哦3种方式
    spring 注解
    程序 人生
    ajaxs
    LNMP源码安装脚本
    系统状态统计和查看
    Shell中的${}、##和%%使用范例
  • 原文地址:https://www.cnblogs.com/longintchar/p/5224417.html
Copyright © 2011-2022 走看看