x86笔记-第 3 章 汇编语言和汇编软件

汇编语言简介

指令和被指令引用的数据在内存中都是一些或高或低的电平,每一个电平都可以看成是一个二进制位(0 或者 1),8个二进制位形成一字节。
要解读内存中的东西,最好的办法就是将它们按字节转换成数字的形式。

比如,下面这些数字就是存放在内存中的8086指令,我们用的是十六进制:

B8 3F 00 01 C3 01 C1

即使是很有经验的技术人员,要想用这种方式来编写指令,也是很困难的,而且很容易出错。所以,在第一个处理器诞生之后不久,为了克服机器指令难以书写和理解的缺点,人们想到可以用一些容易理解和记忆的符号,也就是助记符,来描述指令的功能和操作数的类型,这就产生了 汇编语言(Assembly Language)

这样,上面那些指令就可以写成:

mov ax,3FH
add bx,ax
add cx,ax

指令的格式

汇编语言对指令的大小写没有特别的要求。所以你完全可以这样写:

MOV AX,3FH
mov ax,3fh
MOV ax,3FH
mov AX,3fh

在很多高级语言中,如果要指示一个数是十六进制数,通常不采用在后面加“H”的做法,而是为它添加一个“0x”前缀。像这样:

mov ax,0x3f

在汇编语言中,使用十进制数是最自然的。因为 3FH 等于十进制数 63,所以你可以直接
这样写:

mov ax,63

当然,如果你喜欢,也可以使用二进制数来这样写:

mov ax,00111111B

一定要看清楚,在那串“0”和“1”的组合后面,跟着字母“B”,以表明它是一个二进制数。

NASM 编译器

每种处理器都可能会有自己的汇编语言编译器,而对于同一款处理器来说,针对不同的平台(比如 Windows 和 Linux),也会有不同版本的汇编语言编译器。

现存的汇编语言编译器有多种,用得比较多的有 MASM、FASM、TASM、AS86、GASM等,每种汇编器都有自己的特色和局限性。特别是,有些还需要付费才能使用。不同于前面所列举的这些,在本书中,我们用的是另一款叫做 NASM 的汇编语言编译器。

资料参考

  • 《x86 汇编语言:从实模式到保护模式》
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MoMing丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值