第3章8086指令系统 数据传送指令 算术运算指令 逻辑运算指令 串操作指令 控制传送指令 ·CPU控制指令
第3章 8086指令系统 • 数据传送指令 • 算术运算指令 • 逻辑运算指令 • 串操作指令 • 控制传送指令 • CPU控制指令
3.4|A-32的通用指令(P71) ■8086汇编语言程序举例 MY DATA SEGMENT SUM DB MY DATA ENDS MY CODE SEGMENT ASSUME CS: MY CODE. DS: MY DATA PORTⅤ AL EQU3 MAIN PROC FAR GO: PUSH DS MOV AX.O PUSH AX MOV AX.MY DATA
3.4 IA-32的通用指令(P71) 8086汇编语言程序举例 MY_DATA SEGMENT SUM DB ? MY_DATA ENDS MY_CODE SEGMENT ASSUME CS:MY_CODE,DS:MY_DATA PORT_VAL EQU 3 MAIN PROC FAR GO: PUSH DS MOV AX,0 PUSH AX MOV AX,MY_DATA
3.4|A-32的通用指令(P71) MOV DS.AX MOV SUM,O CYCLE. CMP SUM, 100 JNA NOT DONE MOV ALSUM OUT PORT VALSAL HLT NOT DONE: N AL. PORT VAL ADD SUMAL JMP CYCLE
3.4 IA-32的通用指令(P71) MOV DS,AX MOV SUM,0 CYCLE: CMP SUM,100 JNA NOT_DONE MOV AL,SUM OUT PORT_VAL,AL HLT NOT_DONE: IN AL,PORT_VAL ADD SUM,AL JMP CYCLE
3.4|A-32的通用指令(P71) RET MAIN ENDP MY CODE ENDS END GO 1、汇编语言源程序是分段的,通常每个模块程 序包括数据段、堆栈段和若千代码段。 每个程序结构类似,可以复制
3.4 IA-32的通用指令(P71) RET MAIN ENDP MY_CODE ENDS END GO 1、汇编语言源程序是分段的,通常每个模块程 序包括数据段、堆栈段和若干代码段。 2、每个程序结构类似,可以复制
3.4|A-32的通用指令(P71) 3.4.3逻辑运算指令 AND: OR: NOT. XOR 移位指令: SAL; SAR; SHL, SHR ROL: ROR: RCL: RCR
3.4 IA-32的通用指令(P71) 3.4.3 逻辑运算指令 AND;OR;NOT;XOR 移位指令: SAL;SAR;SHL;SHR ROL;ROR;RCL;RCR
3.4.3逻辑运算指令 ■循环移位 最高位最低位 最高位最低位 CF CF (a)Rol (C)RCL 最高位 最低位 最高位 最低位 CF →CF→ (b)rOr ( d)RCR 返回
3.4.3 逻辑运算指令 循环移位 最高位 最低位 最高位 最低位 返回 CF CF (a) ROL (c) RCL 最高位 最低位 最高位 最低位 CF (b) ROR CF (d) RCR
3.4.3逻辑运算指令 ■从功能示意图可知,RL和R0R在移位时未把CF包含 在循环圈中,而RCL和RCR却把CF包含在循环圈内。 ■4条循环移位指令只影响标志位CF和0F ■用非循环移位指令时,左移一位相当于原数乘2(不 能超过数的表示范围),而右移一位相当于原数除2 当编程乘以或除以某一常数时,采用移位指令执行 速度要快得多。 返回
3.4.3 逻辑运算指令 从功能示意图可知,ROL和ROR在移位时未把CF包含 在循环圈中,而RCL和RCR却把CF包含在循环圈内。 4条循环移位指令只影响标志位CF和OF。 用非循环移位指令时,左移一位相当于原数乘2(不 能超过数的表示范围),而右移一位相当于原数除2。 当编程乘以或除以某一常数时,采用移位指令执行 速度要快得多。 返回
3.4.3逻辑运算指令(P95) ■例:X*10,设X在A中(第3版在P?,第4版在P95) MOV BL 10 MUL BL ■共需70~77个T状态时间(查阅附录1) 返回
3.4.3 逻辑运算指令(P95 ) 例:X*10,设X在AL中(第3版在P?,第4版在P95) MOV BL,10 MUL B L 共需70~77个T状态时间(查阅附录1) 返回