专栏首页Linux驱动汇编指令-bic(位清除)、orr(位或)(3)

汇编指令-bic(位清除)、orr(位或)(3)

1. bic  (Bit Clear)位清除指令 bic指令的格式为: bic{条件}{S}  Rd,Rn,operand 

bic指令将Rn 的值与操作数operand2 的反码按位逻辑”与”,结果存放到目的寄存器Rd 中。

指令示例:

bic R0,R0,#0x1F ;    //将R0最低5位清零,其余位不变。

2.orr 位或指令

orr指令的格式为: orr{条件}{S}  Rd,Rn,operand 

orr指令将Rn 的值与操作数operand2按位逻辑”或”,结果存放到目的寄存器Rd 中。

指令示例:

orr R0,R0,#0xd3 ;将R0的第[7:0]位与b'1101 0011按位或,并保存在R0中

3.eor异或指令(exclusive or)

eor指令的格式为: eor{条件}{S}  Rd,Rn,operand 

eor指令将Rn 的值与操作数operand2按位逻辑”异或”,相同为0,不同为1,结果存放到目的寄存器Rd 中。

4.设置2440位管理模式,实例:

mrs    r0,cpsr                         // 读状态寄存器cpsr的数据到r0中
bic    r0,r0,#0x1f                     // 对r0低5位进行清0,清除模式位
orr	r0,r0,#0xd3                    // 低8位或(110 10011), 设为管理(svc32)模式,禁止IRQ和FIQ中断
msr	cpsr,r0                        // 写入状态寄存器cpsr,更新。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 第2阶段——编写uboot之启动内核和制作Makefile(2)

    目标: 1   添加头文件setup.h和serial.h 2   写main函数       2.1 帮内核设置串口0, (内核启动会打印出启动信息)    ...

    张诺谦
  • 汇编指令-adr与ldr伪汇编区别(8)

    adr :相对寻址,与当前位置有关 ldr  :绝对寻址,与当前位置无关 在初始化SDRAM时就会用到adr,代码如下: /* 初始化SDRAM ...

    张诺谦
  • 35.Linux-分析并制作环形缓冲区

    在上章34.Linux-printk分析、使用printk调试驱动里讲述了:  printk()会将打印信息存在内核的环形缓冲区log_buf[]里, 可以通...

    张诺谦
  • 【干货】DeepMind 研究科学家深度生成模型报告,视频+PPT一文全揽最新前沿进展(附下载)

    【导读】DeepMind 统计机器学习科学家Shakir Mohamed和Danilo Rezende在UAI2017大会上介绍了深度生成模型(Deep Gen...

    WZEARW
  • JavaRMI Of Linux and Window

    AlicFeng
  • 实时Web日志分析器

    GoAccess 是一个开源的实时Web日志分析器和交互式查看器,可在*nix系统上的终端或通过浏览器运行。它为系统管理员提供了实时而有价值的HTTP统计信息。

    YP小站
  • 上海游谷网络科技CEO张辉:数据创造电视游戏新机遇(内附视频&PPT)

    数据猿导读 电视游戏行业实际上是有机会的,但是机会是留给那些有耐心,有毅力,有能力的人。 ? 作者 | 张辉 伴随应用商店和社交网络的兴起,游戏市场规模空前扩大...

    数据猿
  • LSA3过滤

    1. 在R2上过滤LSA3,192.168.10.0/24路由不宣告进Area2,Area1的其他路由允许进入Area2(在in方向)

    py3study
  • Python基础之变量和变量实现的简单乘

    上篇我们知道了关于python的一个hello world的简单程序代码,现在我们来了解关于python里面的变量,我们来了解下,变量是什么?

    py3study
  • 2019年AI大事件票选:量子霸权、黑洞照片、华为备胎等

    圣母大学计算机系终身副教授一家人遭两名劫匪抢去汽车,在不到24小时之内,这名教授和博士生二人通过手机发动应用程序和计算机算法中的“贪心算法”,成功将车找回。

    新智元

扫码关注云+社区

领取腾讯云代金券