合肥工业大学汇编语言实验报告 下载本文

五. 实验体会

这次的实验让我学会了DEBUG的运用,了解到了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 1 Y dw 720 Z dw -1 V dw 1 Sum1 dw ? Sum2 dw ?

Data ends Code segment

Assume cs:code ds:data

mov ax,data Mov ds,ax Mov ax,x Mov bx,y Imul bx

;x*y

Start:

Mov cx,ax Mov bx,dx Mov ax,z Cwd Add cx,ax Adc bx,dx Sub cx,720 ;x*y+z

;x*y+z-720 Sbb bx,0 Mov ax,v

Cwd Sub ax,cx Sbb dx,bx Mov bx,x Idiv bx Mov sum1,ax

Mov sum2,dx

mov bx,sum1 mov ch,4 mov cl,4 again: rol bx,cl

mov dl,bl and dl,0fh cmp dl,0ah jl next

add dl,37h ;\

jmp down

next: add dl,30h ;\

down:

mov ah,2 int 21h dec ch jnz again

mov dl,23h ;\

;v-(x*y+z-720)

;(v-(x*y+z-720))/x

;sum1 存商,sum2 存余数

mov ah,2 int 21h

mov bx,sum2

mov ch,4 mov cl,4 mov dl,bl and dl,0fh cmp dl,0ah jl next1

add dl,37h ;\jmp down1

again1: rol bx,cl

next1: add dl,30h ;\down1: 2.

data segment

grade db 61,73,82,90,100,45 dup(70) avg1 db ? ;平均值的商 avg2 db ? max db ?

;平均值的余数 ;最大值

Mov ax,4c00h Int 21h End start mov ah,2 int 21h dec ch jnz again1

Code ends

min db ?;最小值 data ends code segment

assume cs:code,ds:data

mov ax,data

start: