我已經定義字符串使用DB 20, 22
一段時間,不知道爲什麼:爲什麼需要字符串DB 20,22 dup('?')中的'20,22'?
我讀的第一個字節的緩衝區大小和第二適用於字符串中使用的字節數,但我不知道是否兩個值都是強制性的。例如,當我定義一個字符串並想將一個寄存器指向它時,我必須使用+2來跳過這兩個字符。
string DB 20, 22 dup('?')
lea si, string+2
lea si, [string] ; I think this is another alternative
這讓我想知道如果我沒有他們定義字符串,我可以做lea si, string
。這是可能的還是都是強制性的?另外,當我想跳過一行並將光標移動到開始處時,我做了DB 13, 10
編譯器如何知道13不是緩衝區大小和10個字符數?我可能會說廢話,但任何澄清這些問題將被感謝
'x dup(y)'是一種寫入''x'值'y'的副本。這對我來說似乎是一個以長度爲前綴的字符串20'?'字符,如果我們認爲長度有點偏離。 – cHao
取決於你對這些字符串做什麼,因爲有幾種方法在內存中表示字符串。 –
我刪除了dup(),因爲它不是我所關心的。我想知道的一件事是如果有一種方法來定義字符串,所以我可以簡單地通過'lea si,string'來指向它 – lisovaccaro