就这一点,王爽老在他的书中提到了。《汇编语言》(第二版)P104页,上面写着参考48节内容。原因大致如下:
设找到一段起始地址为
SA:0000
的容量足够的空闲内存区;在这段内存区的前256个字节中,创建一个称谓程序段前缀(PSP)的数据区,DOS要利用PSP来和被加载程序进行通信(不理解的话可以暂且记住);在这段内存区的256字节处开始(在PSP的后面),将程序装入,程序的地址被设为SA+10H:0(这里确实是256个字节,256
=
1616,所以会空出
100H
的空间,也就是10:0H,“写法可能不对,暂且这么理解”);将这段内存区的段地址存入ds中,初始化其他相关的寄存器后,设置CSIP指向程序的入口。
——摘自并改编自
王爽《汇编语言》(第二版)
清华大学出版社
程序加载后,ds中存放着程序所在内存区的段地址,而cs中的是代码段的开头段地址,默认便宜地址都是为0
0b2d:0000到0b3d:0000这段空间是256字节,是PSP区,是用来让程序和dos进行通信的
另外最好不要在code segment中定义数据,不然会吧数据当成代码运行
可以另起一个data segment来定义数据
设置一个标志位Read_Flag就可以了,如下:
Read_BurstRam(&Read_Flag,1); //读时钟ram
if(Read_Flag != 1)
{
Write_Data(0x90,0xaa); //定义充电
Write_BurstClock(Cur_Time); //初始化时钟
Write_BurstRam(&Clock_Flag,1); //写时钟ram
Write_Data(0x8e,0x80); //打开写保护
}
ds后缀的文件名。全称为digital scan,是数码扫描格式的文件,并为数码扫描而专门开发出来的一种文件格式,具体应该在一些数码摄像、数码打印,数码传输,数码通信等一系列的范围领域中,并作为一种公用通用性的数码协议标准。现在市面上应该很少专门为这种文件而设的软件,一般在安全性方面考虑,所做出来的ds文件都是经过几重加密的。并不能单独打开,如想打开的话,可以用一些数码反编译器来进行反编译,然后保存为dat文件,再译成txt文件。
因为没有擦除以前的程序。
1、单片机写不进程序是因为单片机保存程序是使用EEPROM或者flash的,都需要先擦除,才能写入的。
2、第一次能烧进去,是因为单片机出场时本来就是已擦除过的,可以写入。
3、但之后的写入之前,都需要先擦除。
CS=0B3D,所以代码段是从B3D开始的
DS=0B2D,所以数据段是从B2D开始的
B2D到B3D之间是数据段空间,应该存储一些全局变量之类的数据,这些具体跟你的代码有关系
从编辑选择按列表按钮。
数控机床拷贝程序首先打开数控车床并插入U盘。从编辑选择按列表按钮。接下来选择 *** 作按钮。按下 *** 作按钮会出现检索页面,从程序列表中找到要复制的程序,按下最右边的+按钮。按下F键也就是输出按钮就可以将程序复制到U盘就好了。
以上就是关于王爽老师的汇编语言书 中为什么ds = 0B2D,程序就从0B3D开始全部的内容,包括:王爽老师的汇编语言书 中为什么ds = 0B2D,程序就从0B3D开始、汇编语言 程序运行后关于DS段寄存器的问题:、ds1302 写时钟程序 怎么实现掉电后1302继续计时,下次上电后时间和实际时间一样,给个具体的程序写法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)