Java教程

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

本文主要是介绍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

这篇关于20220415汇编第五章实验完结以及第六章学习总结回顾的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!