20220415汇编第五章实验完结以及第六章学习总结回顾


1.es寄存器,es寄存器和ds寄存器的作用是一样的,都是以bx寄存器为偏移地址,可以将其理解为和ds寄存器并行的寄存器,至于有什么不同。在网上查询资料得知es为扩展寄存器,在数据的移动、比较和搜索这类指令中时,ds对应si,es对应di,前者表示源后者表示目的地。程序加载以后,ds放着此程序所在的内存的段地址,如果不表示据的移动、比较和搜索的时候es和ds的数据基本相同都表示储存数据的数据段

2.

assume cs:code ; assume我理解是将cs和code这个段联系起来,即cs段地址和code段地址一样。code即是一个名字也是一个指向内存中一个段的数据即XXXXh

code segment ;segment我理解是从此刻开始,下面的都是code段的定义,即我在汇编的语言规则里,我说它是什么,它就是什么

mov ax,cs ;这里的cs,cpu知道你说的是段地址。因为第一句我们说cs和code段联系起来,所以这里填写code也没有问题,作用和填写cs一样

mov ds,ax;将段地址转移到ds中,此时ds:[bx]里面存储的是cs:code中的指令数据

mov ax,0020h;将0020h转移到ax中

mov es,ax;将ax中的数据转移到es中,因为es的作用和ds的作用一致,所以es:[bx]中存储的就是0020:0段的数据

mov bx,0;将0转移给bx

mov cx,17;因为我们转移的是cs中的指令,即问题在于要转移多少次,那么就看每次转移的是字节还是字,然后整个cs:code中有多少字节,多少字。用-u先去查看整个程序的长                     度,在确定cx的长度

s:mov al,[bx] ;这个程序表述数据的移动,所以ds是源,es是目的地,移动的是字节,我是小端机器,存放的是低位有效的数据

mov es :[bx],al;传送给es

inc bx

loop s

mov ax,4c00h

int21h

code ends

end

原创文章,作者:506227337,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/244332.html

(0)
上一篇 2022年4月17日 01:02
下一篇 2022年4月17日 01:02

相关推荐

发表回复

登录后才能评论