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为取反运算符(~)。

相关推荐
myloveasuka13 小时前
寻址方式笔记
汇编·笔记·计算机组成原理
请输入蚊子14 小时前
《操作系统真象还原》 第六章 完善内核
linux·汇编·操作系统·bochs·操作系统真像还原
myloveasuka15 小时前
指令格式举例
汇编·笔记·计算机组成原理
我在人间贩卖青春1 天前
汇编之分支跳转指令
汇编·arm·分支跳转
我在人间贩卖青春1 天前
汇编之加载存储指令
汇编·arm·寄存器加载存储
我在人间贩卖青春1 天前
汇编之状态寄存器访问指令
汇编·arm·状态寄存器
我在人间贩卖青春1 天前
汇编之软中断指令和协处理指令
汇编·arm·软中断·协处理
我在人间贩卖青春2 天前
汇编之数据处理指令
汇编·arm·数据处理指令
白太岁3 天前
操作系统开发:(11) RTOS 与 GPOS 的分界线:MMU
c语言·开发语言·汇编·arm开发·系统架构
枷锁—sha3 天前
【pwn系列】Pwndbg 汇编调试实操教程
网络·汇编·笔记·安全·网络安全