实验二 熟悉常用指令的使用
实验二 熟悉常用指令的使用
一、实验目的
熟悉指令系统,掌握常用指令的用法;通过实验加深对各种寻址方式的理解;能熟练使用DEBUG中的命令对指令进行反汇编,观察并了解机器代码。
二、实验题
1.求出以下各十六进制数与十六进制数62A0之和,单步执行、观察标志位SF、ZF、CF、OF的值,并与自己的判断进行比较。
(1)1234 (2)4321 (3)CFA0 (4)9D60
设置ax为62a0,再加上要加的数,结果保存在ax寄存器当中。
提示:加法指令 ADD DST, SRC
2.求出以下各十六进制数与十六进制数4AE0的差值,单步执行、观察标志位SF、ZF、CF、OF的值,并与自己的判断进行比较。
(1)1234 (2)5D90 (3)9090 (4)EA04
提示 减法指令 SUB DST, SRC
3. 将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。
MOV AX, 1
ADD AX, AX
JMP 2000:0003
- 使用 Debug,将下面的内容写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器中内容的变化。
b8 20 4e
05 16 14
bb 00 20
01 d8
89 c3
01 d8
b8 1a 00
bb 26 00
00 d8
00 dc
00 c7
b4 00
00 d8
04 9c
其实就是执行了机器码,对寄存器进行了相关指令操作。汇编指令的本质其实就是机器码,只不过更有利于我们进行编程,符合人的思维习惯。
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
分析:1.DS段寄存器+编译地址进行访问内存单元
2.另外通过SS:SP进行栈顶指针的定位
3.基本入栈出栈操作
三 实验报告
要求: 1.每步操作过程及所用指令;2.用截图方式反应指令执行前后的相关寄存器或存储单元内容的变化,并对所得结果进行分析。
本文来自博客园,作者:TCcjx,转载请注明原文链接:https://www.cnblogs.com/tccjx/p/16156062.html