MOV指令的使用及多字节加减法程序

  • 前言
  • 初识MOV指令
  • 指令格式
  • 指令功能
  • MOV指令可实现以下各种传送
  • 使用TD进行调试
    • 1.MOV BL,08H
    • 2.MOV CL,BL
    • 3.MOV AX,03FFH
    • 4.MOV BX,AX
    • 5.MOV [0200H],BX
    • 6.MOV ES:[0300H],AX

前言

本文用到的汇编调试程序为TD.exe,简称TD

具体使用方法请参照:

  • 微机原理及应用实验——汇编环境MASM的使用

初识MOV指令

通用数据传送指令包括一般传送指令MOV、堆栈操作指令PUSH和POP、交换指令XCHG、查表转换指令XLAT和字位拓展指令。

通用数据传送指令的执行对标志位不产生影响。

指令格式

MOV dest,src

  • 两操作数字长必须相同;
  • 两操作数不允许同时为存储器操作数;
  • 两操作数不允许同时为段寄存器;
  • 在源操作数是立即数时,目标操作数不能是段寄存器;

指令功能

这里的dest表示目标操作数,src表示源操作数。

指令的功能是将一个操作数从源地址传送到目标地址,而源地址中的数据保持不变。

也就是说,MOV指令实际上是完成了一次数据的复制。

MOV指令可实现以下各种传送


注:

  • reg:寄存器
  • mem:存储器
  • sreg :段寄存器
  • data :8或16立即数

使用TD进行调试

启动TD(Turbo Debugger)输入程序段,观察执行情况并分析结果:

MOV BL,08H
MOV CL,BL
MOV AX,03FFH
MOV BX,AX
MOV [0200H],BX
MOV ES:[0300H],AX

首先将上面的命令敲到TD程序里:

与我们平常使用的编辑器不太一样:

  • 光标(一长条的横杠)在哪里,就在哪里输入指令,直接输入即可
  • 运行指令要看指针位置

    可以看到,当前的指针ip,其值为0100,这里的0100指的是cs的偏移地址,可以看到,对应着的就是第一行指令

下面我们一步一步地运行上面这6条指令,按F8运行单条指令(运行python程序是F5,我经常会按错。。。)

1.MOV BL,08H

执行这一条语句后,可以看到:

首先,bx的值变了,bh是bx的高8位,bl是bx的低8位

MOV BL,08H

这条指令的意思是将08H这个值赋给bl,即执行该指令后,bx应该变成0008h,结果与上图一致

另外,执行完一条指令后,ip会自动指向下一条指令,该指令的偏移地址为0102h

再来看下一条指令

2.MOV CL,BL

执行该指令后:

MOV CL,BL

该指令的意思是把bl的值赋给cl,由上图可知,cx的低8位和bx的8位是一样的,结果一致

于此同时,ip也指向了下一条指令

3.MOV AX,03FFH

该指令执行后:

MOV AX,03FFH

该指令的意思是把03ffh这个十六进制的值赋给ax,结果与上图一致,ax的值变成了03ff

4.MOV BX,AX

执行该指令后:

MOV BX,AX

该指令的意思是把AX的值赋给BX,如图所示,现在AX,BX的值都是03ff

5.MOV [0200H],BX

MOV [0200H],BX

这条指令的意思是把bx的值赋值到ds:[0200H]这个地址里(基地址默认为ds),先来看看这个地址里原来的值是多少:

可以看到,现在ds:[0200H]里全0,当我们运行这条指令后:

看,03ff这个值就被存到ds:[0200H]里了

如果这样看的不舒服,可以用将byte改成word类型来显示:

6.MOV ES:[0300H],AX

MOV ES:[0300H],AX

这条指令的意思是把AX里的数据送入ES:[0300H]这个地址里

跟上一条指令做一下对比:

MOV [0200H],BX

没有指定基地址时,基地址默认为ds;这里指定了基地址为es,所以我们要去es段找0300h这个偏移地址:


这里可以看到,ds和es的基地址都是一样的,说明他们公用了一个基地址

我们找到0300这个偏移地址,它里面的初始数据也是全0

下面执行一下MOV ES:[0300H],AX这个指令:


可以看到,0300h这个偏移地址里的值也变成ax的值了

微机原理及应用实验——MOV指令的使用详解相关推荐

  1. 微机原理-虚拟仿真实验-DAC0832数模电路汇编代码

    微机原理-虚拟仿真实验-DAC0832数模电路汇编代码 ;-------------------------------------- DATA SEGMENTMESS1 DB 'sawtooth Q ...

  2. 观看实验中微型计算机虚拟拆装演示,虚拟仿真实验 北斗一号微机原理虚拟仿真实验系统64位 v3.0...

    下面我们对虚拟仿真实验 北斗一号微机原理虚拟仿真实验系统64位 v3.0文件阐述相关使用资料和虚拟仿真实验 北斗一号微机原理虚拟仿真实验系统64位 v3.0文件的更新信息. 虚拟仿真实验 北斗一号微机 ...

  3. 实验6 8255并行接口实验【微机原理】【实验】

    实验6 8255并行接口实验[微机原理][实验] 前言 推荐 3.2 8255并行接口实验 3.2.1实验目的 3.2.2实验内容 3.2.3实验原理 3.2.4 实验说明及步骤 3.2.5实验提示 ...

  4. 微型计算机原理与应用实验指导书,微机原理与应用实验指导书-20180316.doc

    微机原理与应用实验指导书-20180316 PAGE PAGE 1微型计算机原理与应用实 验 指 导 书控制科学与工程学院实验中心山东大学二零一八年三月目 录汇编语言开发环境实验实验1-1 汇编语言程 ...

  5. 微型计算机测控系统课程设计报告,微机原理课程设计实验报告--步进电机控制.docx...

    文档介绍: 2010-2011学年第一学期 微机原理课程设计实验报告 课题名:步进电机控制 一.课题内容和提示: 编程提示: (1)步进电机驱动原理是通过对每相线圈中的电流的顺序切换来使电机做步进式旋 ...

  6. 计算机汇编指令mov和mova,汇编语言中mov和lea指令的区别详解

    指令(instruction)是一种语句,它在程序汇编编译时变得可执行.汇编器将指令翻译为机器语言字节,并且在运行时由 CPU 加载和执行. 一条指令有四个组成部分: 标号(可选) 指令助记符(必需) ...

  7. call指令和ret指令【笔记+详解】

    笔记目录 call指令和ret指令[笔记] 1 引子 2 call和ret的简单运用 3 call指令本质含义详解 4 ret指令 5 总结及汇编环境资源 call指令和ret指令[笔记] 1 引子 ...

  8. swi 指令能用在C语言吗,SWI指令---软件中断实例详解

    SWI指令---软件中断实例详解 转载于:http://blog.csdn.net/panqihe/article/details/1615574 SWI,即software interrupt软件中 ...

  9. SWI指令---软件中断实例详解(原创)

                              SWI指令---软件中断实例详解 关键字:  SWI,指令,软件中断,实例,详解 SWI,即software interrupt软件中断.该指令产生 ...

最新文章

  1. 轻量级WEB开发框架flask
  2. 【ijkplayer】编译 Android 版本的 ijkplayer ① ( Ubuntu 安装 Git 软件 | 下载 ijkplayer 代码 )
  3. 【Boost】boost库中function的用法
  4. 图像信噪比计算公式_CT 科研设计之图像质量对比研究三步曲
  5. 【Python文件处理】递归批处理文件夹子目录内所有txt数据
  6. LeetCode 1562. 查找大小为 M 的最新分组
  7. 央视记者王冰冰为何走红?博导和研究生写了一篇论文进行了分析
  8. 试卷8449c 语言,二级C语言上机题库参考答案
  9. 携反省一起上路的FreeEIM
  10. 专有网络 VPC > VPC与外部网络连接 > 连接VPC
  11. java 走马灯程序,详解微信小程序实现跑马灯效果(附完整代码)
  12. 2018/03/01
  13. matlab 蔡旭晖,matlab基础与应用教程
  14. 思科模拟器服务器怎么显示字样,思科模拟器服务器怎么设置网关
  15. php curl 417,cURL简单文件上传-417预期失败
  16. c 实现走迷宫流程图_迷宫求解(有流程图).doc
  17. Thrift(二):Thrift注解
  18. 【简单易懂的Unity5 Shader着色器入门教程】 笔记
  19. 色彩系列教程(3):实际运用
  20. 玩转iOS开发:iOS 10 新特性《Siri Kit》

热门文章

  1. SQL--高级查询--联表查询
  2. 用python控制您的安卓手机
  3. 关于torch.cumprod()累积连乘
  4. win7安装小米8驱动
  5. android驱动开发入门
  6. 修炼内功之JavaScript设计模式(二)
  7. 苹果cmsV10自定义添加采集资源站教程
  8. 个人工具开发【卡片式记忆面试题开发】v.1.0.2
  9. 欧兰素击退敏感肌四大法宝
  10. kali安装到u盘的弊端_受到公众关注的弊端