Chapter 3 寄存器(內存訪問)
3.1 內存中字的存儲
典型的例子:
對於如圖所示內存中字的存儲,
字單元:由兩個連續的內存單元構成一個字單元,比如由 0、1兩個內存單元組成的字型數據 4E20H 。
其中高地址對應高字節,低地址對應低字節。
1地址單元: 4EH
1地址字單元:124EH
3.2 DS 和 [address]
CPU自動取 DS 寄存器中的數據作爲段地址。
例子:
- mov BX, 1000H
- mov DS, BX
- mov AX, [0]
此時往 AX 裏面寫入的是位於 DS:[0] (10000H) 中的數據。
注意:對於1、2 句,直接寫 "mov DS, 1000H" 是非法的,必須是現將 1000H 存入一個通用寄存器中再將通用寄存器中的數據傳給 DS。
在 mov 指令中,[ ] 爲內存單元,[x] 表示偏移地址爲 xH ,段地址爲 DS 中數據。
3.3 字的傳送
典型的例子:
對於如圖所示內存情況,
- mov AX, 1000H
- mov DS, AX
- mov AX, [0]
對於第三條語句,由於寄存器 AX 是16 位的,而10000H 處的數據只有 8 位,但是給 16 位的寄存器寫數據必須是16位,故向AX寫入一個字,i.e. 1123H 還要注意低地址對應低位數據,高地址對應高位數據。