当前位置:首页 > 汇编语言实验报告5574277
合肥工业大学 计算机与信息学院
实验报告
课 程:汇编语言程序设计
专业班级:
学 号:
姓 名:
实验一 Debug程序的使用
一. 实验目的
1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。 2、掌握8086/8088的寻址方式及多字节数据的处理方法。 二. 实验内容
1、利用DEBUG程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。 2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。 要求:
本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。 三. 实验过程和程序 1.
e ds:0200 78 56 34 12 e ds:0204 98 BA DC FE 2.
直接寻址: mov ax,[0200] mov bx,[0202] add ax,[0204] adc bx,[0206] mov [0208 ],ax mov [020a],bx 间接寻址: mov si,[0200] mov di,[0204] mov bx,[0208] mov ax,[si] mov dx,[si+2] add ax,[di] adc dx,[di+2] mov [bx],ax mov [bx+2],dx 附加题1 e ds:0000 1c 02
e ds:0002 01 00 e ds:0004 FF FF e ds:0006 38 04 e ds:0008 00 00
Microsoft Windows [???? 6.1.7600]
???????? (c) 2009 Microsoft Corporation???????????????? C:\\Users\\Administrator>debug -e ds:0000 1c 02 -e ds:0002 01 00 -e ds:0004 FF FF -e ds:0006 38 04 -e ds:0008 00 00 -a
13B3:0100 mov ax,[0000] 13B3:0103 mov bx,[0002] 13B3:0107 imul bx 13B3:0109 mov cx,ax 13B3:010B mov bx,dx 13B3:010D mov ax,[0004] 13B3:0110 cwd 13B3:0111 add cx,ax 13B3:0113 adc bx,dx 13B3:0115 sub cx,21c 13B3:0119 sbb bx,0 13B3:011C mov ax,[0006] 13B3:011F cwd 13B3:0120 sub ax,cx 13B3:0122 sbb dx,bx 13B3:0124 mov bx,[0000] 13B3:0128 idiv bx 13B3:012A mov [0008],ax 13B3:012D -g =0100 012d
AX=0002 BX=021C CX=FFFF DX=0001 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13B3 ES=13B3 SS=13B3 CS=13B3 IP=012D NV UP EI PL ZR AC
PE CY
13B3:012D 0000
ADD [BX+SI],AL DS:021C=00 -
四. 实验结果
1.利用DEBUG程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。
2.分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。 附加题1 五. 实验体会
通过本次试验熟悉了DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。以及DEBUG下的八个基本的指令,如a,g,t,u等等。初步掌握了8086/8088的寻址方式及多字节数据的处理方法。
实验二 汇编语言程序设计(顺序、循环)
一. 实验目的
1、掌握顺序和循环程序结构和设计方法;
2、熟悉在PC机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。
二. 实验内容
1、X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。试编写汇编语言程序完成以下功能: ①计算表达式值(V–(X*Y+Z-720))/X;
②将上述表达式运算结果整数放在SUM1单元,余数放在SUM2单元。 2、求一个班50名学生成绩的平均值(附加题:最大值和最小值,并将结果显示出来)
3、从键盘读入一个字符串,以Enter结束,字符串不超过50个字符,并打印该字符串(附加题:查找中间是否有‘asm’子串。如果有,输出‘Yes’;否则,输出‘No’)。 三. 实验过程和程序 1.
Data segment sum1 dw 0 sum2 dw 0 x dw 21CH y dw 1H
z dw 0FFFFH v dw 438H Data ends Code segment
assume cs:code, ds:data
共分享92篇相关文档