以前用的標號都是這樣的,它們表示的是起始地址:
注意這里的標號后面都跟了一個冒號,而本節要介紹的標號沒有冒號,它不僅能表示起始地址還能表示內存單元的長度:
至于說內存單元的長度還是根據db和dw來確定的。
帶有冒號的標號只能用在代碼段,不能用在數據段。
如果想在代碼段中用數據標號直接訪問數據,需要用assume將標號所在的段和一個段寄存器聯系起來。
上圖中所示代碼將data段和DS寄存器聯系了起來。
然后需要把DS中的值設置為data段的起始地址,如下所示:
你可以這樣使用數據段內容:
很顯然,現在a和b所代表的數據都是與DS相關連的,所以直接寫出偏移地址來就可以確定數據的位置。
本屆討論用查表的方法編寫程序的技巧。
原來數字型數字和字符型數之間相差了30H,即1+30H=’1’。
16進制中的’A’與10相差37H,即,10+37H=’A’。
我感覺本節內容并不是在講匯編語言,而是在說與復雜的計算比較起來,直接查表是更快的解決方案。但是表需要占用一定的存儲空間,可這是以空間換時間算法思想的一種體現。
能夠通過計算出元素位置從而找到所需元素的表稱為直接定址表。