亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 2068 | 回復(fù): 1
打印 上一主題 下一主題

請(qǐng)教大家一句匯編 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2008-11-10 22:20 |只看該作者 |倒序?yàn)g覽
諸位,請(qǐng)教一下,
在一個(gè)64位的機(jī)器上,
rax有一個(gè)64的值(高4字節(jié)非0),
執(zhí)行下面的語(yǔ)句
mov %eax, %eax
之后,為什么rax的高4個(gè)字節(jié)被清零了,
我dump出來(lái)看
mov %eax, %eax
對(duì)應(yīng)
89 C0


根據(jù) Intel 64 and IA-32 Architectures Software Developer's Manual Vol. 2A的描述

89是mov指令的編碼
C0因該就是ModR/M,這樣分析的話
Mod 是11
Reg/Opcode是000
R/M是000

也就是說(shuō):第一個(gè)操作數(shù)是 EAX/AX/AL/MM0/XMM0 之一
第二個(gè)操作數(shù)是:
AL
AX
EAX
MM0
XMM0 之一

我看該手冊(cè)對(duì)mov的描述是這樣的(Intel 64 and IA-32 Architectures Software Developer's Manual Vol. 2A 3-639)

89 /r MOV r/m16,r16 Valid Valid Move r16 to r/m16.
89 /r MOV r/m32,r32 Valid Valid Move r32 to r/m32.
REX.W + 89 /r MOV r/m64,r64 Valid N.E. Move r64 to r/m64.

我想問(wèn)的是,
1、從mov %eax, %eax語(yǔ)句來(lái)看,怎么確定操作數(shù)的size,畢竟他把rax的高4字節(jié)搞沒(méi)了;
2、從89 C0來(lái)看,怎么知道他是用EAX這個(gè)寄存器的呢?為什么不可能是MM0,XMM0呢?


小弟一直沒(méi)有把這些搞明白過(guò),64的匯編更是一頭霧水,

有哪位明白的大俠給講解一下。

忘了說(shuō),實(shí)在Suse 9上,gcc是3.3版本,那句匯編指令(mov %eax, %eax)
是gcc自己生成的,搞不懂她為什么不加上b,w,l,q等后綴呢?

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2008-11-10 22:31 |只看該作者
mov %eax,%eax 是不會(huì)把高32位清0的。

1、確定 %eax 的大。杭 REX prefix 是64位, 加 66 prefix 是16位,不加prefix是32 位
2、89 這個(gè) opcode 決定使用的是 GPRs
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP