数据指令MOV
Posted 胡韬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据指令MOV相关的知识,希望对你有一定的参考价值。
MOV分成三类,第一类不需要拓展(MOV),第二类做符号拓展(MOVS),第三类做零拓展(MOVZ),拓展类型根据源操作数决定。
这三类根据操作的数据类型其后可加l,w,b。
MOV操作的操作数可以是寄存器,也可是存储器,但不可两个都是存储器。
第一个是源操作数,第二个是目的操作数。
pop和push也属于MOV指令,不同的是他们只有一个操作数,%esp保存栈顶元素的地址,压栈。
例题:
1.mov %eax (%esp) movl
2.mov (%eax) %dx 从32b到16b,截断,只需要movw即可
3.movl %eax,$0x123 错误,立即数不能作为地址
4.movb $0xF,(%bl) 错误,(%bl) 不能作为存储器地址,把括号去了可以
以上是关于数据指令MOV的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向x86 汇编 ( call 子函数调用指令 | jmp 跳转指令 | lea 加载指令 | mov 数据传送指令 )
Android 逆向x86 汇编 ( call 子函数调用指令 | jmp 跳转指令 | lea 加载指令 | mov 数据传送指令 )