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

内容发布更新时间 : 2024/5/18 23:27:06星期一 下面是文章的全部内容请认真阅读。

验体会

这次的实验让我学会了dos模式下的debug使用,学会了d,r,g,t命令的使用,我觉得尤其是t命令,让我了解了汇编语言,单步执行的使用方法,深刻的理解了汇编语言每一句对寄存器的改变,加深了上课的理解

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

一. 实验目的

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:

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

Code ends