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

相关推荐
浩浩测试一下5 小时前
汇编 标志位寄存器 (逆向分析 )
c语言·汇编·逆向·windows编程·标志寄存器
浩浩测试一下5 小时前
汇编 数组与串指令(逆向分析)
汇编·逆向·二进制·免杀·串指令·汇编数组
浩浩测试一下10 小时前
汇编 内联汇编与混合编程 (逆向分析)
汇编·混合编程·windows编程·内联汇编·二进制逆向·c语言混合汇编
浩浩测试一下13 小时前
汇编 结构体与宏
汇编··免杀·结构体·windows编程·逆向二进制
浩浩测试一下1 天前
汇编中的JCC指令 (逆向分析)
汇编·逆向·标志位·jcc指令·跳转指令·标志位寄存器
浩浩测试一下1 天前
汇编中的段与段寄存器(大小)段序 (逆向分析)
汇编·逆向·二进制·字节序·windows编程·内存地址排序
浩浩测试一下2 天前
汇编 call与ret 函数与堆栈 (逆向分析)
汇编·push·函数·pop·call·ret·堆栈逆向
山屿落星辰2 天前
昇腾NPU算子开发:从“手写汇编“到“搭积木“
汇编
浩浩测试一下3 天前
汇编 汇编寻址 (逆向分析)
汇编·寻址·windows编程·二进制逆向·机器码
浩浩测试一下3 天前
汇编 位运算 (逆向分析)
汇编·逆向·位运算·asm·windows编程·二进制逆向