展开全部
只要在汇编程序开关加上 .286 或 .386 或 .486 ,……
可以用大于1的立即数作为右移位数,例如:
.286 ;;请留意,286左边有个点
CODES SEGMENT
ASSUME CS:CODES,DS:CODES
START: MOV AL, 0FFH
SHR AL ,6
INT 3
CODES ENDS
END START
;;AL初值 =FFH= 1111 1111b
;;执行SHR AL,6 ,右移6位,结果AL =03H =0011B
;;以上源程序编译链接生成EXE可执行程序,在WIN7的DOS中,用 debug 运行通过。
可以用大于1的立即数作为右移位数,例如:
.286 ;;请留意,286左边有个点
CODES SEGMENT
ASSUME CS:CODES,DS:CODES
START: MOV AL, 0FFH
SHR AL ,6
INT 3
CODES ENDS
END START
;;AL初值 =FFH= 1111 1111b
;;执行SHR AL,6 ,右移6位,结果AL =03H =0011B
;;以上源程序编译链接生成EXE可执行程序,在WIN7的DOS中,用 debug 运行通过。
展开全部
16位汇编就是这么规定的。32位汇编就可以用立即数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当时,比尔·盖茨还太年轻。
后来的版本,就好了。
比如你写一条:
SHR AX, 4
它就给你编译成四条的机器码:
SHR AX, 1
SHR AX, 1
SHR AX, 1
SHR AX, 1
后来的版本,就好了。
比如你写一条:
SHR AX, 4
它就给你编译成四条的机器码:
SHR AX, 1
SHR AX, 1
SHR AX, 1
SHR AX, 1
追问
原来如此。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-11-23 · 知道合伙人教育行家
关注
展开全部
移位位数大于一要用CL指定移位位数,而不能直接用立即数,是因为那是最开始的老版本了,后来的新版本已经可以实际直接用立即数了。
移位操作指令是一组经常使用的指令,属于汇编语言逻辑指令中的一部分,它包括移位指令(含算术移位指令、逻辑移位指令),循环移位指令(含带进位的循环移位指令),双精度移位指令三大类。其功能为将目的操作数的所有位按操作符规定的方式移动1位或按寄存器CL规定的次数(0~255)移动,结果送入目的地址。目的操作数是8位(或16位)的寄存器数据或存储器数据。
一般格式 移位操作符(如SHR) OPR,CNT.
其中OPR用除立即数外的任何寻址方式。移位次数由CNT决定,在8086中可以是1或CL,CNT为1时只移一位;如果需要移位的次数大于1时,需要先将移位次数存入CL寄存器中,而移位指令中的CNT写为CL即可。在其他机型中可使用CL和CNT,且CNT的值除可用1外,还可以用8位立即数指定范围从1到31的移位次数。有关OPR和CNT的规定适用于以下所有指令操作。具体格式如下所述。以逻辑右移为例。
如:MOV AX,62H
SHR AX,1
当移位数大于1时,需要先将移位数放进CL中然后再进行移位操作。
如:MOV AL,62H
MOV CL,4
SHR AL,CL
条件标志位
CF(进位标志) = 移入的数值
1 CNT=1时,最高有效位的值发生变化
0 CNT=1时,最高有效位的值不变
移位指令:
SF(符号标志)、ZF(零标志)、PF (奇偶标志)根据移位结果设置,AF(辅助进位标志)无定义
循环移位指令:
不影响 SF、ZF、PF、AF
条件标志位应用于具体的操作数中使用,以下叙述中未详细写明,初学者可不予理会。
移位操作指令是一组经常使用的指令,属于汇编语言逻辑指令中的一部分,它包括移位指令(含算术移位指令、逻辑移位指令),循环移位指令(含带进位的循环移位指令),双精度移位指令三大类。其功能为将目的操作数的所有位按操作符规定的方式移动1位或按寄存器CL规定的次数(0~255)移动,结果送入目的地址。目的操作数是8位(或16位)的寄存器数据或存储器数据。
一般格式 移位操作符(如SHR) OPR,CNT.
其中OPR用除立即数外的任何寻址方式。移位次数由CNT决定,在8086中可以是1或CL,CNT为1时只移一位;如果需要移位的次数大于1时,需要先将移位次数存入CL寄存器中,而移位指令中的CNT写为CL即可。在其他机型中可使用CL和CNT,且CNT的值除可用1外,还可以用8位立即数指定范围从1到31的移位次数。有关OPR和CNT的规定适用于以下所有指令操作。具体格式如下所述。以逻辑右移为例。
如:MOV AX,62H
SHR AX,1
当移位数大于1时,需要先将移位数放进CL中然后再进行移位操作。
如:MOV AL,62H
MOV CL,4
SHR AL,CL
条件标志位
CF(进位标志) = 移入的数值
1 CNT=1时,最高有效位的值发生变化
0 CNT=1时,最高有效位的值不变
移位指令:
SF(符号标志)、ZF(零标志)、PF (奇偶标志)根据移位结果设置,AF(辅助进位标志)无定义
循环移位指令:
不影响 SF、ZF、PF、AF
条件标志位应用于具体的操作数中使用,以下叙述中未详细写明,初学者可不予理会。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询