汇编语言笔记——位操作指令

    技术2022-07-12  98

    逻辑运算指令

    AND逻辑与运算CF=OF=0,SF、ZF、PF根据结果设置OR逻辑或运算同上XOR逻辑异或运算,相同为0,不同为1同上NOT逻辑非指令,按位取反不影响标志位TEST测试与指令,结果不送入目的操作数,但影响标志位

    移位指令

    左移1位,相当于乘2。进位由CF反映; 右移一位,相当于除以2,商在目的操作数中,余数由CF反映。 逻辑移位适用于无符号数的移位处理;算术移位适用于带符号数的移位处理

    SHL逻辑左移,最高位进入CF,最低为补0按移入的位设置CF,根据移位后结果设置SF、ZF、PFSHR逻辑右移,最低位进入CF,最高位补0同上SAL算术左移,与逻辑左移相同同上SAR算术右移,最低为进入CF,最高位不变同上

    移位指令 操作数,移位数

    移位数=1,则直接用1表示。若移位前后最高位不同,则OF=1;移位数>1,用CL寄存器值表示,OF不确定

    可以利用移位指令实现数据的乘除。

    循环移位

    ROL不带进位循环左移CF拍照,不影响循环。不影响SF、ZF、PF、AF;移动1位,最高位不同,OF=1;移动多位,不确定ROR不带进位循环右移同上RCL带进位循环左移将CF作为最高位,参与循环RCR带进位循环右移同上

    tips:没考虑到的是CF是两个寄存器共用的。

    课后作业

    提高安全性,防止暴力破解。

    Processed: 0.014, SQL: 9