《汇编语言程序设计》期末复习提要

《汇编语言程序设计》课程期末复习提要

第一章 数据格式及其转换

内 容 提 要

1、 计算机内部的数字和程序都是用二进制数的形式来表示、存储和运算的。十进制数是人们习惯使用的数据,输入、输出的数据多是以十进制数形式表示。十六进制数用于简化二进制数,它的书写和阅读比二进制数更方便。但在计算机内并不真正使用十六进制进行处理。计算机只能识别二进制数和以二进制数表示的机器码。

考核要求:熟练掌握不同进制的表示及相互转换。 例如:

100=()B=()Q=()H 10101010B=()Q=()H=()D

2、计算机内以二进制码来表示十进制数时,即产生BCD编码。BCD码分为压缩和非压缩的BCD码两种,压缩的BCD码用4位二进制数表示1位十进制数字,非压缩的BCD码用8位二进制数表示1位十进制数字。

3、计算机内以ASCII码来表示字符。共有128个ASCII码来表示计算机处理的常用字符。其中字符0、大写字母A、小写字母a的ASCII码分别为30H,41H,61H,经常使用。

4、带符号数有原码、反码和补码三种表示方法,在计算机内使用补码表示和存储。 考核要求:任意给定一个带符号数(正数或负数),求对应的补码。 例如:[+34]补码=? [-18]补码=?

5、目前的大多数计算机都采用冯·诺依曼体系结构,由CPU、存储器和I/O接口电路通过三总线连接而成。CPU由控制器和算术逻辑单元组成,三总线是指数据总线、地址总线和控制总线。

计算机的工作过程是:CPU工作首先从内存单元取指令,然后把指令进行译码后再执行。计算机的运行过程就是一个不断重复的取指令、译码和执行的过程。

第2章 8086 CPU中寄存器的结构和使用

第3章 存储器的分段

内容提要

1. 8086 CPU包括两部分,总线接口单元BIU和执行部分EU,这两部分并行工作,分别负责取指令和执行指令。(重点理解2部件的功能及协同配合关系)

2. 灵活掌握与汇编程序设计关系最密切的是CPU内的寄存器组。包括: 通用寄存器:AX(AH、AL),BX(BH、BL),CX(CH、CL),DX(DH、DL); 指针和变址寄存器:SP,BP、SI,DI; 段寄存器:CS,DS,SS,ES;

指令指针寄存器IP与标志寄存器FLAG。 重点:

(1)理解指令指针寄存器IP的特点及作用;

(2)掌握状态标志寄存器FLAG中重要的状态标志的含义(重点掌握ZF,CF)

标志寄存器中有6个状态标志AF、CF、OF、PF、SF、ZF,它们反映了CPU执行指令后的状态,与编程关系极为密切,其中CF、ZF标志位在编程中经常使用。

(3)注意SP,BP、SI,DI,BX寄存器的特殊用途(在访问存储器时存放偏移地址)。 注意:当访问数据段的某单元时,该单元的偏移地址常存放在SI或DI或BX中,当对堆栈段执行操作时(如PUSH指令和POP指令),偏移地址默认由SP寄存器提供。 3. 存储器的分段(重点、难点)

(1)掌握8086存储器的分段背景(为什么要分段) (2)分段原则与方法(怎样分段) (3)理解并掌握相关概念:

逻辑地址(段基址、偏移地址)、物理地址

逻辑地址的表示,熟练掌握逻辑地址到物理地址的转换方法 20位物理地址的计算公式是: 物理地址=段基址×16+偏移地址 4.掌握堆栈的特点、作用;堆栈位置的确定。

第4章 数据和指令的寻址方式 第5章 80X86的指令系统

内 容 提 要

1、8086/8088CPU指令中的操作数的寻址方式如下表所示。 地址方式 立即寻址 直接寻址 寻址 寄存器相对操作数的有效地址由基址(变址)寄存器内MOV AX,[BP+8] 寻址 基址变址 寻址 对寻址 容及偏移量的和构成 器内容之和构成 器内容及偏移量之和构成 MOV AX,[BX]1234H MOV AX,[BP+SI] MOV AX,[BP+DI+2345H] 操作数的有效地址由基址寄存器、变址寄存MOV AX,[BX+SI] 说 明 操作数在指令中 操作数的有效地址在指令中 例子(源操作数) MOV AX,1234H MOV DS,AX MOV AX,[1234H] MOV AX,[BX] 寄存器寻址 操作数在寄存器中 寄存器间接操作数的有效地址在基址或变址寄存器中 基址变址相操作数的有效地址由基址寄存器、变址寄存MOV AX,[BX+SI+6] 考核要求:正确理解每种寻址方式,根据题意要求指出指令中操作数所用的寻址方式。 例如:教材P37习题3,4,P115习题2 2、寻址应注意分清:

(1)不是所有的寄存器都可以作为间址寻址的寄存器,只有BX、BP、SI、DI可以寻址存储器操作数。例如 MOV AL,[CX] 错误

(2)寄存器寻址和寄存器间址的差别。 (3)注意寻址方式中隐含的段寄存器。

例如:指令MOV AL,[BX],源操作数隐含在数据段;

指令MOV AL,[BP],源操作数隐含在堆栈段

(4)代码段寄存器CS和指令指针寄存器IP不能作为目的寄存器。 例如: MOV CS,AX 和MOV IP,AX 均是错误指令。 3、正确地使用指令,注意指令的功能和操作数的寻址方式。

(1)指令的功能和指令执行后的结果。指令使用不仅包括产生的结果,还有它对标志位的影响。有的指令影响标志位,有的指令不影响标志位。忽略了标志位,指令的应用是不完整的。

(2)在双操作数指令中,不允许同时都是存储器操作数,并且两个操作数的类型应该保持一致。

例如:有数据定义: X DB 11H Y DB ? Z DW 11H

下列指令都是错误的: MOV X,Y 错误 MOV AL,Z 错误

(3)注意一些指令的隐含规定

举例1:规定了操作数类型的指令,如PUSH指令,只允许字操作,不允许字节操作。(PUSH AL 错误)

举例2:移位指令的规定,若移位位数为1位时,可直接表示,如SHL AL,1是正确指令,而SHL AL,2是错误指令(当移位位数超过2位时,应将移位位数放到寄存器CL中),如:

MOV CL,2

SHL AL,CL ;表示对AL左移2位 4、掌握5大类型指令的使用。 传送指令(MOV;PUSH/POP;LEA)

算术运算指令(ADD/ADC;INC;SUB/SBB;DEC;CMP) 逻辑运算与移位指令(AND;OR;XOR;TEST;移位指令) 控制转移指令(JMP;JZ/JNZ;JC/JNC;LOOP) 处理器控制指令(CLC/STC)。 考核要求与形式:

(1) 掌握操作数的寻址方式,如教材P37习题3,4;P115习题2 (2) 掌握指令对状态标志的影响,教材P119习题24(1),(3),(5)

(3) 能辨别所给指令的正确性与非法性,若指令错误的话,应明确错误的原因(如教材习题P38习题10,P116习题3

(4) 掌握常用指令的格式及功能,完成程序段的阅读与分析,如教材P116习题4,6,8,10

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4