【问题标题】:change character in string更改字符串中的字符
【发布时间】:2013-03-30 22:23:10
【问题描述】:

我的问题是我无法更改指针的每一位

我的函数和memset的概要一样

我不知道我哪里错了谢谢你的帮助

void *changEachBits(void *, int , size_t)

[BITS 64]

global changEachBits

section .text

changEachBits:
        push rbp
        mov rbp, rsp
        xor rcx, rcx

cdn_loop:
        cmp rcx, rdx
        jz end
        mov [rdi + rcx], rsi
        inc rcx
        jmp cdn_loop
end:
        mov rax, rcx
        mov rsp, rbp
        pop rbp
        ret

【问题讨论】:

  • 函数入口中RDX的值是多少?您能否进一步阐明您的功能意图是什么?
  • 我的函数与 memset(3) 的行为相同,然后 RDX 在其中有一个大小。我会回答你的问题吗?

标签: assembly 64-bit nasm


【解决方案1】:

试试mov byte [rdi + rcx], rsi 您应该检查确实发出的操作码将您的数组视为字节数组

【讨论】:

  • Nasm 肯定不是 PTR。反正不会组装。也许sil
  • @Frank Kotler 感谢您的评论!,我已经编辑了我的答案以符合 NASM 语法
  • 我试试你说的,但我不能mov byte[rdi], sil。我在测试期间遇到了段错误
  • 我用另一种方式问我的问题。如何将一个字符放入字符串中,以便在第二个位置更改其字符之一
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-19
  • 2010-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多