汇编语言(王爽 第三版)--笔记

时间:2022-03-02 01:21:22

第一章

(1)汇编指令是机器指令的助记符,同机器指令一一对应。

(2)每一种CPU都有自己的汇编指令集。

(3)CPU可以直接使用的信息在存储器中存放。

(4)在存储器中指令和数据没有任何区别,都是二进制信息。

(5)存储单元从零开始顺序编号。

(6)一个存储单元可以存储8工人bit,即8位二进制数。

(7)每一个CPU芯片都有许多管脚,这些管脚和总线相连。也可以说,只写管脚引出总线,一个CPU可以引出3中总线的宽度标志了这个CPU的不同方面的性能。

   地址总线的宽度据定了CPU的寻址能力;

   数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传送量;

   控制总线的宽度决定了CPU对系统中其他器件的控制能力。

 

第二章

(1)8086CPU有14个16位寄存器,AX、BX、CX、DX四个通用寄存器,其中每个还可以分为2个高低8位的寄存器;CS、SS、DS、ES四个段寄存器;SI、DI、SP、BP、IP为指令指针寄存器、PSW。

(2)CS存放指令的段地址,IP存放指令的偏移地址。8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。

 

第三章

(1)DS存放数据的段地址。

(2)mov(移动赋值) add(+) sub(-)。

(3)字在内存中存储是,要用两个地址连续的内存单元来存放,字的低位字节存放在低地址单元中,高位字节存放在高地址单元中。

(4)用mov指令访问内存单元,可以在mov指令中只给出单元的偏移地址,此时,段地址默认在DS寄存器中。

(5)[address]表示一个偏移地址为address的内存单元。

(6)在内存和寄存器之间传送的字型数据时,高地址单元和高8位寄存器、低地址单元和低8位寄存器相对应。

(7)mov、add、sub是具有两个操作对象的指令。jmp是具有一个操作对象的指令。

栈的综述:

(8)8086CPU提供了栈操作机制,SS:SP中存放栈顶的段地址和偏移地址.

(9)push指令的执行步骤:①SP=SP-2;②向SS:SP指向的字单元中送入数据。

(10)pop指令的执行步骤:①从SS:SP指向的字单元中读取数据;②SP=SP+2.

(11)任意时刻,SS:SP指向栈顶元素。(8086CPU只记录栈顶,栈空间的大小我们要自己管理。)

(12)push、pop实质上是一种内存传送指令,注意灵活应用。

 

第四章

(1)操作系统的外壳--任何通用的操作系统,都要提供一个称为shell(外壳)的程序,用户使用这个程序来操作计算机系统进行工作。(DOS中有一个command.com,这个程序在DOS中称为命令解释器,为就是DOS系统的shell)

(2)汇编程序从写出到执行的过程:

    编程→1.asm→编译→1.obj→连接→1.exe→加载→内存中的程序→运行

 

第五章

(1)[bx]:存放的数据作为一个偏移地址EA,段地址SA默认在ds中,组成SA:EA地址。

(2)loop指令:  mov cx 11   #循环次数

      s:  add ax,ax   #循环操作

        loop  s        #循环控制  (相当于do-while循环)

(3)在汇编程序中,数据不能以字母开头。

(4)段前缀:在访问内存单元的指令中显式地给出内存单元的段地址所在的段寄存器。(mov ax,ds:[bx])

 

后续章节因学用比太低,所以浏览式学习,对于重点内容不缺分章节。

 

一、指令系统总结(8086CPU),共一下几大类指令:

1.数据传送指令

  mov、push、pop、pushf、popf、xchg等,这些指令事项寄存器和内存、寄存器和寄存器之间的单个数据传送。

2.算数运算指令

  add、sub、adc、sbb、inc、dec、cmp、imul、idvi、aaa等,它们的执行结果影响标志寄存器的sf、zf、of、cd、pf、af位。

3.逻辑指令

  and、or、not、xor、test、shl、shr、sal、sar、rol、ror、rel、rer等,除了not指令外,它们的执行结果都影响标志寄存器的sf、zf、of、cd、pf、af位。

4.转移指令

  可以修改IP,同时修改CS和IP的指令统称为转移指令。

  (1)无条件转移指令:jmp;

  (2)条件转移指令:jcxz、je、jb、ja、jnb、jna等;

  (3)循环指令:loop;

  (4)过程:call、ret、retf;

  (5)中断:int、iret。

5.处理机控制指令

6.串处理指令