相关文章推荐
酒量小的手电筒  ·  copyFile 函数 ...·  11 月前    · 
发呆的猴子  ·  Export and import ...·  1 年前    · 
鬼畜的面包  ·  android - Media Codec ...·  1 年前    · 

nasm简单用法和dd指令解析

nasm Netwide Assembler (简称 NASM)是一款基于x86架构的汇编与反汇编软件。它可以用来编写16位(8086、80286等)、32位(IA-32)和64位(x86_64)的程序。 NASM被认为是Linux平台上最受欢迎的汇编工具之一。

用于将汇编程序编译成二进制文件。

nasm -f 〈filename> [-o ]

以上是nasm 的基本用法, 对咱们来说, 够用了。 注意我说的是 “基本”, 还有好多其他参数呢, 不过

咱们用不着。 甚至, 大多数时候连-f都不用呢。

-o 就是指定输出可执行文件的名称。

查看一下nsam的帮助, ok, 执行mannasm 回车, 输出的信息、太多了, 我们只看-f的说明就就行了。

-f format

Specifies the output file format

To see a list of valid output formats, use the -hf option.


Linux dd 命令用于读取、转换并输出数据。

dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

if=文件名:输入文件名,默认为标准输入。即指定源文件。

of=文件名:输出文件名,默认为标准输出。即指定目的文件。

ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。

obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。

bs=bytes:同时设置读入/输出的块大小为bytes个字节。

cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。

skip=blocks:从输入文件开头跳过blocks个块后再开始复制。

seek=blocks:从输出文件开头跳过blocks个块后再开始复制。

count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。

conv=<关键字>,关键字可以有以下11种:

conversion:用指定的参数转换文件。

ascii:转换ebcdic为ascii

ebcdic:转换ascii为ebcdic

ibm:转换ascii为alternate ebcdic

block:把每一行转换为长度为cbs,不足部分用空格填充

unblock:使每一行的长度都为cbs,不足部分用空格填充

lcase:把大写字符转换为小写字符

ucase:把小写字符转换为大写字符

swap:交换输入的每对字节

noerror:出错时不停止

notrunc:不截短输出文件

sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

–help:显示帮助信息

–version:显示版本信息


if=E工LE .

read from FILE instead of stdin′

此项是指定要读取的文件。

of=官工LB _

write to FILE instead Of .st’dout

此项是指定把数据输出到哪个文件。`

bS=BYTEs′

read and write BYTES bytes at a time (also see ibs=, obS=)

此项指定块的大小, dd是以块为单位来进行I0操作的, 得告诉人家块是多大字节。 此项是统计配置

了输入块大小ibs 和输出块大小obs。 这两个可以单独配I。

count=BLOCKS

copy only BLOCKS input blocks

此项是指定拷贝的块数。

′ seek=BLOCKS

skip BLOCKS obs-sized blocks at start of output

此项是指定当我们把块输出到文〈牛时想要跳过多少个块

convert the file as per the comma separated symbol list

此项是指定如何转换文件。

_ append append {node (m卓kes sense only for output; conv=notrunc suggested)

这句话建议在追加数据时, conv最好用 notrunc方式也就是不打断文件.

齐了, dd 的介绍就到这了, 赶紧试验一下这个神奇的工具吧

dd if=/your_path/mbr. bin of=/your_path/bochs/hd60.img bs=512 count=1 conv=notrunc


Linux:时间日期指令(date)+查找指令(find,locate,grep)+压缩和解压指令(gzip,gunzip;zip,unzip;tar)(内含详细解释+操作实例)
Linux:时间日期指令(date)+查找指令(find,locate,grep)+压缩和解压指令(gzip,gunzip;zip,unzip;tar)(内含详细解释+操作实例)
Qt .pro文件之defineReplace函数的用法,实现lib文件名自动添加后缀“d“
Qt .pro文件之defineReplace函数的用法,实现lib文件名自动添加后缀“d“
Python命令行解析:IDE内点击Run运行代码直接得出结果、基于TF flags(或argparse、sys.argv)在Dos内命令行(一条命令)调用代码文件得出结果
Python命令行解析:IDE内点击Run运行代码直接得出结果、基于TF flags(或argparse、sys.argv)在Dos内命令行(一条命令)调用代码文件得出结果