好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

汇编实验报告.docx

26页
  • 卖家[上传人]:hs****ma
  • 文档编号:525366906
  • 上传时间:2023-09-29
  • 文档格式:DOCX
  • 文档大小:151.43KB
  • / 26 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 合肥工业高校计算机与信息学院试验报告课 程:汇编语言程序设计专业班级:学 号:姓 名:试验一 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、启动DOS操作系统2、运行DEBUG.COM程序(若当前盘为C) C:>DEBUG↙ – ;(“–”为DEBUG提示符,仅当屏幕出现该提示符后,才可输入DEBUG吩咐)3、用“A”吩咐编辑和汇编源程序 –A ↙ 186E:0100 MOV AX,[0200]↙ 186E:0103 MOV BX,[0202]↙ 186E:0107 ADD AX,[0204]↙ 186E:010B ADC BX,[0206]↙ 186E:010F MOV [0208],AX↙ 186E:0112 MOV [020A],BX↙ 186E:0116 ↙4、用“U”吩咐反汇编验证源程序 –U CS:0100↙ 186E:0100 A10002 MOV AX,[0200] 186E:0103 8B1E0202 MOV BX,[0202] 186E:0107 03060402 ADD AX,[0204] 186E:010B 131E0602 ADC BX,[0206] 186E:010F A30802 MOV [0208],AX 186E:0112 891E0A02 MOV [020A],BX 186E:0116 –留意:l 检查源程序是否有错误,若有则返回到第3步用“A 地址”吩咐进行修改,直到程序无错误。

      l DEBUG约定在其吩咐或源程序中所涉及到的数据均被看作十六进制数,其后不用“H”说明l 在DEBUG下,源程序中不能运用“标号”、“变量”和一些伪指令l 在DEBUG下,大小写不敏感5、程序未执行前,用“R”吩咐视察,相关寄存器的内容–R↙如:(AX)= 0000H ,(BX)=0000H,(SI)= 0000H , (DI)= 0000H ,(CS)= 0B32H ,(IP)= 0100H 6、在程序未执行前,用“D”吩咐视察DS:0200H,DS:0204H、DS:0208H单元的内容 –D 200 20B ↙7、用“G”吩咐运行源程序 –G =110 0116 ↙8、再用“D”吩咐视察DS:0200H~DS:020BH字节单元中的内容 –D 200 20B↙9、用“T”单步操作吩咐对源程序单步执行,视察AX、BX、CS、IP寄存器内容的改变,并与预料的结果相比较留意:l D吩咐显示内存数据,留意视察多字节数据在内存中的存放方式l 指令执行的时候,IP寄存器随着改变,留意视察1、程序运行结果:(AX)= 00ABH ,(BX)=00ABH DS:0208H四字节单元的内容: 00AB00ABH 2、试用寄存器间接寻址方式编写程序段,完成上述程序段的功能。

      参考下列程序流程图)SI←200HDI←204HBX←208HAX← [SI]DX←[SI+2]AX←AX+[DI]DX←DX+[DI+2 ][BX]←(AX)[BX+2]←(DX)起先结束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单元dseg segmentx dw 2y dw 360z dw 0v dw 5sum1 dw ?sum2 dw ?dseg endscseg segment assume cs:cseg,ds:dsegstart: mov ax,dseg mov ds,ax mov ax,x mov bx,y mul bx mov bx,z add ax,bx sub ax,2d0h mov bx,v sub bx,ax mov ax,bx cbw mov bx,x div bx mov sum1,ax mov sum2,dx mov ah,4ch int 21hcseg ends end start2、求一个班50名学生成果的平均值(附加题:最大值和最小值,并将结果显示出来)dseg segmentscore db 10 dup(80,70,60,90,90)avg db ?max db 0dh,0ah,?min db 0dh,0ah,?dseg endscseg segment assume cs:cseg,ds:dsegstart: mov ax,dseg mov ds,ax mov cx,50 mov ax,0 mov bh,0 mov bl,100 mov si,0l: add al,score[si] adc ah,0 inc si loop l mov dx,si div dl mov avg,al mov cx,50 mov si,0l1: cmp score[si],bh jbe s1 mov bh,score[si]s1: inc si loop l1 mov cx,50 mov si,0l2: cmp score[si],bl ja s2 mov bl,score[si]s2: inc si loop l2 mov al,bl mov ah,0 mov cl,10 div cl cmp al,0 jz gw1 cmp al,10 jz mf1 mov ch,ah add al,30h mov dl,al mov ah,2 int 21h add ch,30h mov dl,ch mov ah,2 int 21h jmp done1gw1: mov dl,ah add dl,30h mov ah,2 int 21h jmp done1mf1: mov dl,31h mov ah,2 int 21h mov dl,30h mov ah,2 int 21h mov dl,30h mov ah,2 int 21hdone1: mov dl,0dh mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h mov al,bh mov ah,0 mov cl,10 div cl cmp al,0 jz gw cmp al,10 jz mf mov ch,ah add al,30h mov dl,al mov ah,2 int 21h add ch,30h mov dl,ch mov ah,2 int 21h jmp donegw: mov dl,ah add dl,30h mov ah,2 int 21h jmp donemf: mov dl,31h mov ah,2 int 21h mov dl,30h mov ah,2 int 21h mov dl,30h mov ah,2 int 21hdone: mov ah,4ch int 21hcseg ends end start 3、从键盘读入一个字符串,以Enter结束,字符串不超过50个字符,并打印该字符串(附加题:查找中间是否。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.