- "movsx"用于"movsx EAX,BX"赋值表示,二进制表示形式有符号数为正数用0填充前四位,有符号数为负数用F填充前四位,二进制数,前面0开头的为正数,前面1开头的为负数,"movzx"默认用0填充前四位,无论是否正数负数.
1.1 A123二进制数为负数,用F填充前4位.
![]()
![]()
1.2 A123,二进制数用1开头,代表负数.
![]()
![]()
![]()
1.3 1234二进制数为正数,用0填充前4位.
![]()
![]()
1.4 1234,二进制数用0开头,代表正数,0被忽略了,用三个0填充在前面.
![]()
![]()
![]()
1.5 "movzx EAX,BX"直接用0填充.
![]()
![]()
- "lea"指令用于计算方括号里面的数值并赋值给寄存器,并不是方括号内存地址中的值,这和平常计算获取内存地址中的值不一样,“xchg”用于互换寄存器中的值.
2.1 [ebx+0x16] = 5555A139
![]()
![]()
2.2 EAX与ECX互换.
![]()
![]()
- "add"用于相加数值并赋值给左值,"sub"用于相减数值并赋值给左值.
3.1 如图.eax和ecx相加,然后相加赋值给402000内存地址处的值,原本402000地址处的值为0,eax,ecx相减后为0赋值给eax.
![]()
发表于
2024-12-30 09:27
良货
阅读( 32)
评论()
收藏
举报
|
|
|