大数据算法,分布式技术,spark技术爱好者
分类: 嵌入式
2013-07-09 21:30:30
1.包含数据长度的标号,后面不加‘:’,用法好比数组或者变量。普通的标号可以offset a,call a。这里的变量标号可以当做一段内存的指代。所以可以当做存储空间使用:mov a,ax;mov al,a[si];add b,ax;push a;pop a等等。
更一般的理解是 a带长度标号后的数据都按照定义的某个长度来处理。本行的和以后行的。
2.在不同段使用变量标号是可以的,但是要assume那个段到一个段寄存器。而且地址标号只能出现在cs中。当然,前面重复多次,assume并不能替你填充段寄存器,你好要手动填充,assume只是告诉编译器哪个段寄存器存着标号的段地址,否则找不到段地址,标号的位置没法确定。
3.数据定义时出现标号,那么标号的地址成为数值。如果是dw 标号,则储存的是偏移地址,如果是dd,储存的是偏移地址,段地址。(offset a,seg a)。seg操作,取得段地址。
4.字节中的反排:在计算机中的一个字节内,是按照由高位向低位排的,如00000001表示1。但是多个字节存储,却是从低位向高位排。0a bc 则是bcoa这个数。
5.直接定址法,这本书讲的很好,让我想起了c语言中的switch() case:end;default:语句。相信就是用直接定址法实现。我们知道dos中断都在21h指向的中断例程中,考传ax,控制启动哪像功能,也是通过直接定址法实现。可见直接定址法是一种非常基本又非常有用的方法。基本思想就是把偏移地址存在变量标号定义的数据中,用变量标号和下标索引。变量标号其实就是创建了一个表项。想想数据库中的表项,不就是数据名加数据长度么。所以变量表好会大大缩减程序复杂度。靠的就是建表的思想,其中很大的应用就是直接定址法。