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

实验二 熟悉常用指令的使用
一、实验目的
熟悉指令系统,掌握常用指令的用法;通过实验加深对各种寻址方式的理解;能熟练使用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.用截图方式反应指令执行前后的相关寄存器或存储单元内容的变化,并对所得结果进行分析。

posted @ 2022-04-17 16:04  TCcjx  阅读(659)  评论(0编辑  收藏  举报