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。错文章来源:https://www.toymoban.com/news/detail-459153.html
AX在此模式下不能用来寻址。
可以用来寻址的有BX,SI,DI,BP,文章来源地址https://www.toymoban.com/news/detail-459153.html
到了这里,关于微机原理 || MOV 指令使用规则(详细+例题)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!