微机原理及应用实验 |
您所在的位置:网站首页 › 使用这条命令我们应该注意的是英语 › 微机原理及应用实验 |
MOV指令的使用及多字节加减法程序
前言初识MOV指令指令格式指令功能MOV指令可实现以下各种传送使用TD进行调试1.MOV BL,08H2.MOV CL,BL3.MOV AX,03FFH4.MOV BX,AX5.MOV [0200H],BX6.MOV ES:[0300H],AX
前言
本文用到的汇编调试程序为TD.exe,简称TD 具体使用方法请参照: 微机原理及应用实验——汇编环境MASM的使用 初识MOV指令通用数据传送指令包括一般传送指令MOV、堆栈操作指令PUSH和POP、交换指令XCHG、查表转换指令XLAT和字位拓展指令。 通用数据传送指令的执行对标志位不产生影响。 指令格式MOV dest,src 两操作数字长必须相同;两操作数不允许同时为存储器操作数;两操作数不允许同时为段寄存器;在源操作数是立即数时,目标操作数不能是段寄存器; 指令功能这里的dest表示目标操作数,src表示源操作数。 指令的功能是将一个操作数从源地址传送到目标地址,而源地址中的数据保持不变。 也就是说,MOV指令实际上是完成了一次数据的复制。 MOV指令可实现以下各种传送
启动TD(Turbo Debugger)输入程序段,观察执行情况并分析结果: MOV BL,08H MOV CL,BL MOV AX,03FFH MOV BX,AX MOV [0200H],BX MOV ES:[0300H],AX首先将上面的命令敲到TD程序里: ![]() ![]() 下面我们一步一步地运行上面这6条指令,按F8运行单条指令(运行python程序是F5,我经常会按错。。。) 1.MOV BL,08H执行这一条语句后,可以看到: 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],BXMOV [0200H],BX 这条指令的意思是把bx的值赋值到ds:[0200H]这个地址里(基地址默认为ds),先来看看这个地址里原来的值是多少: 如果这样看的不舒服,可以用将byte改成word类型来显示: MOV ES:[0300H],AX 这条指令的意思是把AX里的数据送入ES:[0300H]这个地址里 跟上一条指令做一下对比: MOV [0200H],BX 没有指定基地址时,基地址默认为ds;这里指定了基地址为es,所以我们要去es段找0300h这个偏移地址:
我们找到0300这个偏移地址,它里面的初始数据也是全0 下面执行一下MOV ES:[0300H],AX这个指令:
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |