《2022年2022年汇编语言程序设计复 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年汇编语言程序设计复 .pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、汇编语言程序设计复习(续)第 3 章3.3.5.2 条件转移指令1.判断单个标志位状态(1)JZ/JE 和 JNZ/JNE 利用 0 标志 ZF 判断结果是否为0(或相等)例:如果 AL 的最高位为0,则设置 AH=0;如果为 1,则 AH=FFH.TEST AL,80H JZ NEXT0 MOV AH,0FFH JMP DONE NEXT0:MOV AH,0 DONE:(2)JS 和 JNS 利用符号标志是否判断结果是正或负例:计算 XY,X 和 Y为存放于X和 Y单元的 16 位操作数,结果存入RESULT.MOV AX,X SUB AX,Y JNS NONNEG NEG AX NONNE
2、G:MOV RESULT,AX NONNEG:.(3)JPJPE 和 JNPJPO利用奇偶标志PF判断结果中1 的个数是偶或奇数?例:设字符的ASCII 码在 AL寄存器中,将字符加上奇校验位.?And al,7fh;最高位置0,同时判断1 的个数?Jnp next ;个数已位奇数,转 NEXT?Or al,80H ;否则最高位置1(4)JCJBJNAE 和 JNCJNBJAE,利用进位标志CF判断结果是否进位或借位?例:记录BX中 1 的个数.?Xor al,al?Again:test bx,offffh;等价于cmp bx,0?Je next?Shl bx,1?Jnc again?Inc
3、al?Jmp again?Next:2.用于比较无符号数JB/JNAE,JNB/JNE,JBE/JNA,JNBE/JA 3.用于比较有符号数JL/JNGE,JNL/JGE,JLE/JGE,JNLE/JG 3.循环指令(1)JCXZ LABEL(2)LOOP LABEL LOOPZ/LOOPE LABEL LOOPNZ/LOOPNE LABEL 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 3 页 -循环指令采用相对寻址方式,循环的目标地址LABEL是 8 位位移量,循环指令不影响标志。复习教材:例 3.92,3.93,3.94,3.95,3.96,3.97 例:记录附加段中st
4、ring字符串包含空格字符的个数.(设字符串长度为count 字节,结果存入 result单元)?Mov cx,count;设置循环次数?Mov si,0ffset string?Xor bx,bx;bx清 0?Jcxz done?Mov al,20h?Again:cmp al,es:si?Jnz next;zf不等于空格,转?Inc bx;zf等于 1,加空格数?Next:inc si?Loop again Done:mov result,bx 3.3.5.5子程序子程序和主程序可以在同发一个代码段也可在不同段内。子程序调用可以分为段内调用和段间调用CALL目标地址可以采用相对寻址、直接寻址
5、和间接寻址方式;CALL指令要改变CS:IP,还要保存返回地址,以便子程序结束返回。保护 CS:IP 方法是压入堆栈,返回时出栈,一定要正确使用堆栈复习例 3.98 和习题 3.48 3.3.5.6中断(本节要求与第8 章 8.08.3联系在一起)1.80X86 中断分类2.中断向量表3.中断操作的5 个步骤4.如何设置中断向量5.中断例题关于本章复习要求看懂例题外还要复习练习题。第 4 章主要复习内容1.汇编语言程序完整的段的格式,简化的段格式2.伪操作段说明数据定义伪操作;等价伪操作;地址计数器与对准伪操作(ORG,$,等)3.操作项主要掌握常用的:算术操作数,数值回送操作符(TYPE,L
6、ENGTH,SIZE,OFFSET,SEG 等)属性操作符:(PTR,SHORT 等)4.掌握汇编语言程序的上机调试过程及上机过程中产生的几个文件,关于本章复习要求看懂例题外还要复习练习题。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 3 页 -第 5 章循环与分支程序设计本章要求看懂并熟悉10 个例题(例 5.15.10),完成布置的习题).第 6 章 子程序1.过程定义2.子程序参数传递方法例题 6.3,6.4 6.4DOS中断功能调用?使用 DOS系统功能调用?1.在显示器输出一个字符?MOV AH,02H?MOV DL,A?INT 21H?2.在显示器输出一串字符?ST
7、RING DB“HELLO EVERYBODY,$?MOV AH,09H?MOV DX,OFFSET STRING?INT 21H?3.判断按键是Y还是 N(大写)?GETKEY:MOV AH,1?INT 21H?CMP AL,Y?JE YESKEY?CMP AL,N?JE NOKEY?JNE GETKEY?4.从键盘输入一串字符?STRING DB 81?DB 0?DB 81 DUP(0)?MOV DX,SEG STRING?MOV DS,DX?MOV DX,OFFSET STRING?MOV AH,0AH?INT 21H?5.按任意键继续(AH=OBH)?名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 3 页 -