为了能到远方,脚下的每一步都不能少.|

Blue Mountain

园龄:10年7个月粉丝:572关注:0

汇编学习(六)——代码转换程序

(一)逻辑运算指令

一、双操作数逻辑运算指令

1、指令格式:

复制代码
AND      dst,src    ; “与”运算,
OR       dst,src    ; “或”运算
XOR      dst,src    ;  “异或“运算。当src = 1是,dst = !dst;当src = 0时,dst = dst
TEST     dst,src    ; “与”运算,但是这个不返回结果,只是改变标志位
;以上四个操作符,都会改变ZF SF 和PF三个标志位
;经常使用TEST配合ZF来判断是否为0
复制代码

 

二、单操作数逻辑运算指令

1、指令格式

NOT dst ;   dst<—!dst
NEG dst ;   取补码

 

(二)移位指令

一、逻辑移位指令

SHR dst,cnt
SHL dst,cnt

二、算数移位指令

SAR dst,cnt
SAL dst,cnt

PS:注意点

1、cnt 是移位的位数,只能为1或者寄存器CL,也就是不是移1位的话,一定要使用寄存器CL

2、会影响OF、ZF、PF和SF标志位,其中OF为1:表示最高位发生变化,OF = 0,最高位没有发生变化

3、算术右移不会改变符号位

三、循环位移指令

ROR  dst,cnt
ROL  dst,cnt

四、带CF循环位移指令

RCR  dst,cnt
RCL  dst,cnt

PS:注意点

1、只影响OF标志位,其中OF为1:表示最高位发生变化,OF = 0,最高位没有发生变化

五、图示表示四个指令的区别

image

 

(三)十六进制转换为BCD码

一、除0AH取余法

image

   所以十六进制数除以0AH的余数就是得到D0,再除就是得到D1,一次类推……

   使用的除法指令要是32位除以16位的,因为商会超过8位。

 

二、除幂取商法

image

   所以十六进制除以10000的商就是D4,再除以1000就是D3,依次类推……

 

三、连二乘法:

image

 

 

(四)除0AH取余法程序

一、程序流图:

image

本文作者:Blue Mountain

本文链接:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/5073590.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Blue Mountain  阅读(1171)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.