汇编语言学习笔记

最近的一个月,对我来说,是休息的时间。停下来,思考思考,尝试一下,能够更加清晰的认识自己,是一件好事。

看标题,本篇博客是关于汇编的。为什么突然对汇编感兴趣了呢?主要还是因为“操作系统”,理解操作系统的前提基础,需要 汇编,本篇博客记录我在实验楼学习汇编的心得体会,好记性不如烂笔头,希望记下了,后面可以常常复习备忘。

字、字节、双字

字节是大家最熟悉的,但对于字和双字,可能并没有那么清楚。

寄存器组

寄存器是CPU附属的存储部件,速度在内存之上。学习汇编的一个前提,就是认识这些寄存器。

数据寄存器

AX,BX,CX,DX

根据高低位,又可以拆分为: AH, AL; BH, BL; CH, CL; DH, DL;

地址寄存器

SP,BP,SI,DI 用来存放存储器操作数的偏移地址,并且也可以用作通用寄存器。

段寄存器

CS(代码段寄存器),DS(数据段寄存器),ES(附加段寄存器),SS(堆栈段寄存器)

控制寄存器

IP(指令指针寄存器),FLAGS(PSW程序状态字)

原码、反码、补码

“原码、反码、补码”解决的是什么问题呢? 数的表示。如果都是正数,那么很好表示。这些码,核心解决的是负数的问题。

原码,最高位1代表负数、0代表正数,剩下的位表示数值大小。

反码,负数时,符号位为1,数值位取反。

补码,负数时,符号位为1,数值位取反+1。

寻址方式

  1. 立即寻址:常数,写在指令里使用。
  2. 寄存器寻址:操作数在寄存器中,直接使用寄存器名称即可。
  3. 直接寻址:操作数直接放在内存中,写DS+地址偏移即可。
  4. 寄存器间接寻址:使用寄存器保存一个偏移地址,结合DS访问特定的内存地址。
  5. 寄存器相对寻址
  6. 基址变址寻址
  7. 相对基址变址

总结

学习汇编,能够让我更深一步理解计算机的模型,后面急需花时间补充本篇博客。

参考

实验楼汇编课程

Table of Contents