C語言中指標的型別在彙編中是如何表示的?

時間 2021-06-01 01:53:53

1樓:

組合語言。。。組合語言一般確實沒有指標或位址這樣的資料型別,但是基本都會有一些基本的資料型別來容納指標或位址的值。。。

具體到80x86彙編,就可以通過偽指令按位元組、字、雙字、四字甚至來定義資料項,這些資料項就可以用來容納指標或位址的值。。。

不過,這些指標或位址的值在匯程式設計序中往往無法直接使用,需要將這些值裝載到不同的暫存器中,根據不同的定址方法得到真實的位址才能使用,而多數的定址方法都會用到乙個叫【基址暫存器】的東西,通過這個加上偏移量或【變址暫存器】的內容才能計算出真實的位址,然後才能獲取正確位置的資料。。。

話說,現在大學裡都不教計算機組成原理這樣的課了嗎?就算不學彙編,但是計算機體系的基本概念還是要有的吧。。。

2樓:VTECISBEST

編譯成彙編後哪有『型別』這一說法呢?

『型別』是編譯器層面的東西。編譯器知道型別,知道你要獲取該型別的某個成員時需要偏移多少。然後才能編譯成彙編。

至於你提問的『系統是如何知道這個指標該移動多少個位元組的』。系統是不知道的,彙編也不直達的。只是編譯器在編譯的時候就把偏移量寫在彙編碼裡了,因為只有編譯器才知道要移動多少。

3樓:szouc

指標在彙編中就是位址。

拿 ATT 舉例,操作指標的就是 leaq 指令。高階語言層面變數會涉及型別屬性,但在底層沒有型別屬性,底層只有儲存單元大小屬性。在彙編中使用指令的變型表示操作 1 , 2, 4, 8 個位元組,如 movq 操作8個位元組,movb 操作乙個位元組,intel 的 DWORD 等類似。

回想 char short int longlong 對應幾個位元組。

至於指標的整數運算,高階語言怎麼描述的,底層就怎麼做的: 整數 * 儲存單元的大小。

C語言中,指標的指標的指標,這樣一直下去產生的指標是什麼意義?

你可以超越守恆律憑空得到乙個俄羅斯套娃娃。抖機靈 若干年前用c寫過乙個用4層指標的複雜資料結構。後來因為維護困難,就轉到了c 重構後最高端的就是1級指標。 Bat特白 指標就是位址 記憶體單元編號 位址也要存在記憶體某處。所以指標的指標就是存放位址的位置的位址。不要看太多的 通俗解釋 你明白了記憶體...

如何較為深入的理解c語言中的二級指標?

嵌入式Linux 把這個題目搞清楚了 你對二級指標估計也就釋然了。char p 是表示的意思是 char 修飾 p,說明p 是乙個二級指標。然後什麼是二級指標?指向一級指標的就是二級指標 然後什麼是一級指標?儲存乙個變數位址的就是一級指標。所以什麼是二級指標 就是儲存指標變數位址的變數就是二級指標。...

C語言中 p p 是如何工作的?

劉博 拒絕回答好了 不要在乙個語句中多次修改同一變數的值 P大某雙學位期末考試出過請寫出f a a 的值,也是一臉懵逼,不過那門課現在已經消失了 Doraemon 我比較討厭自加 自減運算子和別的別的運算子或者判斷句同時出現,因為這樣根本搞不清參與運算的到底是自加減前的還是自加減後的,可讀性變差。自...