数据指令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) 不能作为存储器地址,把括号去了可以

  

posted @ 2016-06-24 18:10  胡韬  阅读(584)  评论(0编辑  收藏  举报