实验内容
因为是要复制代码,所以常规来做是取代码段地址来用,所以把cs值mov给ax,但是这只是临时的,ax之后还有别的用途,那就把指令当作数据来存(把ax值 mov给ds,表示这一段地址用作代码段,也方便后面内容拷贝的工作)
程序中使用了es拓展段寄存器存放目的地址来做拷贝。(0020:0000即0000:0200)
第二个空。。。看看mov al [bx]的地址是多少就能算出来要拷贝多少字节。即28个字节,通过loop28次实现,即给cx赋值1Ch
实验总结
给寄存器赋值时注意开头为字母的数值前面应加上0,表示这是一个数值。
再给内存空间传字数据时,应加上word ptr以标识
选做里面栈里面对数据的操作是对字数据,所以这压栈的时候,需要关注下小端法,不然数据存进去就是02,01,04,03,,,,比如push ax,ax里的值应 该是0201h这样写
再有一点就是最后一个实验,长度我多了五个字节,多在mov ax datas 跟mov ds ax 上,这不是我写的,集成环境里方便放一些初始数据,有这么一个datas段,然后把他地址给ds,我这里用不到,但我一开始没注意。。。