程序集x86:将数据从寄存器复制到内存位置

时间:2013-09-29 23:56:11

标签: memory assembly x86

我遇到一个简单的问题,就是将一个char从寄存器al复制到一个名为ErrorChars的变量...

我是否必须将目的地取消引用为[ErrorChars]?这是扫描缓冲区,在缓冲区中查找错误字符并将它们放在字符串中的合适解决方案,以便我可以将它们打印为一个项目吗?

 SECTION .data                   ; Section containing initialized data                                                                                                           

    ErrorChars:             db "", 10
    ErrorCharsLen:          equ $-ErrorChars

    ; ... 

    mov al, byte [ebp+ecx]      ; copy current byte of Buffer into al                                                                                                            
    mov byte ErrorChars, [al]   ; copy byte at al into ErrorChars                                                                                                   

1 个答案:

答案 0 :(得分:4)

mov byte ErrorChars, [al]   ; copy byte at al into ErrorChars

ErrorChars是你的内存操作数,而不是al。所以是的,它应该在括号中,而不是al。

mov [ErrorChars], al   ; copy byte in al into ErrorChars