• 实验内容

  【8086汇编-Day6】关于loop的实验-LMLPHP

  【8086汇编-Day6】关于loop的实验-LMLPHP

  【8086汇编-Day6】关于loop的实验-LMLPHP

  【8086汇编-Day6】关于loop的实验-LMLPHP

  【8086汇编-Day6】关于loop的实验-LMLPHP

  【8086汇编-Day6】关于loop的实验-LMLPHP

  【8086汇编-Day6】关于loop的实验-LMLPHP

  【8086汇编-Day6】关于loop的实验-LMLPHP

  【8086汇编-Day6】关于loop的实验-LMLPHP

  【8086汇编-Day6】关于loop的实验-LMLPHP

  【8086汇编-Day6】关于loop的实验-LMLPHP

  【8086汇编-Day6】关于loop的实验-LMLPHP

  因为是要复制代码,所以常规来做是取代码段地址来用,所以把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,我这里用不到,但我一开始没注意。。。

05-19 13:35