合肥工业大学
计算机与信息学院
实验报告
课    程:汇编语言程序设计
专业班级: 计算机13-3
学    号: 2013211704
姓    名:  姜敬超
              实验一  Debug程序的使用
一.实验目的
1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。
2、掌握8086/8088的寻址方式及多字节数据的处理方法。
二.实验内容
1、利用DEBUG程序中的“E”命令,将两个多字节数“12345678H”和“FEDCBA98H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。
2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。
要求:
本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。
附加题:
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的个数的统计。
三.实验过程和程序
1.实验指导书中
2.代码已在图中
附加2:
将二进制数利用右移指令依次移进cf判断cf是否为1如此循环
mov bx,1233
xor ax,ax ;清空
mov cx,16
again: shr bx,1
  adc ax,0
  loop again计算机学院排名
四.实验结果(包括必要的截图)
  1.
2.
附加题:
1.
2.
五.实验体会
    按照实验指导书的内容逐步熟悉了debug的相关命令,在实际编程中进一步熟悉了数据寄存器以及基本算数运算的汇编指令,对于课堂上的内容有了实际的了解,还是比较容易理解的。


实验二  汇编语言程序设计(顺序、循环)
一.实验目的
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
    x dw 1122h
    y dw 1234h
    z dw 2211h
    v dw 4321h
    sum1 dw ?
    sum2 dw ?
data ends
code segment
    assume cs:code,ds:data
start:
    mov ax,data
    mov ds,ax
    mov ax,x
    imul y
    add ax,z
    adc dx,0
    sub ax,720
    sbb dx,0
    mov bx,ax
    mov cx,dx
    mov ax,v
    cwd
    sub ax,bx
    sbb dx,cx
    idiv x
    mov sum1,ax
    mov sum2,dx
    mov ah,4ch
    int 21h
code ends
    end start
2、求一个班50名学生成绩的平均值(附加题:最大值和最小值,并将结果显示出来)