>>> 此貼的回復 >> 根據ALU。
>>> 此貼的回復 >> 想深入了解. 學好匯編語言對你幫助非常大.
匯編語言中的,最基本的數據類型有: (1) byte (2)word (3)double word 當然,還有qdword類型(8個字節)等。
這些數據類型由機器架構決定。 也就是說:1字節,2字節,4字節,8字節。每移一位就是2的倍數。
C語言的低級的高級語言,實現上是模擬匯編語言。
char 必須對應 byte , 所以它的類型固定是1個字節。否則就沒有相應的類型訪問1個字節的數據。 short 也必須對應於 word, 所以它的類型是2個字節。否則沒有相應的類型訪部2個字節的數據。
至於int 類型: (1)x86架構的機器,基本都是32位。但是初始於實模式下,它是16位的。 (2)16位下,它只能訪問16位的地址空間。 (3)所以,16位下,無論是int, long, long long(如果有的話) 都只能訪問16位數據。即word (4)在32位保護模式下,可以一次訪問32位地址空間。那麼,int 對應於double word,long 和 long long都只能一次訪問32位數據。long long 模擬訪問64位數據。實際上是只能訪問32位數據。
(5)當x86-64架構,被初始化於long mode中的64位模式下,long 相對應於64位數據。但也要看操作系統和編譯器的支持度。