汇编程序语言设计 MOOC 郑州大学 第三周


学习记录和个人理解,非笔记,有误区,慎看!~

老狗转行系列之汇编:
本职烧锅炉,现转AI系列,基础薄弱,目前正在学习基础,有兴趣的一起来~

3-1立即数方式

1.寻址方式

在这里插入图片描述
指令执行结束之后怎样寻找到下一指令。
在这里插入图片描述
指令包含数据,所以是立即数寻址
在这里插入图片描述
在这里插入图片描述
总结一下:
在这里插入图片描述
在这里插入图片描述
没能理解指令的寻址是怎么搞得?这课程不结合书看,是越上越糊涂啊。。。

2.立即数寻址

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为什么可以区分B8H不是操作数,而是操作码?
代码段应该也是寄存器的一种,为什么非得复制到通用寄存器EAX里面,还是专用寄存器并不在CPU里面?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
寻址(Addressing)即是在处理器执行当前指令时,如何寻取当前指令所要操作的数据(称为操作数 oprand)的方式(称为数据寻址),以及如何寻取下一条指令的方式(称为指令寻址)。数据寻址可分为三大类:立即数寻址、寄存器寻址、存储器寻址。指令寻址方式也包括相对寻址、直接寻址和间接寻址。
立即数寻址方式也可以用于操作码

3-2 寄存器寻址

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里面mov bvar,cl。到底将cl里面的数据送到bvar何处,是覆盖还是续写。
在这里插入图片描述
在这里插入图片描述

3-3 存储器寻址

1.储存器寻址

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.直接寻址

在这里插入图片描述
变量名和他的偏移地址可以划等号count 相当于符号地址和直接【405。。】效果一样的。如果在数据段中,我们是可以不写DS:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
word ptr 将强制将后面Dvar+2,使用16位计算,应该是指后面覆盖掉多少数据。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
获得有效地址还是需要将带入到CPU中转换为物理地址。

3.存储器的间接寻址

32位寻址上只有寄存器部分
在这里插入图片描述
[ebx]将ebx里面数据看出地址,然后交给处理器然后将把该地址里面的数据转移给目标操作数。
在这里插入图片描述
mov [EBX],100将100赋值给ebx所指的内存单元当中,但是会出错,因为所指单元的数据类型并没有说明。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
寄存器间接寻址和直接寻址,不同,一个是就是要找寄存器里面的数据,一个要的是寄存器里面地址对应的数据

4.存储器的寄存器相对寻址

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(课程讨论-摘录)
1.寄存器就是一个暂时存放数据(或指令)的地方,由于就在处理器内部,所以“手到擒来”、用着非常方便。处理器指令有一半的操作数都是来自寄存器,所以寄存器寻址很常用,也很好用,给出寄存器名字(其实就是寄存器内部编号)就可以了。
2.在汇编语言中直接就用寄存器吧,定义都省了。
3.立即寻址方式:
操作数就包含在指令中。作为指令的一部分,跟在操作码后存放在代码段。
这种操作数成为立即数。立即数可以是8位的,也可以是16位的。
4、寄存器寻址方式:
操作数在CPU内部的寄存器中,指令指定寄存器号。
对于16位操作数,寄存器可以是:AX、BX、CX、DX、SI、DI、SP和BP等。
对于8位操作数,寄存器可以是AL、AH、BL、BH、CL、CH、DL、DH。
这种寻址方式由于操作数就在寄存器中,不需要访问存储器来取得操作数
因而可以取得较高的运算数度。
5、直接寻址方式:
操作数在寄存器中,指令直接包含有操作数的有效地址(偏移地址)
注:操作数一般存放在数据段
所以操作数的地址由DS加上指令中直接给出的16位偏移得到。如果采用
段超越前缀,则操作数也可含在数据段外的其他段中。
6、寄存器间接寻址方式:
操作数在寄存器中,操作数有效地址在SI、DI、BX、BP
这四个寄存器之一中。在一般情况下,如果有效地址在
SI、DI和BX中,则以DS段寄存器中的内容为段值。如果
有效地址在BP中,则以SS段寄存器中的内容为段值

猜你喜欢

转载自blog.csdn.net/weixin_42174342/article/details/84633159