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

2018-12-19 23:36

《汇编语言程序设计》

实 验 报 告

院 系

专 业 年 级 学 号 姓 名

目录

实验1 Masm6.11的使用方法 ............................................ 错误!未定义书签。 实验2 比较两个字符串的大小 ............................................................................ 9 实验3 求学生名次 .............................................................................................. 16 实验4 求员工年工作量 ...................................................................................... 29 实验5 子程序和主程序之间的参数传递 .......................................................... 37 实验6 C语言和汇编语言混合编程下的排序算法 ......................................... .42 实验7 采用汇编语言对C语言函数调用的方法求平均数 .............. 46

I

实验一 Masm6.11的使用方法

一、实验目的

1、创建一个新的汇编语言程序,熟练掌握汇编语言开发工具的使用方法,并对开发环境中一些坏境变量进行设置。

2、创建一个工程文件,对该工程文件进行编译,连接,并运行; 3、对建立的工程文件进行调试,在运行过程中查看各个寄存器的值,内存单元的值等。

二、实验环境

该试验包括的硬件和软件条件如下: 1、硬件环境

(1)Intel i5 3317U (2)内存4G 2、软件环境

(1)Window XP Professor (2)MASM6.11开发软件

三、实验步骤

1、将Masm6.11安装程序拷贝到D盘根目录下,并执行d:\\Masm611目录下Setup.exe文件,按照安装提示将程序安装到C盘根目录。

2、将C:\\masm611\\Bin目录下的所有文件拷贝到C:\\Masm611\\binr目录下,将C:\\Masm611\\help目录下的所有文件拷贝到c:\\Masm61\\binr目录下。 3、执行C:\\Masm611\\Binr目录下的pwb.exe文件,打开开发环境。 4、在PWB编辑窗口中输入实验1.1中的程序,并保存为test.asm文件。 5、执行Project菜单下New Project子菜单创建一个新的工程文件,并命名为test.mak,将test.asm文件加入到该工程文件中。

6、执行Project下Build子菜单编译连接该工程文件,并运行该可执行程序,观察程序执行的结果。

7、执行Run菜单下Debug子菜单,进入调试环境。

8、在程序的如下位置设置断点,并按要求观察寄存器堆栈或者内存单元的值。

Data segment

Msgl db \

第 1 页

Num db 0

EnMsg db 0ah,0dh,'$'

Msg2 db \ Msg3 db \ avg db 0

ascavg db 0,0,'$' Data ends

Stack segment para stack db 20h dup(0) Stack ends

code segment

Assume Cs:code,Ss:stack,ds:Data

Start: mov ax,data mov ds,ax

lea dx,Msgl ;此行设置断点,观察DS所指示的数据段的情况 mov ah, 09h int 21h

Call Numproc ;此行设置断点,观察屏幕输出,并观察堆栈的变化 mov num,bl ;此行设置断点,观察bl的值,并观察堆栈的变化 lea dx,EnMsg mov ah,09h int 21h lea dx,Msg2 mov ah,09h int 21h

call Avgproc ;此行设置断点,观察屏幕输出信息

lea dx,EnMsg ;此行设置断点,观察avg所对应的存储单元的值 mov ah,09h int 21h

lea dx, Msg3

mov ah,09h int 21h

call bta ;此行设置断点,观察屏幕输出信息

mov ah,4ch ;此行设置断点,观察ascavg所对应的存储单元的值及屏 ;幕输出信息 int 21h

Numproc proc push ax push cx push dx

第 2 页

lea dx,EnMsg mov ah,09h int 21h mov bl,0 lop1: mov ah,01h

int 21h ;设置断点观察al寄存器的值 cmp al,0dh jz lop2 cmp al,'0' jl lop1 cmp al, '9' ja lop1 sub al,30h mov cl,al mov al,bl mov ch,10

mul ch

mov bl,al ; add bl,cl ; jmp lop1 lop2: pop dx pop cx pop ax ret Numproc endp

Avgproc proc push ax push cx

xor dx,dx ; mov cl,num ;lop3: call Numproc xor ax,ax mov al,bl add ax,dx Div num

add avg,al ; xor dx,dx mov dl,ah sub cl,1 jnz lop3

pop ax ; pop cx

ret ;设置断点观察al寄存器的值 设置断点观察bl寄存器的值 设置断点观察堆栈值的变化 设置断点观察cl寄存器的值 设置断点观察avg存储单元的值 设置断点观察avg存储单元的值 设置断点观察堆栈值的变化

第 3 页


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

下一篇:08-09学年高一上学期期末试题(物理1)

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

马上注册会员

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