mov指令用法小结 10

哪些用法是错误的?... 哪些用法是错误的? 展开
 我来答
aytv55
推荐于2017-12-16 · TA获得超过810个赞
知道小有建树答主
回答量:669
采纳率:0%
帮助的人:332万
展开全部
标准机器代码示例

1/2字节 0/1字节 0/1/2字节 0/1/2字节

操作码 mod reg r/m 位移量 立即数

mov ax,[BP+0] ; 机器代码是 8B 46 00

•前一个字节8B是操作码(含w=1表示字操作)

•中间一个字节46(01 000 110)是 “mod reg r/m”字节

–reg=000表示目的操作数为AX

–mod=01和r/m=110表示源操作数为[BP+D8]

•最后一个字节就是8位位移量〔D8=〕00

8086指令系统概述

•Intel 8086指令系统共有二万多条指令,用了一百多个助记符 ,可分成6类功能组:

① 数据传送类指令

② 算术运算类指令

③ 逻辑运算(位操作)类指令

④ 串操作类指令

⑤ 控制转移类指令

⑥ 处理机控制类指令

学习指令的注意事项

•指令的功能——该指令能够实现何种操作。通常指令助记符就是指令功能的英文单词或其缩写形式

•指令支持的寻址方式——该指令中的操作数可以采用何种寻址方式

•指令对标志的影响——该指令执行后是否对各个标志位有影响,以及如何影响

•其他方面——该指令其他需要特别注意的地方,如指令执行时的约定设置、必须预置的参数、隐含使用的寄存器等

指令格式的通用规定

•双操作数指令,除串操作指令外,不允许两个都是存储器。

•立即数,CS不能做目的操作数。

•IP不能显示地用做操作数。

1.数据传送类指令

•数据传送是计算机中最基本、最重要的一种操作

•传送指令也是最常使用的一类指令

•传送指令把数据从一个位置传送到另一个位置

•除标志寄存器传送指令(SAHF,POPF)外,均不影响标志位

•重点掌握 MOV PUSH POP XCHG IN OUT XLAT LEA

传送指令MOV(move)

1.立即数送寄存器或主存 MOV reg/mem , im

mov al , 4 ; al←4,字节传送

mov cx , 0ffh ; cx←00ffh,字传送

mov si , 200h ; si←0200h,字传送

mov byte ptr [si] , 0ah ; byte ptr 说明是字节操作

mov word ptr [si+2 ], 0bh ; word ptr 说明是字操作

# 注意立即数是字节量还是字量

# 明确指令是字节操作还是字操作

2.寄存器送(段)寄存器或主存 MOV reg/mem/seg , reg;
mov ax , bx ; ax←bx,字传送

mov ah , al ; ah←al,字节传送

mov ds , ax ; ds←ax,字传送

mov [bx] , al ; [bx]←al,字节传送

3.主存送(段)寄存器 MOV reg/seg , mem;
mov al , [bx]

mov dx , [bp] ; dx←ss:[bp]

mov es , [si] ; es←ds:[si]

# 不存在存储器向存储器的传送指令

4.段寄存器送寄存器或主存 MOV reg/mem , seg;

mov si , ds

mov ax , es ; ax←es

mov ds , ax ; ds←ax←es

# 对段寄存器的操作有一些限制MOV指令传送功能:

非 法 传 送 种 种

1.两个操作数的类型不一致 –-----例如源操作数是字节,而目的操作数是字;或相反

• 绝大多数双操作数指令,除非特别说明,目的操作数与源操作数必须类型一致,否则为非法指令 MOV AL , 050AH;非法指令:050Ah为字,而AL为字节

• 寄存器有明确的字节或字类型,有寄存器参与的指令其操作数类型就是寄存器的类型

• 对于存储器单元与立即数同时作为操作数的情况,必须显式指明;

byte ptr 指示字节类型 , word ptr 指示字类型。

2.两个操作数不能都是存储器 –------传送指令很灵活,但主存之间的直接传送却不允许

• 8086指令系统不允许两个操作数都是存储单元(除串操作指令),要实现这种传送,可通过寄存器间接实现

mov ax , buffer1;ax←buffer1(将buffer1内容送ax)

mov buffer2 , ax;buffer2←ax;这里buffer1和buffer2是两个字变量、;实际表示直接寻址方式

3.段寄存器的操作有一些限制 –----段寄存器属专用寄存器,对他们的操作能力有限

• 不允许立即数传送给段寄存器 MOV DS,100H;非法指令:立即数不能传送段寄存器

• 不允许直接改变CS值 MOV CS,[SI] ;不允许使用的指令

• 不允许段寄存器之间的直接数据传送 MOV DS,ES;非法指令:不允许段寄存器间传送
上海巴鲁图工程机械科技有限公司_
2022-05-15 广告
光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器每转输出60(我们用老板没有说)个脉冲,五线制。其中两根为电源线,三根为脉冲线(A相、B相、Z)。电源的工作电压为 (+5~+24V)直流电源。光... 点击进入详情页
本回答由上海巴鲁图工程机械科技有限公司_提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式