mov指令详解 x86汇编语言的MOV指令?
x86汇编语言的MOV指令?
Mov是汇编语言中的数据传输指令。
用法如下:
mov move(操作码:88、89、8a、8b、8C、8e…)
mov指令将第二个操作数(可以是寄存器的内容、内存中的内容或值)复制到第一个操作数(寄存器或内存)。Mov不能用于直接从内存复制到内存。其语法如下:
mov
mov
mov
示例
mov eax,ebx-将ebx的值复制到eax
mov byte PTR[var],5-mov指令的功能是传输数据,如movax,[1000h],对内存单元进行寻址,并将内存单元中的数据发送到ax;lea指令的功能是偏移地址,如leaax,[1000h],用于将源操作数[1000h]的偏移地址1000h发送到ax。理解时可以直接删除[],相当于movax,1000h,再如:leabx,[ax]相当于movbx,ax;leabx,table相当于movbx,offset table。但有时mov不能直接用来代替:例如leaax,[Si 6]不能直接用movax,Si 6代替;但可以用movax,Si Addax,6代替。
汇编语言MOV指令是什么?
汇编语言中的Mov传输指令是将源操作数传输到目标操作数。它不一定与地址有关。地址仅在访问内存时使用。
Mov BX,5
此指令将立即数5传输到寄存器BX,即寄存器内容(BX)=5
此指令只有寄存器和立即数,不涉及地址
Mov BX,7
此指令将立即数7传输到寄存器BX,即寄存器内容(BX)=7
呵呵,寄存器BX 5的原始内容被覆盖
只有当数据被发送到内存单元时,才会使用地址,即内存的地址。
例如:mov[2000h],1234]是将立即数1234传输到有效地址为2000h的内存单元。
(1)这两条指令在没有上下文的情况下无法判断它们对您的实际意义。你看不到任何与字符串操作的直接关系。在字符串操作中,通常将两个字符串分别放在由ds:Si和es:Di寻址的存储器单元中,以便于字符串比较、移动和其他操作。
(2)MOV,Si,DS指令的意义是将数据段寄存器的段地址值赋给Si,执行后:Si=DS
(3)MOV,Di,ES指令的意义是将扩展数据段寄存器的段地址值赋给Di。也就是说,在执行之后,di=es
一般来说,这种指令很少在程序中使用。如果要保护DS和ES的值,通常使用push-DS和push-ES指令。如果要计算物理地址,还需要将段地址放入ax寄存器。当然,8086CPU给出了这样的指令。在某些情况下,可以使用您提到的两个说明。
我希望我能帮助你。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。