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
- 准备好源文件
假设命名为 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 ;以下计算1到100的和 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
- NASM在Ubuntu上的安装与简单使用
- ubuntu上安装nasm以及nasm在ubuntu上的简单使用
- ubuntu上安装nasm以及nasm在ubuntu上的简单使用
- 在Ubuntu上安装nasm方法
- Ubuntu上安装NASM
- sopcast在ubuntu上的安装与使用
- NFS在ubuntu上的安装与使用
- MYSQL数据库在Ubuntu下的安装与简单使用
- NASM 与 MASM 在函数编写上的区别
- ubuntu上github的安装与使用
- Ubuntu下安装nasm
- 在ubuntu上安装Django的简单方法
- nasm的安装方法和使用
- Gerrit 在Ubuntu 11.04上的安装与配置
- kaldi在ubuntu上的编译与安装
- Jitsi Meet在Ubuntu上的快速安装与卸载
- 在ubuntu上安装百度云的方法与步骤
- GitLab在Ubuntu上的安装与配置
- Android学习笔记(四)——ListView
- poj 1410 Intersection 【判断线段 与矩形面是否相交】
- JAVA crawler
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十二)
- username!= null 与 !"".equals(username)区别
- NASM在Ubuntu上的安装与简单使用
- 学习并理解 handler,looper,message之间的关系
- Caused by: android.content.res.Resources$NotFoundException: File res/drawable-mdpi/
- 从机器学习谈起
- webpy 入门
- 通过注释省略findviewbyid
- JavaScript函数基础
- cf 3a Shortest path of the king
- HDU1269:迷宫城堡【强连通】