清华大学:《汇编语言程序设计》第三章(3-3) 逻辑指令

逻辑指令: 逻辑运算指令 AND、OR、NOT、XOR、TEST 移位指令 SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR
1 逻辑指令: • 逻辑运算指令 AND、OR、NOT、XOR、TEST • 移位指令 SHL、SHR 、 SAL 、SAR、ROL、ROR、RCL、RCR

罗辑非指令: NOT OPR OPR不能为立即数 执行操作:(OPR)←-(OPR) *不影响标志位 逻辑与指令: AND DST,SRC 执行操作:(DST)←(DsT)∧(SRC) 逻辑或指令: OR DST,SRC 执行操作:(DST)←(DST)v(SRC) CF OF SF ZF PF AF 异或指令: XOR DST,SRC 无定义 执行操作:(DST)←(DST)V(SRC) 根据运算结果设置 测试指令: TEST OPR1,OPR2 执行操作:(OPR1)∧(OPR2)
2 逻辑非指令:NOT OPR * OPR 不能为立即数 执行操作: ( OPR ) ( OPR ) * 不影响标志位 逻辑与指令:AND DST , SRC 执行操作: ( DST ) ( DST ) ( SRC ) 逻辑或指令:OR DST , SRC 执行操作: ( DST ) ( DST ) ( SRC ) 异或指令: XOR DST , SRC 执行操作: ( DST ) ( DST ) ( SRC ) 测试指令: TEST OPR1 , OPR2 执行操作: ( OPR1 ) ( OPR2 ) CF OF SF ZF PF AF 0 0 * * * 无定义 根据运算结果设置 • 逻辑运算指令

水*水水水水 AND AL OFCH AND11111100 例:置AL的第5位为1 水*****水 OR AL 20H OR00100000 例:使AL的第0、1位变反 XOR00000011 XOR AL 3 例:测试某些位是0是1 TEST AL JZ EVEN
3 例:屏蔽AL 的第 0、1 两位 AND AL , 0FCH 例:置AL 的第 5 位为 1 OR AL , 20H 例:使AL 的第 0、1 位变反 XOR AL , 3 例:测试某些位是0 是 1 TEST AL , 1 JZ EVEN * * * * * * * * OR 0 0 1 0 0 0 0 0 * * 1 * * * * * * * * * * * * * XOR 0 0 0 0 0 0 1 1 * * * * * * * * * * * * * * * * AND 1 1 1 1 1 1 0 0 * * * * * * 0 0

多位指 逻辑左移 SHL OPR,CNT CF 逻辑右移 SHR OPR,CNT CF 算术左移 SAL OPR,CNT(同逻辑左移) 算术右移 SAR OPR、CNT CF
4 逻辑左移 SHL OPR , CNT 逻辑右移 SHR OPR , CNT 算术左移 SAL OPR , CNT(同逻辑左移) 算术右移 SAR OPR , CNT CF 0 • 移位指令 0 CF CF

循环右移 ROR OPR,CNT CF 带进位循环左移 RCL OPR,CNT 带进位循环右移 RCR OPR,CNT 5
5 循环左移 ROL OPR , CNT 循环右移 ROR OPR , CNT 带进位循环左移 RCL OPR , CNT 带进位循环右移 RCR OPR , CNT CF CF CF CF

OPR可用除立即数以外的任何寻址方式 CNT=1, SHL OPR CNT>I, MOV CL CNT SHL OPR,CL以SHL为例 条件标志位: CF=移入的数值 1CNT=1时,最高有效位的值发生变化 OF 0CNT=1时,最高有效位的值不变 移位指令: SF、ZF、PF根据移位结果设置,AF无定义 循环移位指令: 不影响SF、ZF、PF、AF
6 注意: * OPR 可用除立即数以外的任何寻址方式 * CNT = 1, SHL OPR , 1 CNT > 1, MOV CL , CNT SHL OPR , CL ; 以 SHL 为例 * 条件标志位: CF = 移入的数值 1 CNT = 1 时,最高有效位的值发生变化 0 CNT = 1 时,最高有效位的值不变 移位指令: SF、ZF、PF 根据移位结果设置,AF 无定义 循环移位指令: 不影响 SF、ZF、PF、AF OF =

(AX)=0012H,(Bx)=0034 把它们装配成(AX)=1234H MOV CL 8 ROL AX CL ADD AX. BX 例:(BX)=84FOH (1)(BX)为无符号数,求(BX)/2 SHR BX 1 (BX)=4278H (2)(BX)为带符号数,求(BX)/2 SAR BX (BX)=0C278H 7
7 例:( AX ) = 0012H,( BX ) = 0034H, 把它们装配成 ( AX ) = 1234H 例:( BX ) = 84F0H (1) ( BX ) 为无符号数,求 ( BX ) / 2 SHR BX , 1 ; (BX) = 4278H (2) ( BX ) 为带符号数,求 ( BX ) / 2 SAR BX , 1 ; (BX) = 0C278H MOV CL, 8 ROL AX, CL ADD AX, BX

(BX)=84F0H,把(BX)中的16位数每4位压入堆 MOV CH 4 循环次数 MOV CL 4 ;移位次数 NEXT: ROL BX CL MOV AX BX AND AX OFH 00000←(SP) PUSH AX 000F DEC CH 0004 JNZ NEXT 0008
8 MOV CH , 4 ; 循环次数 MOV CL , 4 ; 移位次数 NEXT: ROL BX , CL MOV AX , BX AND AX , 0FH PUSH AX DEC CH JNZ NEXT 0008 0004 000F 0000 ( SP ) (3) ( BX ) = 84F0H,把( BX ) 中的 16 位数每 4 位压入堆栈

串处理指 设置方向标志指令 CLD、STD 。串处理指令 串重复前缀 MOVSB/ MOVSW REP STOSB STOSW REPE/ REPZ LODSB/ LODS W REPNE/ REPNZ CMPSB/ CMPSW SCASB/ SCASW
9 串处理指令: • 设置方向标志指令 CLD、STD • 串处理指令 • 串重复前缀 MOVSB / MOVSW REP STOSB / STOSW REPE / REPZ LODSB / LODSW REPNE / REPNZ CMPSB / CMPSW SCASB / SCASW

REP配合工作的MOVS/STOS/LODS REP MOVS/ STOS/ LODS 执行操作 (1)如(CX)=0则退出REP,否则转(2) (2)(CX)←(CX)-1 (3)执行MOVS/STOs/LODs (4)重复(1)~(3)
10 与 REP 配合工作的 MOVS / STOS / LODS REP MOVS / STOS / LODS 执行操作: (1) 如 ( CX ) = 0 则退出 REP,否则转(2) (2) ( CX ) ( CX ) - 1 (3) 执行 MOVS / STOS / LODS (4) 重复 (1) ~ (3)
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学:《汇编语言程序设计》第三章(3-2) 8086的指令系统.ppt
- 清华大学:《汇编语言程序设计》第三章(3-1) 8086的寻址方式.ppt
- 清华大学:《汇编语言程序设计》第七章 高级汇编语言技术.ppt
- 清华大学:《汇编语言程序设计》第一章 基础知识.ppt
- 清华大学:《汇编语言程序设计》汇编语言程序与高级语言程序的连接.ppt
- 徐州工程学院:《网页制作与网站建设》讲义.docx
- 《计算机进程管理》讲义.ppt
- 《计算机辅助设计——机电系统CAD》教学讲义教材:附录二 常见机械CAD软件简介.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:附录一 MATLAB 软件简介.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第八章 机电系统计算机辅助设计的发展.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第七章 机电系统的智能设计理论和方法.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第六章 产品数据管理技术.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第五章 机械产品模型理论及常用建模技术.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第四章 机电系统动态性能的计算机仿真.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第三章 机电系统的计算机辅助分析.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第二章 机电系统CAD算法基础.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:第一章 绪论.doc
- 《计算机辅助设计——机电系统CAD》教学讲义教材:目录.doc
- 《计算机组装与维护》第十章 电源和机箱.ppt
- 《计算机组装与维护》第四章 主板-教案.doc
- 清华大学:《汇编语言程序设计》第九章 BIOS和DOS中断.ppt
- 清华大学:《汇编语言程序设计》第二章 80x86计算机组织.ppt
- 清华大学:《汇编语言程序设计》第五章 循环与分支程序设计.ppt
- 清华大学:《汇编语言程序设计》第八章 输入输出程序设计.ppt
- 清华大学:《汇编语言程序设计》第六章 子程序结构.ppt
- 清华大学:《汇编语言程序设计》第四章 汇编语言程序格式.ppt
- 清华大学:《汇编语言程序设计》绪论.ppt
- 《数据库原理与应用》ppt电子书.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第二章 C++基础知识.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第九章 多态性.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第十章 模板.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第四章 函数.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第十二章 异常处理.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第五章 类与对象.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第七章 动态内存分配.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第八章 继承性.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第十三章 图书馆设计.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第三章 基本控制结构程序设计.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)第六章 数据结构.ppt
- 《C++程序开发教程》课程电子教案(PPT教学课件)习题课.ppt