汇编语言||基本传送指令MOV的用法详解
MOV指令
MOV指令,能实现以下操作:
- CPU内部寄存器之间数据的任意传送(除了码段寄存器CS和指令指针IP以外)。
- 立即数传送至CPU内部的通用寄存器组(即AX、BX、CX、DX、BP、SP、SI、DI),给这些寄存器赋初值。
- CPU内部寄存器(除了CS和IP以外)与存储器(所有寻址方式)之间的数据传送,可以实现一个字节或一个字的传送。
- 能实现用立即数给存储单元赋初值。
其中:
所以,注意MOV的使用范围
下面给出一些具体示例:
立即数传送:
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
寄存器传送
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,字节传送
存储器传送:
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]
段寄存器传送:
MOV [SI],DS
MOV AX,DS ;AX←DS
MOV ES,AX ;ES←AX←DS
vcxvd: 请问这是哪本书上的
我真想进步: 这里insert新值是类似这样的形式: INSERT INTO spj.j (column1) VALUES (value1); 如果设置了默认值的column2没有在里面, 此时默认值才有 用! 还有就是插人数据后再修改默认值,在mysql里面是没有效果的!
小白victor: 楼主,请问什么情况下需要MOV指令在寄存器之间传递数据呢?为什么不直接拿src寄存器的数据去用,而是先MOV到dst寄存器呢?
2301_77191472: 你没树枝
xuni66: 哎呀 你干嘛