mov指令有:1、立即数传送;2、寄存器传送;3、存储器传送;4、段寄存器传送。立即数传送通常是指在立即寻址方式指令中给出的数。可以是8位、16位或32位,该数值紧跟在操作码之后。如果立即数为16位或32位,那么,它将按“高高低低”的原则进行存储。
1、立即数传送
立即数通常是指在立即寻址方式指令中给出的数。可以是8位、16位或32位,该数值紧跟在操作码之后。如果立即数为16位或32位,那么,它将按“高高低低”的原则进行存储。
MOV CL,4 ;CL←4,字节传送
MOV DX,0FFH ;DX←00FFH,字传送
MOV SI,200H ;SI←0200H,字传送
MOV BVAR,0AH ;字节传送
;假设BVAR是一个字节变量,定义如下:BVAR DB 0
MOV WVAR,0BH ;字传送
;假设wvar是一个字变量,定义如下:wvar dw 0
2、寄存器传送
寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。
mov ah,al ;ah←al,字节传送
mov bvar,ch ;bvar←ch ,字节传送
mov ax,bx ;ax←bx,字传送
mov ds,ax ;ds←ax,字传送
mov [bx],al ;[bx]←al,字节传送
3、存储器传送
存储器单元实际上是时序逻辑电路的一种。按存储器的使用类型可分为只读存储器(ROM)和随机存取存储器(RAM),两者的功能有较大的区别,因此在描述上也有所不同。
mov al,[bx] ;al←ds:[bx]
mov dx,[bp] ;dx←ss:[bp+0]
mov dx,[bp+4] ;dx←ss:[bp+4]
mov es,[si] ;es←ds:[si]
4、段寄存器传送
段寄存器是因为对内存的分段管理而设置的。计算机需要对内存分段,以分配给不同的程序使用(类似于硬盘分页)。在描述内存分段时,需要有如下段的信息:1.段的大小;2.段的起始地址;3.段的管理属性(禁止写入/禁止执行/系统专用等)。需要用8个字节(64位)存储这些信息,但段寄存器只有16位,因此段寄存器中只能存储段号(segment selector,也译作“段选择符”),再由段号映射到存在内存中的GDT(global (segment) descriptor table,全局段号记录表),读取段的信息。
MOV [SI],DS
MOV AX,DS ;AX←DS
MOV ES,AX ;ES←AX←DS
注意:
MOV指令不能在两个存储器之间进行数据直接传送。
MOV指令不能在两个段寄存器之间进行数据直接传送&
延伸阅读:
什么是MOV
(片内RAM)传送指令MOV(Move)表示把一个字节、字或双字的操作数从源位置传送到目的位置,源操作数的内容不变。
(片内RAM)传送指令MOV(Move)把一个字节、字或双字的操作数从源位置传送到目的位置,源操作数的内容不变。可以实现立即数到通用寄存器或主存的传送,通用寄存器与通用寄存器、主存或段寄存器之间的传送,主存与段寄存器之间的传送。该操作属于复制性质,不属于搬家性质。
格式:MOV DST,SRC(从SRC复制数值,覆盖DST)。
目的操作数要与源操作数类型要一致,不能一个是字,一个是字节
目的操作数要和源操作数类型之一必须要有明确的类型
立即数不能作为目的操作数
不能用立即寻址方式给段寄存器传数
源操作数和目的操作数不能同时为存储器操作数,即存储单元之间不能用MOV指令直接传送
CS和IP不能作为目的操作数,但CS可以作为源操作数。
段寄存器之间不能用MOV指令直接传送
在传送字单元时,遵循“高字节存放在高地址,低字节存放在低地址”的原则。
文章标题:mov指令有哪些,发布者:小编,转载请注明出处:https://worktile.com/kb/p/35088