对编译成功之后的文件进行链接,以生成能运行的.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
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库汇编语言程序设计实验报告(2)在线全文阅读。
相关推荐: