數據存儲從指針所指向的地址開始往下分配,需要填多少數據都可以。(當然還有壹個段的大小不能超過64KB的限制)
妳的困惑,是妳強行將高級語言中壹個變量只能存壹個數據、是壹個數據容器的概念直接拿來套用造成的。這樣的概念對於匯編語言來說是錯誤的。
如果妳這樣定義:
XY DB 05H, 43H, 21H, 32H
那麽,內存中數據就這麽分布
地址 數據
XY+0 05
XY+1 43
XY+2 21
XY+3 32
如果妳改成這樣定義:
XZ DW 4305H, 3221H
那麽,內存中數據這麽分布:
XZ+0 05
XZ+1 43
XZ+2 21
XZ+3 32
可以看出,這兩種定義方式,數據在內存的分布是壹模壹樣的。
區別僅僅是變量名的數據類型的屬性不同。
如果妳程序中這樣用數據:
MOV AL, XY
MOV AH, XY+1
結果AX的內容變成4305H
與用指令 MOV AX, XZ 的結果也是壹模壹樣。
在匯編語言中,並不需要為每個數據存儲單元定義壹個名字。
數據是可以直接按地址訪問的。
實際上,經匯編程序翻譯以後,和變量名就變成了直接按地址訪問。
機器指令也只能按地址訪問。
按地址訪問數據時,需要明確數據類型。
定義壹個名字,用名字代表具體的地址值(同時也隱含著數據類型), 是為了讓匯編程序在匯編時,將指令中的變量名替換為地址,減少編程者的人工工作量,便於編寫程序。