1-----------------------------------------------------------------------------
mov dst,src
dst是目的 *** 作数,src是源 *** 作数,指令实现的功能是:将源 *** 作数送到目的 *** 作数中,即:(dst) <--(src)
1.dst和src类型必须匹配,即必须同为字节类型或是字类型。
2.目的 *** 作数dst不能为立即数或代码段寄存器CS,指针寄存器IP既不能作源 *** 作数也不能作目的 *** 作数。
3.mov指令不能在两个内存单元之间传送数据,即目的 *** 作数和源 *** 作数不能同时为内存单元。
4.可以将立即数直接送到内存单元里,但必须在内存单元前用word ptr或byte ptr指明指令进行的是字 *** 作还是字节 *** 作,并且当是直接寻址时必须使用段跨越前缀。mov [0000h],1234h ;错误!类型不匹配,不知道ds:0000h是字单元还是字节单元mov [0000h],ax ;错误!immediate mode illegalmov ds:[0000h],ax ;正确mov ds:[0000h],1234h ;正确,隐式指定进行的是字 *** 作mov ds:[0000h],12h ;错误!12h改成0012h也错误mov word ptr ds:[0000h],34h ;正确,将立即数1234h送到字单元ds:0000h中,但必须显式指定段寄存器(因为是直接寻址)mov word ptr [bx],34h ;正确,将立即数1234h送到字单元ds:bx中,不必显式指定段寄存器mov word ptr [0000h],1234h ;错误!immediate mode illegalmov word ptr [0000h],ax ;错误!immediate mode illegal5.不能将立即数传送给段寄存器,但可以将内存里的数据直接传送给段寄存器,段名也是立即数.data segment x DW 1234hdata ends code segmentassume ds:data,cs:codestart: mov ds,1234h ;错误!不能将立即数传送给段寄存器 mov ds,data ;错误!段名data也是立即数 mov ds,[1000h] ;正确,将内存里的数据直接传送给段寄存器 mov ds,x ;正确,x会被编译器处理为一个地址,和上一条指令类似code ends end start6.mov指令不影响标志位。7.不能 *** 作 CS,IP 这两个寄存器 (JMP代替 ) 总结以上是内存溢出为你收集整理的指令整理全部内容,希望文章能够帮你解决指令整理所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)