微机原理 || MOV 指令使用规则(详细+例题)

MOV   目标, 源

DST目标操作数:通用寄存器、段寄存器、存储单元、立即数

SRC源操作数:通用寄存器、段寄存器、存储单元

MOV指令使用规则:
(1) 目标操作数无立即方式  例如,MOV 03H,AL; 为错误指令
(2)数据传送应注意数据类型的一致(要求等字长) ;或是至少有一个是确定的,另一个依附这个。
例如,MOV AL,1000H; 指令有类型错误
MOV AX,BL;指令有类型错误
MOV [BX], 9;是错误指令

(3) 两个操作数不能同时为存储器操作数  例如,MOV [2000H], [BX]; 是 错误指令
(4) 段寄存器不能用立即数赋值  例如,MOV DS,1000H;   错误指令
可以:       MOV AX, 1000H;         MOV DS,AX ; 赋初值

(5)不能改变CS的值   例如, MOV CS,AX;是错误指令
(6)两个操作数不能同时为段寄存器   例如,MOV ES,DS;  错误指令   可以通过AX
(7)立即数到存储单元的数据传送   例如,   MOV [BX], 9;是错误 指令
应该写为:   MOV BYTE PTR [BX] ,9  或    MOV WORD PTR [BX], 9
                   【PTR是修改操作数的类型的属性运算符。】

练习题:

1、下列指令正确的是()
A  MOV AL, BX
B  MOV [BX], [0111H]     
 两个操作数不能同时为存储器操作数 
C  MOV DS, 2000H          段寄存器不能立即数赋值(带S的:DS,CS,SS,ES)
D  MOV AL, [BX]

1、MOV AL,[BX]:MOV AL,[BX]的数据来源为内存[BX]的数据内容逻辑地址

2、MOV [BX],AL:MOV [BX],AL的数据来源为AL寄存器的数据内容偏移地址

2、下列指令正确的是() 。
A  MOV 35, AH 
 错
B  MOV AX, [BX+ BP]   

C  MOV DS, ES   错  :两个操作数不能同时为段寄存器(CS,DS,SS,ES
D  MOV AX, [01H]
B:   BX和BP寄存器不允许出现在同一个[ ]内,SI和DI也不能同时出现。
       你可以改成MOV AX,[
BX+SI]或MOV AX,[BX+DI]

3、下列指令错误的是() 。
A  MOV BX, AB99H   
B  MOV CH,00H
C  MOV CS, BX  

D  MOV DS,AX

CS是段寄存器,只保存段的地址,只能表达为 MOV  CS:[BX] , AX/CX/DX   或   MOV  AX , CS:[BX]

MOV AX,DATA   将伪段地址放入ax中,datas不是指令,而是伪指令,实际上是一个动态的内存地址,要想运行,必须先其地相放入到ds中,但是内存数不能放入段地址

MOV DS,AX   将段地址装入段寄存器

MOV AL,BX           错  MOV AL,BX      把BX是16位数据 放入AL是8位数据 不匹配
                                     MOV AL,   [BX+5]  把BX+5地址的数据放入 AL 自动取8位数据
                                     MOV AX,[BX+5]  把BX+5地址的数据放入 AX 自动取16位数据

MOV AX,[SI]05H    对  将SI+5字单元的内容送给AX
MOV [BX][BP],BX 
MOV DS,1000H    
  错 不可以立即 寻址方式 直接放入段寄存器
MOV DX ,09H         
MOV [1200],[SI]      错 两个操作数不能同时为存储器操作数

6、判断题:
指令MOV DX , DS: [AX]
执行的结果是将数据段一个字单元的内容送给DX。

AX在此模式下不能用来寻址。
可以用来寻址的有
BX,SI,DI,BP

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年12月27日
下一篇 2023年12月27日

相关推荐