汇编移位指令复习「建议收藏」 |
您所在的位置:网站首页 › 汇编语言shr指令 › 汇编移位指令复习「建议收藏」 |
大家好,又见面了,我是你们的朋友全栈君。 前言吐槽一下下,汇编指令真的好多呀,学了这么多可是记住的却没几个,所以写下这篇文章加深对汇编移位指令的理解和记忆 文章目录 前言1、逻辑移位指令 逻辑左移 SHL逻辑右移 SHR2、算术移位指令 算数左移 SAL算术右移 SAR3、循环移位指令 循环左移 ROL循环右移 ROR4、注意点1、逻辑移位指令逻辑移位指令适用于带符号数运算 逻辑左移 SHL指令格式:SHL OPR,CNT 💖PR:是指被移位的操作数 💖 CNT:是指移位次数 汇编移位指令复习「建议收藏」比如将二进制数 1100 1111 左移 1 位,该数就变为 1001 1110,cf=1: 汇编移位指令复习「建议收藏」代码 MOV AL,0CFh SHL AL,1逻辑右移 SHR指令格式:SHR OPR,CNT 汇编移位指令复习「建议收藏」下图所示为二进制数 1100 1111 逻辑右移一位,得到 01100111,最低位移入进位标志位,cf=1: 汇编移位指令复习「建议收藏」代码 MOV AL,0CFH SHR AL,12、算术移位指令算术移位指令适用于无符号数运算 算数左移 SAL指令格式:SAL OPR,CNT 🌺 算数左移和逻辑左移完全一样哒,这里就不多说了 算术右移 SAR指令格式:SAR OPR,CNT 汇编移位指令复习「建议收藏」例如,二进制数 1100 1111,符号位为 1。算术右移一位后,得到 1110 0111: 汇编移位指令复习「建议收藏」代码 MOV AL,0CFH SAR AL,13、循环移位指令循环左移 ROL指令格式:ROL OPR,CNT 汇编移位指令复习「建议收藏」比如将二进制数 1100 1111 循环左移 4 位,该数就变为1111 1100,cf=0: 代码 MOV CL,4 MOV AL,0CFH ;AL = 11001111b ROL AL,4 ;左移1位:10011111b, cf=1 ;左移2位: 00111111b, cf=1 ;左移3位:01111110b, cf=0 ;左移4位:11111100b, cf=0循环右移 ROR指令格式:ROR OPR,CNT 汇编移位指令复习「建议收藏」比如将二进制数 1100 1111 循环右移 4 位,该数就变为 11111100,cf=1: 代码 MOV CL,4 MOV AL,0CFH ;AL = 11001111b ROR AL,4 ;右移1位:11100111b, cf=1 ;右移2位: 11110011b, cf=1 ;右移3位:11111001b, cf=1 ;右移4位:11111100b, cf=14、注意点移位次数由CNT决定,它的取值为1或者CL (1)CNT=1时,只移动一位 MOV BL,8Fh ; BL = 10001111b SHL BL,1 ;移位后 BL = 00011110b(2)CNT > 1时,则在使用移位指令前,应首先将移位次数送给CL寄存器 MOV BL,8Fh ; BL = 10001111b MOV CL,2 SHL BL,CL ;移位后 BL = 00111100b发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141724.html原文链接:https://javaforall.cn |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |