如何解决组装中的注册计数器错误
目前在学校,我们正在学习汇编。现在我们有了一个基于64位编码器的项目。
我试图从命令行读取12位(或更多),但是我遇到了问题。 前6位完美无问题。 bl包含它应该包含的内容。现在,即使我键入2个不同的6位序列,在第二遍时,我也会获得与第一遍相同的结果。我已经尝试了所有。
如果我对[InBuf + 6]进行硬编码,则使用后6位,因此我认为计数器存在问题,但我还未找到。
示例:
输入-> 110000110001(ASCII中为0和1)
第一次运行-> bl包含110000(0 ascii)->输出0
第二次运行-> bl包含110000(0 ascii),但实际上应包含110001(1 ascii)->输出0。
_process:
; read byte
xor rax,rax
xor rbx,rbx
mov al,byte [InBuf+r12]
inc r12
and al,0x01
mov bl,al
shl bl,1
mov al,0x01
xor bl,byte [InBuf+r12]
and al,al
inc r12
mov al,byte [Base64Table+rbx]
mov byte [BaseStr+r10],bl
inc r10
call _write
cmp r12,r8
je _exit
jmp _process
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。