已知: DAT1 LABEL BYTE ;LABEL 表示这里不是定义变量空间,而是定义一个符号,对应的变量是后面真正的变量 DAT2 DW 0ABCDH 依次执行SHL DAT1,1和SHR DAT
股识吧

上证shashr单双是什么,关于SHR的问题

  阅读:6202次 点赞:20次 收藏:12次

一、关于SHR的问题

已知:
DAT1 LABEL BYTE
;
LABEL 表示这里不是定义变量空间,而是定义一个符号,对应的变量是后面真正的变量 DAT2 DW 0ABCDH 依次执行SHL DAT1,1和SHR DAT2,1指令后,DAT2字存储单元中的内容是? 要注意一点,这里的数据只有2个字节,因为是小端数据,所以从低地址开始依次是 0xCD,0xAB, DAT1是第一个字节开始的BYTE型变量(0xCD),DAT2 是第一个字节开始的字变量(0xAB), 所以执行SHL DAT1,1以后,这里的数据变成: 0x9A,0xAB 执行SHR DAT2,1指令后,数据变成: 0xCD,0x55 这时DAT2所表示的数据就是0x55CD了

关于SHR的问题


二、汇编,SHR指令

现实世界的对称性是有限的,不会有无限的对称。
比如,加法与减法是一对关系极为密切的运算,但加法中两个数可以交换次序(交换律),减法就不行。
二进制数的左移与右移也类似。
算术移位与逻辑移位,既有相同点,也有不同点。
相同点是:在不溢出的时候,都是左移等于乘以2,右移等于除以2(忽略余数)。
不同点是:算术移位是将数据看成是有正有负的补码数时候的运算,逻辑移位是将数据看成是无符号数。
左移时,算术移位和逻辑移位最右端都是用0补充,操作相同,所以指令等价。
右移时,两者最左端用什么数补充的情况不一样,所以指令不同。
若论根源,这与补码的编码方法跟原码的关系有关。
如果不是使用补码,而是使用原码、反码等其它编码方式,指令功能就会不一样。

汇编,SHR指令


三、Shrft是什么意思

Shriftn.忏悔;
悔悟;
临终忏悔;
招认;
双语对照例句:1.Creatures less useful or adaptable get short shrift: the extinction rate is running far higherthan during normal geological periods. 没什么用处或者适应能力差的生物遭受冷遇:灭绝率远高于正常地质时期的时候。
2.Given notably short shrift in campaign manifestos are policies to respond to what voterssay they want most. 竞选宣言中短暂的某些忏悔是对选民说出他们最需要什么的反应性政策

Shrft是什么意思


四、汇编SHR求解

CODE SEGMENT ASSUME CS:CODE START: MOV AL,3EH ;
将十六进制3E送到AL中 MOV BL,AL ;
再送到BL中,BL中也是3E,主要是后面要用,先保存一下 MOV DL,AL ;
再送到DL中,DL中也是3E MOV CL,4 ;
设置CL为4,为下面的SHR做准备,表示右移4位 SHR DL,CL ;
SHR(shift right)右移,CL中存有右移的次数,4次 CMP DL,9 ;
右移之后和9比较,cmp(compare) JBE NEXT1 ;
JBE(jump below and equal)小于等于9就跳到NEXT1处 ADD DL,7 ;
如果DL中的数大于九,就将DL加7 NEXT1: ADD DL,30H ;
将DL加30H转换成字符的ASCII码,0的ascii码是30H,9是39H MOV AH,2 ;
调用dos的2号中断,显示DL中的字符 INT 21H ;
显示高位ASCII码 MOV DL,BL ;
将BL中的数再重新给DL,这里就体现了上面要复制给BL的意义 AND DL,0FH ;
AND(逻辑与),取DL的低四位,上面SHR取得是高四位 CMP DL,9 ...CODE SEGMENT ASSUME CS:CODE START: MOV AL,3EH ;
将十六进制3E送到AL中 MOV BL,AL ;
再送到BL中,BL中也是3E,主要是后面要用,先保存一下 MOV DL,AL ;
再送到DL中,DL中也是3E MOV CL,4 ;
设置CL为4,为下面的SHR做准备,表示右移4位 SHR DL,CL ;
SHR(shift right)右移,CL中存有右移的次数,4次 CMP DL,9 ;
右移之后和9比较,cmp(compare) JBE NEXT1 ;
JBE(jump below and equal)小于等于9就跳到NEXT1处 ADD DL,7 ;
如果DL中的数大于九,就将DL加7 NEXT1: ADD DL,30H ;
将DL加30H转换成字符的ASCII码,0的ascii码是30H,9是39H MOV AH,2 ;
调用dos的2号中断,显示DL中的字符 INT 21H ;
显示高位ASCII码 MOV DL,BL ;
将BL中的数再重新给DL,这里就体现了上面要复制给BL的意义 AND DL,0FH ;
AND(逻辑与),取DL的低四位,上面SHR取得是高四位 CMP DL,9 ;
下面就和上面一样了,解释也都一样 JBE NEXT2 ADD DL,7 NEXT2: ADD DL,30H MOV AH,2 INT 21H ;
显示低位ASCII码 ;
到这里就全部显示出来了 MOV AH,4CH ;
从这里开始就是一般固定的结束格式了,调用dos的4号中断返回 INT 21H CODE ENDS ;
返回DOS END STAR

汇编SHR求解


五、汇编,SHR指令

我想你之所问这个肯定是看到 许多高级语言写的程序反汇编 会出现这种情况 正是因为这样 高级语言的执行效率不如汇编来的高 【指令周期太长】

汇编,SHR指令


六、SHL AX,CL是什么意思,SHR BX,CL 又是什么意思?

SHL是汇编的右移运算SHLAX,CL表示将AX的内容右移CL个SHRBX,CL表示将BX的内容左移CL个

SHL AX,CL是什么意思,SHR BX,CL 又是什么意思?


参考文档

下载:上证shashr单双是什么.pdf《一个股票在手里最多能呆多久》《德新交运股票停牌多久复牌》《股票转账多久到账》下载:上证shashr单双是什么.doc更多关于《上证shashr单双是什么》的文档...
我要评论