2016-03-18 33 views
-1

我是新来组装,很抱歉,如果这个问题是相当obvious.I正试图解决为此我需要通过解析字符串的字符一个汇编程序字符,并对字符进行一些操作并将其存储在另一个字符串中。所以我的问题是如何在nasm程序集中逐字符地解析字符串。按字节在NASM汇编解析字符串字节为32位架构

+2

通过遍历它。 – Michael

+0

这些操作是否取决于您检查是否是回文? –

回答

3

做这样的事情:

mov si, <adress of the string in memory> 
    mov cx, <whatever value tells you how long the string is> 
    cld  ; make sure lodsb walks forward, not back (that'd be std then) 
again: 
    lodsb ; get next char to AL and increase SI 
    ; 
    ; <al contains each char of string here, one by one> 
    ; 
    dec cx 
    jnz again ; same as "loop", but not so small 
+1

这个问题被标记为NASM,所以编写'mov cx,stringLen'使得OP陷入困境。也许正确或说明你为MASM写了它。 – Fifoernik

+1

如果您打算使用'loop'这样的缓慢指令,那么您不妨使用代码大小而不是速度,并使用'lodsb'而不是'mov' /'inc si'。 –

+0

@Peter是“循环”它仍然很慢?我记得我读过一些版本说明,他们在哪里修正了这个问题......还是说他们不会修复它,因为没有人使用它? :P不知道:) 我希望这种情况下,+ - 一些CPU周期并不重要 – Tommylee2k