80386數據類型 80386具有很強的指令系統。指令系統中支持的數據類型也很豐富,提供了大多數高級語言中的基本數據類型,這給編譯程序的設計帶來了很大方便。以下是80386所支持的數據類型: ·位:單獨一個二進制位。 ·位場:一組最多為32個連續的位的集合,其變化範圍最大為4個字節。 ·字節:一個具有符號的8位數。 ·無符號字節:一個無符號的8位數。 ·整數(字):一個帶符號的16位數。 ·長整數(雙字):一個帶符號的32位數。所有的操作數均假定以補碼(2的補碼)表示。 ·無符號整數(字):一個無符號的16位數。 ·無符號長整數(雙字):一個無符號的32位數。 ·帶符號的4字:一個帶符號的64位數。 ·無符號的4字:一個無符號的64位數。 ·偏移量:一個作為某個存儲單元相對于指定基準的16位或32位偏移。 ·指針:一個由16位段選擇器和16位或32位偏移量所組成的全指針。 ·字符:代表一個ASCII字母、數字或控制字符的一個字節。 ·串:一個由字節、字或雙字組成的連續序列。一個串的範圍可以由一個字節擴展至4吉字節。 ·BCD:一個未組合的字節,代表數字0~9。 ·組合的BCD:一個組合的字節,代表兩位十進制數。每半個字節保存一位O~9的數字。 當80386與協處理器80387聯合使用時,還支持下列常用的浮點數類型:32位短實數、64位長實數和80位暫存實數。 在80386系統中,如果不考慮數據的具體含義,則它們在存儲器中的存放原則和8086基本一致。一個字節數據可以放在存儲器的任何一個存儲單元中(當然要考慮存儲單元所在段的保護特性)。一個16位數據被存儲在存儲器的兩個連續單元中,低字節存放在低地址,高字節存放在高地址。一個32位數據被存儲在存儲器的四個連續單元中,最低字節存放在最低地址,最高字節存放在最高地址。超過32位的數據的存放依此類推。數據存放的最低地址是該數據的地址。 在80386系統中,操作數在存儲器中存放地址與訪問週期的關系也與8086基本一致,所不同的是:它是32位CPU,可以同時傳送32位數據。對于32位操作數,若存放在雙字地址邊界上,即線性地址的Al、A0都為0,亦即4的倍數的地址,則訪問該操作數只需一個總線週期;若不存放在雙字地址邊界而放在字地址邊界(線性地址A0為O)上,則需要兩個連續的總線週期。對于16位操作數,若存放在字地址邊界上,則訪問該操作數時只需要一個總線週期;否則需要兩個連續的總線週期。 對于訪問存儲器中的操作數,總線週期的安排都是由80386自動實現的,即對用戶是透明的。
|