ARM base instruction -- movn

Move wide with NOT moves the inverse of an optionally-shifted 16-bit immediate value to a register.

使用NOT将可选移位的16位即时值的倒数移动到寄存器。

即把立即数移动寄存器前先把寄存器清零,并反转16位立即数移到目标寄存器。

反转操作是对立即数按位取反操作。

32-bit variant

MOVN <Wd>, #<imm>{, LSL #<shift>}

64-bit variant

MOVN <Xd>, #<imm>{, LSL #<shift>}

<imm>

For the 32-bit variant: is a 32-bit immediate, the bitwise inverse of which can be encoded in

"imm16:hw", but excluding 0xffff0000 and 0x0000ffff.

For the 64-bit variant: is a 64-bit immediate, the bitwise inverse of which can be encoded in

"imm16:hw".

Operation

bits(datasize) result;

result = Zeros();

result<pos+15:pos> = imm16;

result = NOT(result);

Xd = result;

从C语言理解这个NOT:

NOT是一个逻辑运算符,用于对一个布尔值进行取反操作。它的作用是将一个为真的条件转换为假,或将一个为假的条件转换为真。

除了逻辑非运算符(!),C语言还提供了其他一些位运算符,如按位取反运算符(~),用于对一个整数进行按位取反操作,按位取反运算符将每个二进制位上的0变为1,将每个二进制位上的1变为0。

此处Operation中的NOT为取反运算符(~)。

相关推荐
水饺编程5 天前
第2章:Linux 基础,解压缩【.tar.bz2】压缩包文件
linux·c语言·汇编
Zevalin爱灰灰5 天前
Linux入门第二部分(ARM裸机篇) 第二章 Cortex-A7 MPCore架构与ARM汇编基础
linux·汇编·arm开发·嵌入式
Zevalin爱灰灰6 天前
Linux入门第二部分(ARM裸机篇) 第三章 汇编LED驱动实验
linux·汇编·arm开发
水饺编程7 天前
第2章:Linux 基础,制作【.tar.xz】压缩包文件
linux·c语言·汇编
小向是个Der9 天前
嵌入式进阶——编译与链接
汇编·单片机·学习·编译原理·交叉编译
二十七日秋9 天前
算法刷题笔记「Day 1|四道 OJ 入门题里的深坑」
c语言·汇编·数据结构·c++·笔记·python·算法
银河麒麟操作系统9 天前
两案例入选全球计算联盟年度产业应用案例汇编
大数据·汇编·人工智能
abc light9 天前
ARM 裸机开发(2)——ARM 汇编与启动代码
汇编·arm开发
soso19689 天前
Modbus协议开发实战指南
汇编
水饺编程11 天前
第2章:Linux 基础,解压缩【.tar.gz】压缩包
linux·c语言·汇编