以前用的标号都是这样的,它们表示的是起始地址:
注意这里的标号后面都跟了一个冒号,而本节要介绍的标号没有冒号,它不仅能表示起始地址还能表示内存单元的长度:
至于说内存单元的长度还是根据db和dw来确定的。
带有冒号的标号只能用在代码段,不能用在数据段。
如果想在代码段中用数据标号直接访问数据,需要用assume将标号所在的段和一个段寄存器联系起来。
上图中所示代码将data段和DS寄存器联系了起来。
然后需要把DS中的值设置为data段的起始地址,如下所示:
你可以这样使用数据段内容:
很显然,现在a和b所代表的数据都是与DS相关连的,所以直接写出偏移地址来就可以确定数据的位置。
本届讨论用查表的方法编写程序的技巧。
原来数字型数字和字符型数之间相差了30H,即1+30H=’1’。
16进制中的’A’与10相差37H,即,10+37H=’A’。
我感觉本节内容并不是在讲汇编语言,而是在说与复杂的计算比较起来,直接查表是更快的解决方案。但是表需要占用一定的存储空间,可这是以空间换时间算法思想的一种体现。
能够通过计算出元素位置从而找到所需元素的表称为直接定址表。