最近,我已經開始通過YouTube頻道學習大會,並有一些問題有關聲明中部分的標籤。數據什麼是用於測試數據庫的含義是「世界,你好」在集會爲X86架構的Linux系統上
當我們寫下如下所示的內容:test db「hello world」,是標記「測試」,類似於程序語言中的指針嗎?(這意味着它保存文本「hello world」中第一個元素的內存地址)
當我們寫:mov rsi test,是否意味着我們把「hello world」的地址放入rsi寄存器中?
另一個問題是關於[]的用法,寫[test]的含義是什麼? 這是否意味着像C中的解引用?就像derefernce指針測試,並得到字母「t」,這是「hello world」中的第一個字母?
我將非常感謝任何負責任的我的問題。
爲了一個好的答案,張貼你參考的程序的源代碼將是有用的。 – fuz
'test'是''h''的地址。完整的「hello world」是幾個字節,佔用內存中的幾個地址。順便說一下,海事組織觀看YouTube的東西,比如學習ASM必須比閱讀有關它的好書要慢得多(這可能會解釋所有這一切)。我會對視頻形式的任何asm教程的質量非常懷疑,因爲這種形式不能涵蓋足夠的細節(但可以是一個開始)。 – Ped7g
我認爲這是一個很好的重複目標;它似乎涵蓋了你所要求的。 'test:db「hello world」的C等價物是'char test [] = {'h','e',...,'d'};'(沒有終止零字節)。或者,如果它在'section .rodata'中,那麼'const char test [] = ...'。 –