作者roylee17 (把我id还我阿......)
看板ASM
标题Re: [问题] 请问有人懂PowerPC ASM的吗?
时间Sat Jul 14 16:07:39 2007
※ 引述《ccbruce (蛍雪时代にの仆)》之铭言:
: 对於此用法的边际效用及实际机器码转译我非常的清楚,我并不需要这种说明。
: 事实上,这种方式只要考虑^=的结合性,它是由右至左。考虑到较佳的作法,自然就要转
: 译为类似以下的x86机器码(实际上也是),而非你讲的另起变数:
: ...
: mov AX, varA
: mov BX, varB
: xor AX, BX
: xor BX, AX
: xor AX, BX
: mov varA, AX
: mov varB, BX
: ...
movl -24(%ebp), %ecx lwz 11,16(31)
movl -20(%ebp), %ebx lwz 10,20(31)
movl -24(%ebp), %edx lwz 9,16(31)
movl -20(%ebp), %eax lwz 0,20(31)
xorl %edx, %eax xor 0,9,0
movl %eax, -24(%ebp) stw 0,16(31)
movl -24(%ebp), %eax lwz 0,16(31)
xorl %ebx, %eax xor 0,10,0
movl %eax, -20(%ebp) stw 0,20(31)
movl -20(%ebp), %eax lwz 0,20(31)
xorl %ecx, %eax xor 0,11,0
movl %eax, -24(%ebp) stw 0,16(31)
...
.size main, .-main
.ident "GCC: (GNU) 4.1.2 (Gentoo 4.1.2)"
.section .note.GNU-stack,"",@progbits
我把 x86 上编译过的 code 比对你贴的 code,似乎差不多?
: 我今天的问题,是因为硬体特性造成的。我所需要的,是有人说明为何PowerPC会造成
: 这样的问题,而不是讨论这种方法与未定义行为的关系。(实际上PowerPC下对两个普通
: 变数作如此操作也完全正常,没有你所说的问题出现)今天这种问题只出现在PowerPC
: 下间接定址,这才是我想问的问题,请勿离题。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.73.27.249