当前位置:文档之家› 汇编语言实验报告(DEBUG命令)

汇编语言实验报告(DEBUG命令)

西安财经学院信息学院
《汇编语言程序设计》 实验报告
实验名 DEBUG 命令,指令练习 实验 403 实验日期 2013.4.16 一、实验目的及要求
熟悉和掌握汇编语言的数据传送类指令、算术指令、逻辑指令、串处理指令、控制转移指令以及处理机控制与杂项操作指令,达到准确有效地运用。

二、实验环境
硬件环境:一台微型计算机;
软件环境:windows 7,debug 环境,masm 三、实验内容
练习dos 环境下debug 命令;指令练习 四、实验过程: 1. 进入debug 环境
姓名
学号 10051704 班级 计本1004班 指导教师 张娟
2.R命令
查看寄存器内容的命令。

可以看出,数据寄存器的内容都为0,CS代码段寄存器内容为13BB,IP为
0100。

3.RF命令
查看标志位寄存器内容并可以进行修改,其中不包含TF,陷阱标志位。

4.D命令
查看内存单元内容,此处从内存的13BB段的第0100个单元开始显示。

5.A命令
写指令,此处未写。

6.U命令
将内存单元的内容以汇编指令的形式表示出来。

7.E命令
修改内存单元的内容命令。

这里修改1000的内容为12,并用D命令显示修改后的结果,为12。

8.数据传送类指令
(1)MOV指令
将1234赋值给累加器AX:
指令写在0100开始的内存单元,占用3个字节,IP指向下一条指令的地址0103。

(2)POP指令
将累加器AX中的值弹出
AX中的值弹出,变为0000,SP堆栈指针由原来的FFEE自动加2后变为FFF0,
IP指向下一条指令的内存单元0104。

9.算数指令(以下内容在实验室操作,地址与之前做的有差别)
10.算数指令
(1)加法指令ADD
给累加器AX 的值加上1234h
在0100地址写加法指令,执行单步操作,查看到AX的值由0000h变为1234h,IP 指向下一条指令的地址0103h。

(2)减法指令SUB
将累加器AX 的值减去0200h,将结果保存到AX中
执行单步操作,查看AX的值为1034h,IP指向下一条指令地址0106。

(3)乘法指令MUL
将9BH赋值给AL ,26H赋值给BL,再将AL与BL的值相乘赋值给AL
原来的AX=1034h,BL=00H,赋值后,AX=109BH,BL=26H,单步执行有符号乘法后,AX=F102,IP指向下一条指令地址010C,OF由NV变为OV,证明有溢出,进位标志CF由NC变为CY,证明最高有效位有进位。

(4)除法指令DIV
给AX赋值7D90H,给BX赋值1000H,用AX除以BX,将结果保存到AX中:
执行前两步单步操作后,AX=7d90h,BX=1000h,执行单步除法操作后AX=0007H,未发生溢出,所以OF还是原来的NV。

MOV指令占3个字节,除法指令DIV占用2个字节,所以IP指向下一条指令0108。

(5)十进制调整指令DAA
给AX、BX分别赋值0079H和0089H,将它们的值进行相加操作ADD,机器将默认它们进行十六进制加法,所以结果为0102H,但本次我们进行的是BCD码的加法,所以进行DAA十进制调整指令,正确结果应为0108H。

11.逻辑指令
(1)异或指令XOR
在原来的基础上将AX的第7的二进制值变反,其他位不变
AX的值原来为0108H,第7位变反,因为数值与1异或相反,与0异或不变,则用AX的值与0008H异或,得到正确的值。

12.串处理指令
(1)字符串传送指令MOVSB
五、实验体会
通过本次的实验,我不仅练习了和掌握了debug的各种命令,还对数据传送类指令、算术指令、逻辑指令、串处理指令有了一定的掌握,在实验过程中遇到过一些错误,通过请教同学和查书都能解决,所以,同时也培养了我解决问题的能力。

相关主题