日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

sse 指令xmm寄存器和内存互相复制的问题

發(fā)布時(shí)間:2024/3/12 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sse 指令xmm寄存器和内存互相复制的问题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 下面是一段可以執(zhí)行的x64 的 nasm 匯編代碼,類似可執(zhí)行文件的外殼代碼
bits 64 global start extern MessageBoxAsection .text start:push rbppush raxpush rbxpush rcxpush rdxpush rsipush rdipush r8push r9push r10push r11push r12push r13push r14push r15jmp real_callmessage: db 'hello',0caption: db 'msg',0 real_call:xor rcx,rcxmov rdx,messagemov r8,captionxor r9d,r9dsub rsp,28hcall MessageBoxAadd rsp,28hpop r15pop r14pop r13pop r12pop r11pop r10pop r9pop r8pop rdipop rsipop rdxpop rcxpop rbxpop rbpret
  • 運(yùn)行是崩潰的
  • 這么簡(jiǎn)單的程序也會(huì)崩潰
  • 沒(méi)有什么邏輯啊???
    看看出問(wèn)題的是什么指令:
movaps xmmword ptr [rsp+150h],xmm8 提示:Access violation - code C0000005 查看棧rsp 并沒(méi)有出問(wèn)題 再查看一下 movaps 指令: 在網(wǎng)上查到這條指令說(shuō)明: 從源操作數(shù)(第二個(gè)操作數(shù))將包含四個(gè)壓縮單精度浮點(diǎn)值的雙四字移到目標(biāo)操作數(shù)(第一個(gè)操作數(shù))。此指令可用于將 128 位內(nèi)存位置的內(nèi)容加載到 XMM 寄存器、將 XMM 寄存器的內(nèi)容存儲(chǔ)到 128 位內(nèi)存位置,或是在兩個(gè) XMM 寄存器之間移動(dòng)數(shù)據(jù)。源操作數(shù)或目標(biāo)操作數(shù)是內(nèi)存操作數(shù)時(shí),操作數(shù)必須對(duì)齊 16 字節(jié)邊界,否則將生成一般保護(hù)性異常 (#GP)。要在未對(duì)齊的內(nèi)存位置中移入/移出壓縮單精度浮點(diǎn)值,請(qǐng)使用 MOVUPS 指令。

再看rsp 的值是0x30f2e8
rsp+150h 的確是不被16整除
哪里引起的呢?
在保留寄存器的時(shí)候保留了15個(gè)寄存器,恰好不能被16 整除。所以出現(xiàn)了問(wèn)題。
匯編寫代碼的時(shí)候要注意啊。

總結(jié)

以上是生活随笔為你收集整理的sse 指令xmm寄存器和内存互相复制的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。