zoukankan      html  css  js  c++  java
  • 【ASM】汇编指令movdqa与movdqu的区别

    Date: 2018.6.11


    参考:https://blog.csdn.net/u011019337/article/details/9260257

    介绍两条移动双四字数据的指令:


    MOVDQA - 移动对齐的双四字
    将双四字从源操作数(第二个操作数)移到目标操作数(第一个操作数)。此指令可以用于在 XMM 寄存器与 128 位内存位置之间移入/移出双四字,或是在两个 XMM 寄存器之间移动。源操作数或目标操作数是内存操作数时,操作数必须对齐 16 字节边界,否则将生成一般保护性异常 (#GP)


    MOVDQU - 移动非对齐的双四字
    要在未对齐的内存位置中移入/移出双四字,请使用 MOVDQU 指令。
    在 16 位寻址模式中执行时,不允许 128 位数据访问的线性地址与 16 位段尾重叠,此时的行为定义成保留行为。在这种情形下,特定的处理器版本可能会生成 #GP 异常,也可能不会,并且,跨越段尾的地址可能会通过舍位变成段首地址,也可能不会。

    注: #GP:一般保护性异常是在PC机用户程序企图访问不可访问地址时出现的错误。

  • 相关阅读:
    P1443 马的遍历
    P1747 好奇怪的游戏
    蜀绣
    Five hundred miles
    如果没有你
    Yellow
    流星

    深入理解计算机中的 csapp,h和csapp.c
    可迭代的集合类型使用foreach语句
  • 原文地址:https://www.cnblogs.com/SoaringLee/p/10532452.html
Copyright © 2011-2022 走看看