arrays
  • assembly
  • x86
  • 2013-04-10 44 views 0 likes 
    0

    我有一個這樣的數組:86 ASM改變字符數組值

    msg_values db "a= b= " 
    

    ,我需要插入字符,讓我們說 '5' 'A =' 後得到:

    "a=5 b= " 
    

    有人可以舉一個例子怎麼做? 非常感謝。

    +0

    你有什麼tr¡ ED? – 2013-04-10 10:00:41

    回答

    0

    寫入數組的地址,由您想要更改的元素的索引偏移。確切的語法將取決於您使用的彙編程序。例如,它可能是:

    mov byte ptr [msg_values+2], '5' 
    

    或只是

    mov byte [msg_values+2], '5' 
    

    您也可以加載地址到寄存器中,使用寄存器間接尋址:

    lea esi, [msg_values] 
    mov byte ptr [esi+2], '5' 
    
    +0

    lea bx,msg_values; mov ds [bx],'1'; inc bx; mov ds [bx],'2'; inc bx; mov ds [bx],'3'; 我剛剛發現這個解決方案,它與你的類似,但我使用不同的寄存器,它看起來像工作,有沒有一切好嗎? – ST3 2013-04-10 10:04:29

    +0

    好吧,它看起來像實模式代碼,但原理是一樣的。如果您只想替換單個字符,則不需要使用寄存器。 – Michael 2013-04-10 10:06:58

    0

    要做到這一點(在NASM語法):

    mov [msg_values+2], byte '5' 
    

    一些其他的彙編想byte ptr,而不是隻byte

    相關問題