2016-03-18 64 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