我正在尝试从内存中复制一些单词并使用汇编将其保存到另一个内存地址。 我正在尝试为其编写代码,但我不确定其中的某些部分。我将简要描述我想要做什么。
源地址、目标地址和要复制的字数是函数的输入参数。
最佳答案
从您的描述来看,它听起来像常规的 memcpy,只不过您指定了要复制的字数而不是字节数。不确定整个堆栈缓冲区的想法来自哪里(?)。
类似这样的操作会将单词从源复制到目标地址:
sll $a2,$a2,2
addu $a2,$a1,$a2 ; $a2 = address of first byte past the dest buffer
Loop:
lw $t0,0($a0)
sw $t0,0($a1)
addiu $a0,$a0,4
addiu $a1,$a1,4
bne $a1,$a2,Loop
nop
编辑:如果源缓冲区和目标缓冲区未在字边界上对齐,则需要使用 lb/sb 来避免数据对齐异常。
关于从内存地址复制字辅助(汇编),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11771353/