作业帮 > 综合 > 作业

在微机原理中,什么不能当源操作数,什么不能当目的操作数?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 07:53:19
在微机原理中,什么不能当源操作数,什么不能当目的操作数?
求高手解答,尽量详细一点,谢谢
问的比较笼统,要针对具体的指令.
对于MOV指令而言:
CS、IP、标志寄存器FLAG都不能直接作为目标操作数,立即数由于不是存储单元(也就是“容器”),所以任何时候都不能作为目的操作数,两个内存单元不可以直接传递数据(可以通过CPU寄存器间接中转).针对源操作数的限制则比较少,除了不可寻址的寄存器IP、FLAG(这两个寄存器任何时候不可以单独出现在指令中),其他的都可以作为源操作数(如MOV AX,CS就是合法指令),只是要注意源和目的操作数类型的匹配(同为字节或同为字,不允许字节对字的传送,如MOV AL,BX指令就是非法指令)
上述针对MOV指令的限制则可以通过其他指令解决,比如CS和IP可以通过控制转移指令间接修改,如JMP、CALL指令就是通过修改CS和IP实现程序转移的,FLAG寄存器可以使用PUSHF和POPF指令借助堆栈间接读取或修改.多个内存单元对多个内存单元的传输可以通过串操作指令(MOVSB、MOVSW)来进行.
简单说这么多吧,供参考,仍有问题可以再交流.