相關(guān)內(nèi)容見《IBM-PC匯編語言程序設(shè)計(jì)》清華大學(xué)出版社 chapter2
存儲(chǔ)器以字節(jié)為單位存儲(chǔ)信息
每個(gè)字節(jié)單元有有唯一一個(gè)物理地址是复,從0編號(hào),順序+1
低位字節(jié)存入低地址肉拓,高位字節(jié)存入高地址
機(jī)器以偶地址訪問(讀/寫)存儲(chǔ)器:
字竞穷、4字單元地址用它的 最低 字節(jié)地址來表示。
在圖中瘾带,讀1000H讀出一個(gè)字。
可以發(fā)現(xiàn)看政,盡管每個(gè)存儲(chǔ)單元存了一個(gè)字節(jié),但是一個(gè)地址讀寫一個(gè)字菜皂。(按字操作)
而且操作偶數(shù)地址厉萝,因此1001讀出需要訪問1000和1002
這里需要訪問兩次存儲(chǔ)器!谴垫!
實(shí)模式存儲(chǔ)器尋找:
8086、/8088工作在20位地址乳怎,獨(dú)占系統(tǒng)所有資源前弯。
8086/8088的數(shù)據(jù)總線寬度是16位蚪缀,地址總線寬度是20位。16位字長實(shí)現(xiàn)20位尋址违帆。
小段:從0地址開始金蜀,每16個(gè)字節(jié)為一小段刷后,共有64k個(gè)小段渊抄。
小段首地址特征:后四位為0。
--邏輯地址 (2個(gè)16)是程序中使用的地址含衔,它由段基址和段內(nèi)偏移值所組成,段基址與段內(nèi)偏移值都為16位的二進(jìn)制數(shù)抱慌。
段地址:段起始地址的高16位(DS)
偏移地址:段內(nèi)相對(duì)于段起始地址的偏移值(16位)(有效地址EA)
--物理地址 (1個(gè)20)也叫實(shí)際地址或絕對(duì)地址眨猎,是CPU訪問存儲(chǔ)器時(shí)實(shí)際使用的地址强经,為20位地址睡陪。
>>段寄存器(CS兰迫、DS、SS汁果、ES玲躯、FS、GS)? ? ?存放段地址,確定一個(gè)段的的起始地址.
用途各不相同:
代碼段(CS):存放當(dāng)前正在運(yùn)行的程序
數(shù)據(jù)段(DS):存放當(dāng)前運(yùn)行程序所用的數(shù)據(jù) 跷车,或串處理指令中的源操作數(shù)
堆棧段(SS):定義堆棧(后進(jìn)先出)的所在區(qū)域
附加段(ES):附加的數(shù)據(jù)區(qū),或串處理指令中的目的操作數(shù)
各段在存儲(chǔ)器中的分配:由操作系統(tǒng)負(fù)責(zé)負(fù)責(zé)善玫,但需要時(shí)也可指定.
(so,記住如何運(yùn)算的,有時(shí)候也可以16*cs+ip/pc什么的)
段的重疊:? 指每個(gè)段區(qū)的大小允許根據(jù)實(shí)際需要來分配茅郎,而不一定要占有64KB的最大段空間