汇编:将字符串的内容复制到另一个寄存器中

Assembly: copy contents of string into another register

我无法弄清楚如何将一个字符串的内容复制到另一个字符串中。以下是我正在处理的内容:给定一个字符串在寄存器 rbx 中的地址,我需要将该字符串地址的内容复制到另一个寄存器(参数 4)rdx

这是我目前正在做的事情

mov rbx, qword[rsi+16] ; rbx = some string address
; performs checks on string
; etc..
; string passes tests so
mov rbx, qword[rbx]
mov qword[rdx], rbx

问题是 qword 只允许我将 8 个字符存储到 rdx 中,而实际最大值是 80(只是我在我的程序的开始)。我当然可以将 qword 更改为 dqword 但这并不能解决我的问题,因为它将从 8 个字符变为 16 个字符。如果我将字符串 Arguments 传递到上面的函数中,我会被返回 Argument,因为复制分配只处理 8 个字符。

我提前道歉,因为这可能是一个非常简单的解决方案,但我对组装还很陌生。如何将一个字符串的内容移动到另一个字符串?

为什么不写一个循环来传输80个字节?

 mov rcx,10
again:
 mov rax, qword[rbx+rcx*8-8]
 mov qword[rdx+rcx*8-8], rax
 loop again