汇编实验报告文档格式.docx

上传人:b****4 文档编号:16058637 上传时间:2022-11-18 格式:DOCX 页数:27 大小:148.44KB
下载 相关 举报
汇编实验报告文档格式.docx_第1页
第1页 / 共27页
汇编实验报告文档格式.docx_第2页
第2页 / 共27页
汇编实验报告文档格式.docx_第3页
第3页 / 共27页
汇编实验报告文档格式.docx_第4页
第4页 / 共27页
汇编实验报告文档格式.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

汇编实验报告文档格式.docx

《汇编实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《汇编实验报告文档格式.docx(27页珍藏版)》请在冰豆网上搜索。

汇编实验报告文档格式.docx

程序的运行和结果检查。

三.实验过程和程序

1、启动DOS操作系统

2、运行DEBUG.COM程序(若当前盘为C)

C:

>DEBUG↙

–;

(“–”为DEBUG提示符,仅当屏幕出现该提示符后,才可输入DEBUG命令)

3、用“A”命令编辑和汇编源程序

–A↙

186E:

0100MOVAX,[0200]↙

0103MOVBX,[0202]↙

0107ADDAX,[0204]↙

010BADCBX,[0206]↙

010FMOV[0208],AX↙

0112MOV[020A],BX↙

0116↙

4、用“U”命令反汇编验证源程序

–UCS:

0100↙

0100A10002MOVAX,[0200]

01038B1E0202MOVBX,[0202]

010703060402ADDAX,[0204]

010B131E0602ADCBX,[0206]

010FA30802MOV[0208],AX

0112891E0A02MOV[020A],BX

0116

注意:

●检查源程序是否有错误,若有则返回到第3步用“A地址”命令进行修改,直到程序无错误。

●DEBUG约定在其命令或源程序中所涉及到的数据均被看作十六进制数,其后不用“H”说明。

●在DEBUG下,源程序中不能使用“标号”、“变量”和一些伪指令。

●在DEBUG下,大小写不敏感。

5、程序未执行前,用“R”命令观察,相关寄存器的内容。

–R↙

如:

(AX)=0000H,(BX)=0000H,(SI)=0000H,

(DI)=0000H,(CS)=0B32H,(IP)=0100H。

6、在程序未执行前,用“D”命令观察DS:

0200H,DS:

0204H、DS:

0208H单元的内容

–D20020B↙

7、用“G”命令运行源程序

–G=1100116↙

8、再用“D”命令观察DS:

0200H~DS:

020BH字节单元中的内容

–D20020B↙

9、用“T”单步操作命令对源程序单步执行,观察AX、BX、CS、IP寄存器内容的变化,并与预计的结果相比较。

●D命令显示内存数据,注意观察多字节数据在内存中的存放方式。

●指令执行的时候,IP寄存器随着变化,注意观察。

1、程序运行结果:

(AX)=00ABH,(BX)=00ABH

DS:

0208H四字节单元的内容:

00AB00ABH

2、试用寄存器间接寻址方式编写程序段,完成上述程序段的功能。

(参考下列程序流程图)

3、附加题目:

1.从DS:

0000H开始的5个16位带符号数分别记为x,y,z,v,w,用E命令初始化为:

540,1,-1,1080,0,试求w=(v-(x*y+z-540))/x

2.完成BX中1的个数的统计。

3.用串操作指令将DS:

0000开始20个字节初始化为:

0CCH。

并将这20个字节的内容复制到其后的20个字节里。

cld

四.实验体会

通过这次试验,对于debug环境有了一个基本的了解,同时通过对指令的使用而对计算机的数据传送、算术运算、逻辑和移位操作、串操作、控制转移和循环等指令有了更深的理解。

串操作指令是对一个一个字节进行操作的。

实验二汇编语言程序设计(顺序、循环)

1、掌握顺序和循环程序结构和设计方法;

2、熟悉在PC机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。

1、X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。

试编写汇编语言程序完成以下功能:

①计算表达式值(V–(X*Y+Z-720))/X;

②将上述表达式运算结果整数放在SUM1单元,余数放在SUM2单元。

dsegsegment

xdw2

ydw360

zdw0

vdw5

sum1dw?

sum2dw?

dsegends

csegsegment

assumecs:

cseg,ds:

dseg

start:

movax,dseg

movds,ax

movax,x

movbx,y

mulbx

movbx,z

addax,bx

subax,2d0h

movbx,v

subbx,ax

movax,bx

cbw

movbx,x

divbx

movsum1,ax

movsum2,dx

movah,4ch

int21h

csegends

endstart

2、求一个班50名学生成绩的平均值(附加题:

最大值和最小值,并将结果显示出来)

scoredb10dup(80,70,60,90,90)

avgdb?

maxdb0dh,0ah,?

mindb0dh,0ah,?

movcx,50

movax,0

movbh,0

movbl,100

movsi,0

l:

addal,score[si]

adcah,0

incsi

loopl

movdx,si

divdl

movavg,al

l1:

cmpscore[si],bh

jbes1

movbh,score[si]

s1:

loopl1

l2:

cmpscore[si],bl

jas2

movbl,score[si]

s2:

loopl2

moval,bl

movah,0

movcl,10

divcl

cmpal,0

jzgw1

cmpal,10

jzmf1

movch,ah

addal,30h

movdl,al

movah,2

addch,30h

movdl,ch

jmpdone1

gw1:

movdl,ah

adddl,30h

mf1:

movdl,31h

movdl,30h

done1:

movdl,0dh

movdl,0ah

moval,bh

jzgw

jzmf

jmpdone

gw:

mf:

done:

3、从键盘读入一个字符串,以Enter结束,字符串不超过50个字符,并打印该字符串(附加题:

查找中间是否有‘asm’子串。

如果有,输出‘Yes’;

否则,输出‘No’)。

datasegment

s1db51,?

51dup('

$'

s3db0ah,0dh,'

Yes$'

s4db0ah,0dh,'

No$'

dataends

s2db'

asm'

data,es:

movax,data

moves,ax

leadx,s1

movah,0ah

leadx,s1+2

movah,9

movcl,s1+1

cmpcl,3

jbnotfound

leasi,s1

leadi,s2

movbx,di

movah,48

cld

again:

movcx,3

repzcmpsb

jzfound

adddx,1

movsi,dx

movdi,bx

decah

jnzagain

jmpnotfound

jmpover

found:

leadx,s3

notfound:

leadx,s4

over:

三.实验体会

通这次试验,熟悉了MASM汇编环境和汇编程序设计的格式,熟悉在PC机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。

同时对顺序和循环程序设计更加熟练,并在编程过程中熟悉了算术运算、位操作和串操作等指令。

算术运算中,对于不同类型数进行运算时,要进行扩展,还有不要忽视进位;

对于循环和控制转移指令,如果有多个循环或转移指令,则前一个循环或转移结束后,一定到无条件转移到结尾处

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1