《汇编语言期末复习要点.ppt》由会员分享,可在线阅读,更多相关《汇编语言期末复习要点.ppt(27页珍藏版)》请在三一办公上搜索。
1、8086汇编语言程序设计,1,一、数和编码 1.汇编语言的数;计算机认识的数和汇编语言认识的数;常用进制数及之间的转换(2/10);用“心”区分带符号数和无符号数;补码和溢出判断。2.二进制位串、计算机编码和手指 ASC 码、BCD 码、汉字内码和 UNICODE;数/码之间的转换。,汇编语言期末复习提要,8086汇编语言程序设计,2,8086汇编语言程序设计,3,带符号数的溢出判断:同符号数相加当符号发生变化时即为溢出,此时OF=1。如:(A)10110011+11111101(B)01110000+10111111(C)00110001+00000100(D)00101111+011011
2、11,8086汇编语言程序设计,4,如果(AL)=80H,执行指令CMP AL,24H后,以下结果中正确的是?(A)OF=0,SF=0(B)OF=0,SF=1(C)OF=1,SF=0(D)OF=1,SF=1,8086汇编语言程序设计,5,又如(AL)=94H,执行 ADD AL,0A2H后,以下结果正确的是?(A)(AL)=36H,OF=0(B)(AL)=36H,OF=1(C)(AL)=94H,OF=0(D)(AL)=94H,OF=1,8086汇编语言程序设计,6,无符号数的溢出判断:有进位导致CF=1即为溢出,如:(A)01010011+01001100(B)10110111+0010010
3、1(C)11110011+00001101(D)00110011+11001000,8086汇编语言程序设计,7,二、程序员眼中的计算机 1.冯.诺伊曼计算机的内核模型:,8086汇编语言程序设计,8,2.汇编语言研究起点的思维模型:从 char 及字节型存储单元出发;数字电路的寄存器和 CPU 的寄存器 和单纯用于数据暂存的寄存器不同,CPU 的寄存器带有各种“附加”功能,这些“附加”功能是通过机器指令的执行来实现的。,8086汇编语言程序设计,9,3.8086/8088 CPU 的寄存器,8086/8088 CPU 的内部结构,8086汇编语言程序设计,10,可在存储器寻址中用作地址(偏移
4、量)指针寄存器有:BX、SI、DI、BP 而:mov al,dx add ah,cx 等都是错误的。,8086汇编语言程序设计,11,关于标志寄存器:不可能直接访问;16位寄存器,但只有9位有定义;其中:CF、OF、ZF、PF、SF、AF是真正意义上的“状态标志位”,而TF、IF、DF被用作控制;AF没有对应的条件跳转指令。,8086汇编语言程序设计,12,1.字节单元定位和物理地址,三、存储器寻址方式及堆栈,8086汇编语言程序设计,13,2.CPU 地址信息的两个分量,8086汇编语言程序设计,14,3.访问内存的三种类型:指令读取:CS:IP控制器的眼睛,确定程序流向;堆栈操作:SS:S
5、P以堆栈方式使用内存;数据段访问变量:DS:偏移量;4.寻址方式和常量、变量:立即数寻址方式与汇编语言的常量;直接寻址方式与汇编语言的变量;寄存器间接寻址方式及其扩展形式:访问变量的“准指针”。,8086汇编语言程序设计,15,5.寻址方式:寄存器寻址:xor al,al 立即数寻址方式:mov al,0 mov bx,0 直接寻址方式:sub al,100h add var,al 寄存器间接寻址方式:mov al,si call/jmp ax 相对寄存器寻址方式:基址寻址 mov ax,bp+2 变址寻址 shl byte ptr di+2,cl 基址变址寻址:xchg ax,bx+si 相
6、对基址变址寻址:push varbx+si,8086汇编语言程序设计,16,6.堆栈 堆栈的“生成”和空栈的状态:SP 的初值和堆栈容量、栈顶、栈底的关系;PUSH 和 POP 的行为方式:栈指针 SP 的变化和数据入、出栈;PUSHF 和 POPF 的默认操作数:标志寄存器;堆栈对子程序功能的支持:CALL 和 RET;堆栈对中断功能的支持:中断响应以非指令方式操作堆栈;IRET 和 RET 的异同。,8086汇编语言程序设计,17,1.指令分类 传送类 算术运算类 逻辑运算类 移位及循环移位类 流程控制指令 标志位操作指令2.快捷查询 汇编指令学习.chm 8086 instruction
7、s3.掌握用 debug 学习、研究指令的方法,四、基本指令集,8086汇编语言程序设计,18,假设(AL)=8,执行ADD AL,3后,再执行指令AAA,以下结果正确的是?(A)(AL)=0BH,CF=0(B)(AL)=0BH,CF=1(C)(AL)=01H,CF=0(D)(AL)=01H,CF=1,8086汇编语言程序设计,19,4.特别提示:目标操作数不能为立即数;除了串操作指令外,双操作数不能同为存储器操作数;段寄存器只能:mov ax,dsmov ds,ax push dspop ds PF 只反映运算结果低 8 位“1”的奇偶情况;JCXZ 的跳转仅取决于 CX 值是否为零,和标志
8、位无关。,8086汇编语言程序设计,20,MUL/IMUL/DIV/IDIV 隐含使用 AL/AX/DX:被乘数或被除数;乘积或商及余数。SCAS/LODS/STOS 隐含使用AL和AX寄存器:AL 配合字节串指令使用;AX 配合字串指令使用。IN/OUT 只能使用 AL/AX 与外设交换数据。,8086汇编语言程序设计,21,5.指令对标志位的特别影响 除了 POPF 和 SAHF,数据传送指令不影响标志位;INC、DEC 不影响 CF;AND/OR/XOR 强制 CF=OF=0,AF不确定;NOT、NOP 不影响任何标志位;移位和循环移位指令仅影响 CF 和 OF;MUL/IMUL 影响
9、CF 和OF:CF=OF=1表明高位包含有效数据;DIV/IDEV 不影响标志位;当发生有效调整时,AAA 和 AAS 使 CF=OF=1;AAD/AAM 只影响 ZF、SF 和 PF。,8086汇编语言程序设计,22,如果(AL)=0FFH,执行指令INC AL后,以下结果中正确的是?(A)CF=0 有可能,不确定(B)OF=0(C)ZF=0(D)SF=1,8086汇编语言程序设计,23,6.无条件跳转指令的目标代码操作数和实现跳转的三种方式 单/双字节差值(段内近/远距离直接跳转);偏移量(段内间接跳转);逻辑地址(段间直接/间接跳转)。,8086汇编语言程序设计,24,7.条件转移指令综
10、述 除 AF 外,每个标志位各对应两条单条件转移指令;任何数相等或不等:JE/JZ、JNE/JNZ;无符号数大于:JA/JNBE;涉及:CF、ZF 无符号数大等于:JAE/JNB/JNC;涉及:CF 无符号数小等于:JBE/JNA;涉及:CF、ZF 无符号数小于:JB/JNAE/JC;涉及:CF 带符号数大于:JG/JNLE;涉及:SF、OF、ZF 带符号数大等于:JGE/JNL;涉及:SF、OF 带符号数小等于:JLE/JNG;涉及:SF、OF、ZF 带符号数小于:JL/JNGE;涉及:SF、OF,8086汇编语言程序设计,25,1.带子程序模板的源程序框架:容量固定的堆栈段;空数据段;代码
11、段的特别框架元素:段声明语句;DS 指向当前数据段;4CH DOS 功能调用。用堆栈传递参数的子程序模板;循环结构模板;END 伪指令。,五、程序框架、伪指令和功能调用,8086汇编语言程序设计,26,2.常量和变量定义语句:EQU、=:gain equ 12168 编译程序将符号常量定义语句的定义值作为立即数,取代源程序中所有其他位置的该符号常量;DB、DW、DD及DUP:编译程序根据各变量的排列顺序和所占用的字节数,计算出各变量的偏移量,以直接寻址方式或作为其他寻址方式中偏移量的位移量,取代源程序中所有其他位置的该变量符号。,8086汇编语言程序设计,27,3.其他伪指令 ORG、$:从哪里开始编译和编译到哪里了(偏移量)SEG、OFFSET、TYPE:返回段基值、偏移量和变量类型 NEAR、FAR;BYTE、WORD、DWORD:标号和变量的属性 LABEL(EQU THIS)、PTR:属性设置伪指令4.常用功能调用 01H,02H,09H 和 0AH;各功能使用的寄存器和内存结构;新行功能串:,
链接地址:https://www.31ppt.com/p-6586397.html