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);

X[d] = result;

从C语言理解这个NOT:

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

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

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

相关推荐
188号安全攻城狮9 小时前
【PWN】HappyNewYearCTF_2_栈上变量覆写1
linux·运维·汇编·安全·网络安全
草莓熊Lotso9 小时前
Linux 进程创建与终止全解析:fork 原理 + 退出机制实战
linux·运维·服务器·开发语言·汇编·c++·人工智能
爱编码的小八嘎11 小时前
汇编语言全接触-105.Natas 幽灵王病毒的分析
汇编
老鱼说AI1 天前
深入理解计算机系统1.5:抽象的重要性:操作系统与虚拟机
c语言·开发语言·汇编
猫猫的小茶馆2 天前
【Linux 驱动开发】一. 搭建开发环境
linux·汇编·arm开发·驱动开发·stm32·嵌入式硬件·mcu
猫猫的小茶馆2 天前
【Linux 驱动开发】二. linux内核模块
linux·汇编·arm开发·驱动开发·stm32·嵌入式硬件·架构
切糕师学AI3 天前
ARM 中的 SVC 监管调用(Supervisor Call)
linux·c语言·汇编·arm开发
ベadvance courageouslyミ3 天前
硬件基础中断
汇编·硬件·中断
你爱写程序吗(新H)3 天前
基于单片机的洗衣机控制系统设计 单片机洗衣机控制(设计+文档)
c语言·汇编·单片机·嵌入式硬件·matlab
VekiSon4 天前
ARM架构——用汇编语言点亮 LED
汇编·arm开发·嵌入式硬件