汇编的数据处理指令

mov指令

这个指令是最常用的数据转移指令,表示将原操作数转移到目的操作数,指令的格式为。
mov 目的操作数,原操作数

mov reg/mem,imm
mov reg/mem/seg,reg
mov reg/seg,mem

需要注意的是不能将主存储器的内容传送到主存储器中,不能将立即数直接传送到段寄存器中。


数据传送.png

下面举一些例子

mov ax,bx

mov ax,1H

mov [ax],bx

mov ss,bx

mov ax,77H
mov ss,ax

在数据传送指令中两个操作数必须有一个的类型是确定的,如果两个类型都确定必须要两个类型相同否则会出错。

lea指令

lea指令是地址传送指令,表示获取一个变量的地址,和offset相似都可以获取一个变量的偏移地址,但是也是不同的,offset获取地址是在汇编阶段得到的因此使用offset运行速度是比较快的,而lea指令是在运行中获取的地址,下面我们举例说明两者的不同。

mov eax,offset var   var是一个变量,这个变量在汇编时这个var的地址是确定的,而这个指令也是在汇编阶段来获取var的地址的,因此可以使用这种方式。

mov eax,offset [ebx+4]  使用这种方式便是错误的,因为[ebx+4]的地址在汇编阶段是不能确定的。
 
lea eax,[ebx*4+3] 这个指令是正确的,将原操作数的地址存放在eax中。

你可能感兴趣的:(汇编的数据处理指令)