汇编语言程序设计实验报告(2)

2020-04-17 07:03

对编译成功之后的文件进行链接,以生成能运行的.exe文件,如下图1-1所示:

1-1

链接之后发现链接(Link)之后也是成功的,接下来就进行测试的最后一步,即运行

1.exe文件,输入一串字符串,看能否达到预期的目的,如达到,则成功,否者重新编译。

可见,与预期目的一致,达到了目的。 6.该实验使用的知识点: 1.中断调用,以及使用功能号实现输入输出 2.使用循环,无条件转移指令(JMP)等

实验二

1.

实验内容:

(1). 程序中自定义缓冲区AREA1,其中存放200个有序的无符号字型数据(至少有3个重复数据),编程序将其排序后送到自AREA2开始的单元中,要求传送后的数据从大到小排序,并实现查找功能,判定需要查找的数据在AREA1与AREA2中分别对应的位置,并通过查看内存验证结果的正确性。把有序的无符号字型数据换成带符号字型数据,实现以上功能。

(2). 熟悉DEBUG调试环境。使用DEBUG调试程序察看机器码,并单步执行,观察每一条指令的执行结果、 寄存器的内容、内存变量和堆栈数据的变化情况。

2. 实验代码如下:

assume ds:data, cs:code, ss:stack

data segment

area1 dw 2,2,2,10,15,255,0,67,143 count dw $-area1 index dw 0

area2 dw 200 dup(0) flag db 200 dup(0)

tips1 db 'Please input the number you want to find:','$' tips2 db 'Not Found!','$' crlf db 0dh,0ah,'$' output db 5 dup('$') data ends

stack segment stack dw 32 dup(?) stack ends

code segment

findmost proc ;find the greatest number in area1, put it in AX push bx push cx push dx push bp

lea bx,area1 mov dx,[bx]

add bx,2 lo:

cmp dx,[bx]

jge smaller

;jae smaller ;无符号时使用此指令,并将上条指令注释掉

and flag[bx],1 jnz smaller

mov dx,[bx] ;将当前最大值储存 mov bp,bx smaller:

add bx,2

cmp bx,count ;检查是否为最后一个元素

;记录最大值于ax jl notfinish mov ax,dx

mov WORD PTR ds:flag[bp],1

pop bp pop dx pop cx pop bx ret notfinish: jmp lo findmost endp

writeGreatest2area2 proc ;按照要求将数据写入area2 push ax push bx lea bx,area2 find_another: call findmost mov [bx],ax add bx,2

mov index,bx lea ax,area2 sub index,ax

lea ax,count cmp index,ax

jnz find_another pop bx pop ax ret

writeGreatest2area2 endp

convertDigital2Ascii proc push bx push dx

mov dx,ax xor bx,bx

mov cl,100 div cl add ax,48

mov output[bx],al inc bx

mov ax,dx mov cl,10 div cl add ah,48 add al,48

mov output[bx],al

inc bx

mov output[bx],ah

lea dx,output mov ah,9 int 21h

lea dx,crlf int 21h

mov ax,dx pop dx pop bx ret

convertDigital2Ascii endp

findTheValue proc ;在两个区域中分别查找数字ax的位置 push ax push bx push si push cx push dx

mov cx,count

mov bx,-2 equal1:

add bx,2

cmp ax,area1[bx] jnz equal1 push ax mov ax,bx

sar ax,1 inc ax

call convertDigital2Ascii pop ax

mov bx,-2 equal2:

add bx,2

cmp ax,area2[bx] jnz equal2 push ax mov ax,bx

sar ax,1 inc ax

call convertDigital2Ascii pop ax

pop dx pop cx pop si pop bx pop ax ret

findTheValue endp


汇编语言程序设计实验报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014-2015学年浙江省杭州市西湖区第一学期期末考试八年级数学试

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: