我有这个 IA32 汇编代码,我正在尝试将其转换为 Y86 汇编代码:
bubble_a:
pushl %ebp
movl %esp, %ebp
pushl %edi
pushl %esi
pushl %ebx
movl 8(%ebp), %edx
movl 12(%ebp), %edi
subl $1, %edi
testl %edi, %edi
jg .L11
jmp .L8
.L9:
movl 4(%edx,%eax,4), %ecx
movl (%edx,%eax,4), %ebx
cmpl %ebx, %ecx
jge .L4
movl %ebx, 4(%edx,%eax,4)
movl %ecx, (%edx,%eax,4)
.L4:
addl $1, %eax
cmpl %edi, %eax
jne .L9
.L7:
subl $1, %edi
je .L8
.L11:
movl $0, %eax
testl %edi, %edi
jg .L9
jmp .L7
.L8:
popl %ebx
popl %esi
popl %edi
popl %ebp
ret
我正在努力翻译 .L9 中的 movl 指令
movl 4(%edx,%eax,4), %ecx
movl (%edx,%eax,4), %ebx
movl %ebx, 4(%edx,%eax,4)
movl %ecx, (%edx,%eax,4)
我知道没有一条指令可以做到这一点,但我不知道哪组指令将取代 Y86 中的指令。
感谢您的任何帮助。