由8086看汇编语言之--MOV编

来源:互联网 发布:python检测sql注入 编辑:程序博客网 时间:2024/05/18 03:50















MOV指令允许进行如下操作:

 

(1)MOV  寄存器     , 寄存器/内存单元/段寄存器/立即数

(2)MOV  内存单元  , 寄存器/段寄存器/立即数

(3)MOV  段寄存器 , 寄存器/内存单元

 

MOV指令不允许进行下述操作:

 

(1). 两个操作数的类型不一致

     例如源操作数是字节,而目的操作数是字;或相反

     绝大多数双操作数指令(包括传送指令),除非特别说明,目的操作数与源操作数必须类型一致,或者同为字,或者同为字节,否则为非法指令。

 

例如:
MOV AL,050AH ;非法指令:050Ah为字,而AL为字节

寄存器有明确的字节或字类型,有寄存器参与的指令其操作数类型就是寄存器的类型。对于存储器单元与立即数同时作为操作数的情况,必须显式指明。用byte ptr指示字节类型,用word ptr指示字类型。

 


(2). 两个操作数不能都是存储器

 

传送指令很灵活,但主存之间的直接传送却不允许
8086指令系统不允许两个操作数都是存储单元(除串操作指令),没有主存至主存的数据传送。要实现这种传送,可通过寄存器间接实现。


(3). 段寄存器的操作有一些限制:段寄存器属专用寄存器,对他们的操作能力有限


不允许立即数传送给段寄存器,例如:

MOV DS,100H ;非法指令:立即数不能传送段寄存器

不要直接改变CS值,例如:

MOV CS,[SI] ;不允许使用的指令


 

不允许段寄存器之间的直接数据传送,例如:

MOV DS,ES ;非法指令:不允许段寄存器间传送

 

 

0 0
原创粉丝点击