实验二 熟悉常用指令的使用

实验二 熟悉常用指令的使用
一、实验目的
熟悉指令系统,掌握常用指令的用法;通过实验加深对各种寻址方式的理解;能熟练使用DEBUG中的命令对指令进行反汇编,观察并了解机器代码。
二、实验题
1.求出以下各十六进制数与十六进制数62A0之和,单步执行、观察标志位SF、ZF、CF、OF的值,并与自己的判断进行比较。
(1)1234 (2)4321 (3)CFA0 (4)9D60
设置ax为62a0,再加上要加的数,结果保存在ax寄存器当中。
image
image
image
image

提示:加法指令 ADD DST, SRC
2.求出以下各十六进制数与十六进制数4AE0的差值,单步执行、观察标志位SF、ZF、CF、OF的值,并与自己的判断进行比较。
(1)1234 (2)5D90 (3)9090 (4)EA04
image
image
image
image

提示 减法指令 SUB DST, SRC
3. 将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。
MOV AX, 1
ADD AX, AX
JMP 2000:0003
image
image

  1. 使用 Debug,将下面的内容写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器中内容的变化。
    b8 20 4e
    image

05 16 14
image

bb 00 20
image

01 d8
image

89 c3
image

01 d8
image

b8 1a 00
image

bb 26 00
image

00 d8
image

00 dc
image

00 c7
image

b4 00
image

00 d8
image

04 9c
image

其实就是执行了机器码,对寄存器进行了相关指令操作。汇编指令的本质其实就是机器码,只不过更有利于我们进行编程,符合人的思维习惯。
5. 通过debug命令将下面的程序写入内存,逐条执行,根据指令执行后的实际运行情况填空。
MOV AX,0FFFFH
MOV DS,AX

MOV AX,2200
MOV SS,AX
MOV SP,0100
MOV AX,[0] ; AX=C0EAH
ADD AX,[2] ;AX=COFCH
MOV BX,[4] ;BX=30F0H
ADD BX,[6] ;BX=6021H
PUSH AX ;SP=00FEH ; 修改的内存单元的地址是2200:00FE,内容为C0FCH
PUSH BX ;SP=00FCH; 修改的内存单元的地址是2200:00FC,内容为6021H
POP AX ;SP=00FEH; AX=6021H
POP BX ;SP=0100H ; BX=C0FCH
PUSH [4] ;SP=00FEH ; 修改的内存单元的地址是2200:00FE,内容为30F0H
PUSH [6] ;SP=00FCH; 修改的内存单元的地址是2200:00FC,内容为2F31H

image
image
image
image
image
image
image
image
image

分析:1.DS段寄存器+编译地址进行访问内存单元
2.另外通过SS:SP进行栈顶指针的定位
3.基本入栈出栈操作
三 实验报告
要求: 1.每步操作过程及所用指令;2.用截图方式反应指令执行前后的相关寄存器或存储单元内容的变化,并对所得结果进行分析。


__EOF__

本文作者DeepBrainBoy
本文链接https://www.cnblogs.com/tccjx/p/16156062.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   TCcjx  阅读(687)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏