组成与汇编实验指导书(8)

2018-11-18 21:38

计算机组成原理与汇编语言实验指导书

(2)对OF、CF、AF无定义,根据AL的寄存器的值设置SF、ZF、PF; (3)调整方法:

(AL)=0AH×(AH)+(AL) (AH) =0 例:(AX)=0504H (BL)=03H

(1) (AL)*(BL)

MUL BL ;(AX)=000CH

AAM ;(AH)=01H (AL)=02H

(2) (AX)/(BL)

AAD ;(AH)=00H (AL)=36H

DIV BL ;(AH)=00H (AL)=12H AAA ;(AH)=01H (AL)=08H

6. 逻辑运算指令

★AND 逻辑―与‖指令

格式:AND dest, src

功能:目的操作数dest与源操作数src按位进行与运算,结果保存在目的操作数dest中。 说明

(1) src可以取立即数、寄存器、存储器;dest可以取寄存器、存储器;src、dest

不能同时为存储器操作数; (2) 对标志位的影响:CF=OF=0, AF未定义,SF、PF、ZF根据运算结果进

行设置; (3)―与‖指令的用途:

? 清CF、OF,自己―与‖自己,操作数不变,CF=OF=0; 例:AND AL,AL ;结果:操作数不变,CF=OF=0 ?

使操作数中若干位保持不变,若干位与―1‖相与;而若干位置为―0?―的场合,

若干位与―0‖?相与;

AND AL, 0FH

(AL)=03H,(AL)0~3不变,(AL)4~7=00H,屏蔽高4位。

例: 若(AL)=43H

★TEST 测试指令 格式:TEST dest,src

功能:目的操作数dest与源操作数src按位进行与运算,结果不保存,只根据运算结果设置相应的标志位。 说明

(1) 参考AND指令说明;

(2) 应用:常常用来检测一些条件是否满足,但又不希望改变原有的操作数,常在此指令后边加一条条件转移指令。

例:判断内存单元A单元中数据的奇偶性 设: (XWANG )= 0AEH

- 16 -

计算机组成原理与汇编语言实验指导书

程序: MOV AL,XWANG

TEST AL,01H JZ EVEN ??

;(AL)=0AEH

;结果=0为偶数转EVEN

奇数处理 ?? EVEN:偶数处理

功能:检测(AL)的最低位是否为0,若为0转EVEN ★OR 逻辑―或‖指令

格式:OR dset, src

功能:目的操作数dest和源操作数src按位进行或运算,运算结果保存在dest中。 说明

(1)src可以取立即数、寄存器、存储器;dest可以取寄存器、存储器;src、dest

不能同时为存储器操作数; (2)对标志位的影响:CF=OF=0, AF未定义,SF、PF、ZF根据运算结果进行设置;

(3)与指令的用途:

? 清CF , 自己与自己―或‖,操作数不变,CF=0 例: OR AL,AL ;(AL)不变,CF=0 ? ?

使某个操作数若干位保持不变,若干位与―0‖或 ;而若干位置1,若干位

与―1‖或 。

将两个操作数信息组合。

若(AL)=03H,用OR指令组合使(AL)=33H=‘3‘?。 OR AL,30H ;(AL)=33H ★XOR 逻辑―异或‖指令 格式:XOR dset, src

功能:目的操作数dest和源操作数src按位进行异或运算,运算结果保存在dest中。 说明

(1) src可以取立即数、寄存器、存储器;dest可以取寄存器、存储器;src、dest

不能同时为存储器操作数; (2) 对标志位的影响:CF=OF=0, AF未定义,SF、PF、ZF根据运算结果进

行设置; (3) 异或指令的用途:

? 用途:对某些特定位求反,某些特定位与―1‖??

其余位保持不变,保持不变与―0‖?? 。

例:将(AL)中的第1、3、5、7位求反,0、2、4、6位保持不变。

MOV AL,0FH XOR AL,0AAH ★NOT 逻辑―非‖指令 格式:NOT dest

- 17 -

计算机组成原理与汇编语言实验指导书

功能:对目的操作数dest按位进行求反运算,运算结果保存在dest中。

说明

(1) 操作数可以为寄存器、存储器,不能是立即数。

(2) NOT对dest进行求反,未位加1,则可以得到dest的补码。 (3) 对标志位无影响。 7. 移位指令

★SHL/SAL 逻辑左移/算术左移指令 格式:SHL/SAL dest,cnt

功能:目的操作数dest中的各位二进制数分别向左边移动cnt位,最后移出的最高位放入CF标志位,低位补cnt个0。如图所示: 说明

CF 0

(1)SHL/SAL指令每移动1位,相当于无符号数乘以2; ★SHR 逻辑右移指令 格式:SHR dest,cnt

功能:目的操作数dest中的各位二进制数分别向右边移动cnt位,最后移出的最低位放入CF标志位,高位补cnt个0。如图所示:

说明

0 CF (1)SHR指令每移动1位,相当于无符号数除以2; ★SAR 算术右移指令

格式:SAR dest,cnt

功能:目的操作数dest中的各位二进制数分别向右边移动cnt位,最后移出的最低位放入CF标志位,高位补cnt-1个0,最高位保持不变。如图所示:

CF说明

(1)SAR指令每移动1位,相当于无符号数除以2;

★ROL 不含CF循环左移指令 格式:ROL dest,cnt

功能:目的操作数dest中的各位二进制数分别向左边循环移动cnt位,最后移出的最高位放入CF标志位和最低位。如图所示:

说明

CF - 18 -

计算机组成原理与汇编语言实验指导书

(1) 移动8次后操作数还原;

(2) 对OF、CF的设置规定如下:

? 左循环移动1次后:

如果移位后,最高有效位与CF不等,则:OF = 1,否则:(无变化时)OF = 0

CF等于移位前dest中符号位;

? 左循环移动多次后:

OF 值不定。CF=从目标操作数移出的最后一位。

? 对SF、ZF、PF、AF无定义。 ★ROR 不含CF循环右移指令 格式:ROR dest,cnt

功能:目的操作数dest中的各位二进制数分别向右边循环移动cnt位,最后移出的最低位放入CF标志位和最高位。如图所示:

说明

(1)移动8次后操作数还原;

(2)对OF、CF的设置规定如下:

? 右循环移动1次后:

如果移位后,最高位与次高位不相等,则OF=1,否则:OF=0。

CF等于移位前dest中最低位二进制数; ? 右循环移动多次后:

OF 值不定。CF=从目标操作数移出的最后一位。 ? 对SF、ZF、PF、AF无定义。 ★RCL 含CF循环左移指令 格式:RCL dest,cnt

功能:连同CF标志位一起,CF作为最高位,dest作为低8位,9位二进制数循环向左边移动cnt位,如图所示:

CF

CF

说明

(1) 左移9次后操作数还原; (2) 对CF和OF的影响见ROL; ★RCR 含CF循环右移指令 格式:RCR dest,cnt

功能:连同CF标志位一起,CF作为最低位,dest作为高8位,9位二进制数循环向右边移动cnt位,如图所示:

- 19 - CF

计算机组成原理与汇编语言实验指导书

说明

(1)右移9次后操作数还原;

(2)对CF和OF的影响见ROR;

三、算术逻辑运算和移位指令的有关说明

1. 不论程序中给出的是何种进制的数值,在程序执行时,运算指令都按照二进制数的运算规律进行数值的运算,运算的结果都为二进制数; 2. 加法与减法运算OF、CF的讨论:

加法:

OF=1,表示两个同符号数相加,结果符号与其相反,产生溢出,即运算结果错误; OF=0,表示两个同符号数相加,结果符号与其相同,不产生溢出;或两个异号数相加,不可能溢出。

CF=1,表示两个无符号数相加产生溢出,但结果并没有错,只是结果放不下。 CF=0,表示两个无符号数相加不产生溢出,结果正确; 减法:

OF=1,表示两个带符号数符号相反,进行减法运算,结果符号与减数相同,则运算结果发生溢出。

OF=0,表示两个带符号数符号相反,或两个带符号数符号相同,进行减法运算,运算结果不发生溢出;

CF=1,表示两个不带符号数进行减法运算,结果发生溢出。即CF=1,表示减数>被减数,有借位;CF=0,表示被减数>减数,无借位; 3. 用SAR指令与用IDIV指令做除法的区别:

用SAR指令做除法(对负数向下舍入):

MOV AX ,81H SAR AX,1 MOV AX,81H MOV CL,2

;(AX) = -127 ;(AX)= - 64

;(AX)= -127

用IDIV指令做除法(IDIV指令对负数向上舍入) :

IDIV CL

四、例题讲解

;(AL)= -63 ,(AH)= -1

1. 应用举例,求绝对值:在内存中,从WANG开始存放100个带符号数,求各数的绝对值存于XIAO的开始单元。 LEA

SI,WANG

LEA DI,XIAO

MOV CX,100 MOV AL,[SI]

OR AL,AL

;(AL)内容不变,置标志

CHECK:

JNS NEXT ;SF=0转NEXT

- 20 -


组成与汇编实验指导书(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:在财务报表审计中应如何进行风险评估

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: