技術的には、メモリからメモリに移動することは可能です。
バイト、ワードなどを転送するかどうかに応じて、MOVS(文字列の移動)を使用し、 [E]SIと[E]DIを設定してみてください。
    mov si, t_cur    ; Load SI with address of 't_cur'
    mov di, t_last   ; Load DI with address of 't_last'
    movsb            ; Move byte from [SI] to [DI]
    ; Some dummy data
    t_cur    db 0x9a ; DB tells NASM that we want to declare a byte
    t_last   db 0x7f ; (See above)
ただし、これはMOVを2回実行するよりも効率的ではありませんが、1つの命令でコピーを実行することに注意してください。
MOVSの使用方法と機能は次のとおりです
。https ://www.felixcloutier.com/x86/movs:movsb:movsw:movsd:movsq
命令MOVSは、それ自体で使用されることはほとんどなく、ほとんどの場合、REPプレフィックスと組み合わせて使用されます。
最新のCPUにはrep movs、AVXベクトルのロード/ストア命令を使用したループの速度に近い、かなり効率的な実装があります。
    ; - Assuming that 't_src' and 't_dst' are valid pointers
    mov esi, t_src  ; Load ESI with the address of 't_src'
    mov edi, t_dst  ; Load EDI with the address of 't_dst'
    mov ecx, 48     ; Load [ER]CX with the count (let's say 48 dwords =   blocks)
    rep movsd       ; Repeat copying until ECX == 0
論理的には、コピーは4バイトのdwordチャンクの48コピーで行われますが、実際の最新のCPU(高速文字列/ ERMSB)は、効率を上げるために16バイトまたは32バイトのチャンクを使用します。
このマニュアルでは、 REPの使用方法とその仕組みについて説明しています:
 https ://www.felixcloutier.com/x86/rep:repe:repz:repne:repnz