1:目的操作数和源操作数不能同时用存储器寻址方式,这个限制适用于所有指令。:
2:目的操作数DST和源操作数SRC不允许同时为段寄存器;:
3:目的操作数DST不能是CS,也不能用立即数方式。
4:POP指令的DST不允许是CS寄存器
5:用[0]表示一个内存单元时,0表示单元的偏移地址,段地址默认在ds中,单元的长度(类型)可以由具体指令中的其他操作对象(比如说寄存器)指出。
6: 在8086CPU中,只有这4个寄存器可以用在“[…..]”中来进行内存单元的寻址 bx、si、di和bp
这4个寄存器可以单个出现或只能以四种组合出现;bx和si,bx和di,bp和si,bp和di。
在串处理指令中,SI用作隐含的源串地址,默认在DS中;DI用做隐含的目的串地址,默认在ES中。
7: 指令在执行前,所要处理的数据可以在3个地方:CPU内部、内存、端口。
8:当数据存放在内存中的时候,我们可以用多种方式来给定这个内存单元的偏移地址,这种定位内存单元的方法一般被称为寻址方式
指令要处理的数据有多长
1) 通过寄存器名指明要处理的数据的尺寸:mov ax,1 inc al
2) 在没有寄存器名存在的情况下,用操作符X ptr指明内存单元的长度,X在汇编指令中可以为word或byte。add word ptr [bx],2 inc byte ptr ds:[0]
3) 其他方法 有些指令默认了访问的是字单元还是字节单元,如 push [1000H]
要完整地描述一个内存单元,需要两种信息:
1) 内存单元的地址 :由段寄存器和偏移量给出
2) 内存单元的长度(类型)。
movq:64位数据拷贝,如果内存8位对齐的话,是一个64位写,否则2个32位写。
movd:32位数据拷贝,注意:如果从内存向MMX寄存器拷贝,MMX高32位清零!
l长字4个byte movl 32 W movq 8个byte 64位数据拷贝,如果内存8位对齐的话,是一个64位写,否则2个32位写。
pushl 32位 pushq 64位
rbp 64位 ebp 32位
2:目的操作数DST和源操作数SRC不允许同时为段寄存器;:
3:目的操作数DST不能是CS,也不能用立即数方式。
4:POP指令的DST不允许是CS寄存器
5:用[0]表示一个内存单元时,0表示单元的偏移地址,段地址默认在ds中,单元的长度(类型)可以由具体指令中的其他操作对象(比如说寄存器)指出。
6: 在8086CPU中,只有这4个寄存器可以用在“[…..]”中来进行内存单元的寻址 bx、si、di和bp
这4个寄存器可以单个出现或只能以四种组合出现;bx和si,bx和di,bp和si,bp和di。
在串处理指令中,SI用作隐含的源串地址,默认在DS中;DI用做隐含的目的串地址,默认在ES中。
7: 指令在执行前,所要处理的数据可以在3个地方:CPU内部、内存、端口。
8:当数据存放在内存中的时候,我们可以用多种方式来给定这个内存单元的偏移地址,这种定位内存单元的方法一般被称为寻址方式
指令要处理的数据有多长
1) 通过寄存器名指明要处理的数据的尺寸:mov ax,1 inc al
2) 在没有寄存器名存在的情况下,用操作符X ptr指明内存单元的长度,X在汇编指令中可以为word或byte。add word ptr [bx],2 inc byte ptr ds:[0]
3) 其他方法 有些指令默认了访问的是字单元还是字节单元,如 push [1000H]
要完整地描述一个内存单元,需要两种信息:
1) 内存单元的地址 :由段寄存器和偏移量给出
2) 内存单元的长度(类型)。
movq:64位数据拷贝,如果内存8位对齐的话,是一个64位写,否则2个32位写。
movd:32位数据拷贝,注意:如果从内存向MMX寄存器拷贝,MMX高32位清零!
l长字4个byte movl 32 W movq 8个byte 64位数据拷贝,如果内存8位对齐的话,是一个64位写,否则2个32位写。
pushl 32位 pushq 64位
rbp 64位 ebp 32位