什么是asm相当于将字符串中的char替换为另一个字符串的char?

时间:2015-05-29 11:12:36

标签: assembly nasm x86-64

我正在尝试编写strcat来学习汇编。我使用带有Intel语法的64位汇编在nas osx上使用nasm进行编码。 到目前为止,这是我的结果:

section .text
    global _ft_strcat

_ft_strcat:
    mov rax, rdi
    mov rbx, rsi

loop_s1:
    cmp byte[rax], 0
    jz copy_str
    inc rax
    jmp loop_s1

copy_str:
    cmp byte[rbx], 0
    jz end
    mov byte[rax], byte[rbx]
    inc rax
    inc rbx
    jmp copy_str

end:
    mov byte[rax], 0
    ret

mov byte[rax], byte[rbx]行给出了这个编译错误:

ft_strcat.s:17: error: invalid combination of opcode and operands

因为有很多不同的语法,所以很难获得有关汇编的好信息。

1 个答案:

答案 0 :(得分:4)

没有SESSION需要2个内存操作数。请参阅instruction set reference。您可以通过字节大小的寄存器,例如:

image

另请注意,调用约定要求保留一些寄存器,包括$.get("assets/images/" + gamesParse.aways[i] + ".png", function(response) { if (response.status !== 404) { // do stuff here } else { // or here } }); 。您可以改为使用mov,或者保存/恢复它。