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

(一)逻辑运算指令

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值