文档详情

西安电子科技大学考研复试科目-微机原理与接口技术chap03_02.ppt

发布:2017-06-18约2.85万字共114页下载文档
文本预览下载声明
微机原理及接口技术 第3章 Intel处理器指令系统及汇编语言 本节要点 布尔和比较指令 条件跳转 条件循环指令 条件结构 (一)简介 在汇编语言中如何写一条 IF 语句? 编译器是如何将嵌套的 IF 语句翻译成机器语言的? 如何设置和清除二进制数字中的单个位? 如何对数据进行简单的二进制加密? 如何通知计算机正在比较的是有符号数字还是无符号数字? (二)布尔和比较指令 1. AND 指令 功能:在操作数的对应数据位之间执行布尔(位)“与”操作,并将结果保存在目的操作数中。 格式: AND 目的操作数,源操作数 允许的操作数形式: AND reg,reg AND reg,mem AND mem,reg AND reg,imm AND mem,imm 两个操作数可以是8、16 或 32位的,但它们的尺寸必须相同。 (二)布尔和比较指令 1. AND 指令 影响的标志位: 总是清除 OF 和 CF; 根据结果修改 SF、ZF、PF。 主要用途:对特定的位清“0”,同时保留其它的位。 例: mov al and al (二)布尔和比较指令 1. AND 指令 大写字母与小写字母的 ASCII 码之间的关系: a:61h,A:41h,例:将字符转换位大写形式: (二)布尔和比较指令 2. OR 指令 功能:按位取“或”。 格式:与 AND 指令相同。 主要用途:对特定的位置“1”,并保留其它位。 例: mov al or al (二)布尔和比较指令 2. OR 指令 【例】将0到9之间的整数转换成对应的ASCII码数字。 方法:将位4和位5设置为1。 mov dl,5 ; 二进制值 or dl,30h ; 转换到 ASCII 码 (二)布尔和比较指令 3. XOR 指令 功能:按位取“异或”。 格式:与 AND 及 OR 指令相同。 XOR指令的用途: 对某些位取反,同时不影响其它的位。 判断16位或32位值的奇偶性。 mov ax,64C1h ; 0110 0100 1100 0001 xor ah,al ; PE,奇偶标志被设置 简单数据加密。 将某个操作数与同样的操作数执行两次异或运算后,其值保持不变。 (二)布尔和比较指令 4. NOT 指令 功能:将操作数所有数据位取反,结果为反码。 格式: NOT reg NOT mem 例: mov al not al ; AL = NOT指令不影响任何状态标志。 (二)布尔和比较指令 5. TEST 指令 功能:两操作数按位“与”,根据结果设置标志位,但不回送结果(不修改目的操作数)。 格式:与 AND 指令相同。 用途:测试操作数的某一位是“0”还是“1”。 例子:测试多个位 想知道AL中第0位、第3位是否同时为“0”。 test al ;test bits 0 and 3 判断ZF是否等于1 影响的标志:清除 OF、CF;修改 SF、ZF、PF。 (二)布尔和比较指令 6. CMP 指令 格式:与 AND 指令相同。 cmp 目的操作数,源操作数 功能:与减法指令一样执行减法操作,即 目的操作数-源操作数, 但不回送结果,只影响标志位。 影响的标志:根据相减结果修改 OF、SF、ZF、CF、AF、PF。 无符号操作数的比较: (二)布尔和比较指令 6. CMP 指令 有符号操作数的比较: (二)布尔和比较指令 7. 设置和清除单个CPU标志 例: (三)条件跳转 1. 条件结构 条件分支的实现: 使用 CMP、AND、SUB 之类的指令修改 CPU 标志; 使用条件跳转指令测试标志值,以决定是否向新的分支转移。 例子: (三)条件跳转 2. Jcond指令 功能: 条件标志为真:分支转移到新的目的标号处; 条件标志为假:执行紧跟在条件跳转指令之后的指令。 格式: Jcond 目标地址 例: 限制: 默认情况下,跳转目标应在当前过程之内。可声明全局变量(变量后面跟“::”)来突破这种限制。 跳转目标和跳转指令的下一条指令之间的偏移地址必须在-128到+127字节范围之内。 (三)条件跳转 3. 条件跳转指令的类型 条件转移指令有很多(下面将要介绍30条)。一些指令是冗余的,仅是已存指令的别名。 按照以下条件可将跳转指令分成4组: 根据特定的标志值。 根据操作数之间是否相等,或根据(E)CX的值。
显示全部
相似文档