汇编语言基本概念知识汇总

——请先在复习资料栏找寻资料,若需其他课程复习资料(计算机专业相关),可邮件至[email protected]

汇编语言基本概念知识汇总

1、8086/8088 CPU的寄存器组中,8位的寄存器有8个:

ALAH BL BH CL CH DL DH。    P21

2、8086/8088 CPU的寄存器组中,16位的寄存器有14个:

AXBX CX DX DS CS SS ES FS GS DI SI BP SP。P21

3、当使用BP作编程地址时,此时使用的是SS段。P21

4、影响标志位:

    ①、SAHF,POPF根据计算情况影响标志位。P58

②、ADD,ADC,XADD,SUB,SBBCMP,NEG等影响条件标志位。

ADD指令对OF标志位影响:若两操作数相同且结果符号与之相反,则OF=1,反之OF=0。  P59

OF表示有符号溢出,CF表述无符号溢出。

    ③、乘法指令对除CF,OF以外的条件码位无定义。

④、AND,OR,XOR,TEST将使CF和OF位为0。

⑤、移位指令会影响CF,OF,具体见书73页倒数第一段。

5、不影响标志位:

    ①、MOV指令不影响标志位。

②、PUSH和POP指令不影响标志位。

③、INC,DEC不影响CF位。

④、除法指令对条件码位均无定义。

⑤、NOT指令不影响标志位。

⑥、所有的跳转指令都不影响条件码。

⑦、循环指令不影响条件码。

⑧、CALL和RET指令都不影响条件码。

6双操作数指令的两个操作数中除源操作数为立即数的情况外,必须有一个操作数在寄存器中。单操作数指令不允许使用立即数方式。

我们也可以理解为双操作数不允许有两个[]

7CS指令不允许使用MOV指令。

8DX不能作为间接寻址的寄存器。

9有效地址=(BX/BP)+(SI/DI)。即二选一,不能同时存在。

           基址寄存器  变址寄存器

10、如JMP指令采用段间间接寻址,那么由4个相邻字节单元中存放有转移地址,其中前两个字节存放的是IP, 后两个字节存放的是CS

段间转移时进行入栈操作时存放CS存放IP,并且SP每次减2

11Loop指令执行原则为先执行循环体CX再减一

12、SP=返回的字节+IP的2个字节(由于是段内返回)。

13、寄存器操作数: 存放在4个通用寄存器(AX、BX、CX、DX 8位或16位)、 4个专用寄存器(SI、DI、BP、SP 只能是16位)或4个段寄存器(CS、DS、ES、SS 只能是16位)中的操作数。

14不允许将立即数传送到段寄存器

15、一般不允许两个操作数同时为存储器操作数。

16、8086的寻址方式

    ①、立即数寻址:操作数直接包含在指令中

    例:MOV AX,3102H 

    立即数只能是8或16位整数,通常用于双操作数指令中,只能作为源操作数

②、寄存器寻址:操作数包含在寄存器中

例:MOV DX,AX 

16位操作数,寄存器可以为AX、BX、CX、DX、SI、DI、SP、BP、CS、DS、SS、ES

   位操作数,寄存器可以为AH、AL、BH、BL、CH、CL、DH、DL

可以对源操作数、目标操作数或两者都采用寄存器寻址方式

当指令中的源操作数和目标操作数均为寄存器时,必须采用同样长度的寄存器

两个操作数不能同时为段寄存器

目标操作数不能是代码段寄存器CS

    ③、直接寻址:有效地址在指令中直接给出

       例:MOV  AX, [2000H]

       EA = 基址 + 变址 + 偏移量

       默认段寄存器为DS,若操作数在其它段,则必须使用段超越前缀指明

    ④、寄存器间接寻址:有效地址 = 寄存器内容

       例:MOV  AX, [BX]

EA = 基址 + 变址 + 偏移量

只有SI、DI、BX(段基址默认在DS)和BP段基址默认在SS)可做间址寄存器,段基址可使用段超越前缀更改

    ⑤、寄存器相对寻址(直接变址寻址):有效地址 = 寄存器内容 + 偏移量

       例:MOVAX,[BX+1000H]

    ⑥、基址变址寻址:有效地址 = 基址寄存器内容+变址寄存器内容

例:MOV   AX,  [BX+SI]

MOV   AX,  [BP][DI]

汇编语言基本概念知识汇总_第1张图片

 

⑦、相对基址变址寻址:有效地址 = 基址寄存器内容 +变址寄存器内容 + 偏移量

    例:MOV AX,BASE [SI] [BX]

MOV  AX,[BX+BASE] [SI]

   汇编语言基本概念知识汇总_第2张图片

存储器寻址小结:

 

汇编语言基本概念知识汇总_第3张图片

17串操作源操作数DS段,目的操作数ES段。

18、MOV指令:

          汇编语言基本概念知识汇总_第4张图片

 

 

19、PUSH、POP指令:

 

20、XCHG指令:

 

 

汇编语言基本概念知识汇总_第5张图片

21、有效地址送寄存器指令:    LEA  REG, SRC

不影响标志位

REG 不能是段寄存器

SRC 必须为存储器寻址方式

22、类型转换指令:

   汇编语言基本概念知识汇总_第6张图片

22、ADD指令:

   汇编语言基本概念知识汇总_第7张图片

23、SUB指令:

   汇编语言基本概念知识汇总_第8张图片

24、乘法指令:

   

   

25、除法指令:

   

26、调整指令:

   汇编语言基本概念知识汇总_第9张图片

27、逻辑运算指令:

    逻辑非指令:NOT  OPR   OPR不能为立即数

28、移位指令:

   汇编语言基本概念知识汇总_第10张图片

29、串操作指令:

   汇编语言基本概念知识汇总_第11张图片

   

30、伪操作:汇编程序对源程序进行汇编时处理的操作,完成处理器选择、存储模式定义、数据定义、存储器分配、指示程序开始结束等功能。

31地址计数器 $ :保存当前正在汇编的指令的地址。

32、子程序调用:隐含使用堆栈保存返回地址

33、NEAR属性:调用程序和子程序在同一代码段中(段内调用);

FAR属性:调用程序和子程序不在同一代码段中(段间调用)。

34、宏:源程序中一段有独立功能的程序代码。

宏指令:用户自定义的指令。在编程时,将多次使用的功能用一条宏指令来代替。

35、CPU与外设交换的信息分为三种:控制、状态信息;数据信息;命令信息;控制与状态信息都是为了正确地获得数据信息。

36、接口一般就由控制逻辑部件和一系列的寄存器构成,每个接口设备内部的寄存器数量不一样。但都可以分为三类:状态寄存器,数据寄存器;命令寄存器

数据寄存器:存放外设和主机间传送的数据

状态寄存器:保存外设或接口的状态信息

命令寄存器:保存CPU发给外设或接口的控制命令

38、中断源:引起中断的事件

外中断(硬中断):

     外设的 I/O 请求      ——  可屏蔽中断

     电源掉电 / 奇偶错  ——  非屏蔽中断

内中断(软中断):

     INT 指令 / CPU 错(除法错、溢出)/ 

     为调试程序设置的中断

39、存储器:

      存储器以字节(8bit)为编程单位

     每个字节单元都有唯一的地址编码

     地址用无符号整数来表示(编程用十六进制表示)

     一个字要占用相继的两个字节

     低位字节存入低地址,高位字节存入高地址

     字单元地址用它的低地址来表示

     机器以偶地址访问(读 / 写)存储器

40、CPU组成:算术逻辑部件ALU、控制器、寄存器。

41、寄存器与存储器:

   汇编语言基本概念知识汇总_第12张图片

42、外部设备与主机( CPU 和存储器)的通信是通过外设接口(Interface)进行的,每个接口包括一组寄存器。

43、外设中每个寄存器有一个端口(Port)地址,构成一个独立于内存的 I / O 地址空间:0000H ~ FFFFH。

你可能感兴趣的:(复习资料汇总)