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) 返回
3.4.3逻辑运算指令 采用移位和加指令:需T状态 SAL AL. 1 2T X*2 MOV BL AL 2T ADD AL. AL 3T X*4 ADD AL. AL 3T X*8 ADD AL BL 3T X*10 只需13个T状态时间,用MUL指令需要70-77 个T状态时间
3.4.3 逻辑运算指令 采用移位和加指令: 需T状态 SAL AL,1 ; 2T X*2 MOV BL,AL ; 2T ADD AL,AL ; 3T X*4 ADD AL,AL ; 3T X*8 ADD AL,BL ; 3T X*10 只需13个T状态时间,用M U L指令需要70-77 个T状态时间
3.4.3逻辑运算指令 ■例3-1:ASC|1码→BCD码(3版在P?,4版在P95) 35H→05H 33H→03H (1)AND AL, OFH (2)SUB AL, 30H (3)MOV CL, 04 SAL AL, CL
3.4.3 逻辑运算指令 例3-1:ASCII码→BCD码(3版在P?,4版在P95) 35H→05H 33H→03H (1)AND AL,OFH ; (2)SUB AL,30H ; (3)MOV CL,04 ; SAL AL,CL ;