《汇编语言程序设计》实验指导手册解析.docx

上传人:b****9 文档编号:26054737 上传时间:2023-06-17 格式:DOCX 页数:19 大小:21.21KB
下载 相关 举报
《汇编语言程序设计》实验指导手册解析.docx_第1页
第1页 / 共19页
《汇编语言程序设计》实验指导手册解析.docx_第2页
第2页 / 共19页
《汇编语言程序设计》实验指导手册解析.docx_第3页
第3页 / 共19页
《汇编语言程序设计》实验指导手册解析.docx_第4页
第4页 / 共19页
《汇编语言程序设计》实验指导手册解析.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

《汇编语言程序设计》实验指导手册解析.docx

《《汇编语言程序设计》实验指导手册解析.docx》由会员分享,可在线阅读,更多相关《《汇编语言程序设计》实验指导手册解析.docx(19页珍藏版)》请在冰豆网上搜索。

《汇编语言程序设计》实验指导手册解析.docx

《汇编语言程序设计》实验指导手册解析

《汇编语言程序设计》

实验指导手册

《汇编语言程序设计》实验是学习本课程的每个考生必须要通过的一个重要的实践环节。

本指导手册依照我系各类计算机专科专业教学大纲,根据人民邮电出版社的《汇编语言程序设计》(梁发寅著)教材编写而成。

本指导手册共计有编有10个实验,在实际实验过程中可以按照实际教学进度情况加以增删。

每个实验都应做到:

1.做好上机实验的准备工作:

应考者对每个实验需要进行预习,了解相关内容和具体要求,熟悉上机操作步骤,学会相关系统软件的使用,掌握各种操作调试命令。

2.编写源程序:

按照实验题目的要求,应考者要事先独立完成汇编语言源程序的编写工作,并对源程序进行认真的静态检查,减少错误的发生。

3.完成实验报告:

做完上机实验,应考者要严格按照实验报告的格式要求写出实验报告。

实验报告的内容为:

实验名称、实验的目的、实验的内容和要求、实验步骤、实验结果并附上源程序清单和程序流程图。

实验一汇编语言上机环境

(一)实验目的

1熟悉汇编语言上机环境;

2掌握汇编语言上机过程与步骤。

(二)实验器材与实验准备

实验器材:

硬件:

微机一台

软件:

DOS或WIN98/2000/XP

MASM.EXE和LINK.EXE

实验准备:

cs1segment

assumecs:

cs1,ds:

cs1

start:

pushcs

popds

movah,0

int10h

leadx,str0

movah,9

int21h

movah,4ch

int21h

str0db'hello','$'

cs1ends

endstart

(三)实验内容和要求

1.建立汇编源程序文件

2.逐步汇编,连接生成可执行文件

3.运行生成的可执行文件

(四)实验步骤:

1.在记事本中创建和编辑源文件

2.将MASM.EXE和LINK.EXE以及源文件拷贝在同一目录下

3.汇编源文件

4.连接目标文件

5.执行可执行文件

(五)实验结果分析

在生成可执行文件过程中,一共生成了多少个相关的文件,它们的作用分别是什么?

实验二DEBUG的使用

(一)实验目的

1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程

序。

2、掌握8086/8088的寻址方式及多字节数据的处理方法。

(二)实验设备

硬件环境:

IBM-PC及其兼容机

软件环境:

操作系统DOS3.0版本以上

调试程序DEBUG.COM

(三)实验内容和要求

实验内容:

1、利用DEBUG程序中的“E”命令,将两个多字节数“003F1AE7H”和

“006BE5C4H”分别送入起始地址为DS:

0200H和DS:

0204H两个单元中。

2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:

0200H单元和DS:

0204H单元中的数据相加,并将运算结果存放在DS:

0208H单元中。

实验要求:

本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。

(四)预习要求

1、复习DOS启动方式和DOS有关命令的使用;

2、阅读本书后的附录,熟悉掌握DEBUG调试程序中的A、D、E、G、Q、

R、T、U命令的书写格式及功能;

3、复习寻址方式和相关的数据传送指令及算术运算指令。

(五)实验步骤

1、启动DOS操作系统

2、运行DEBUG.COM程序(若当前盘为C)

C>DEBUG↙

–;“(–”为DEBUG提示符,仅当屏幕出现该提示符后,才可输入DEBUG

命令)

3、用“A”命令编辑和汇编源程序

–A↙

186E:

0100MOVAX,[0200]

186E:

0103MOVBX,[0202]

186E:

0107ADDAX,[0204]

186E:

010BADCBX,[0206]

186E:

010FMOV[0208],AX↙

186E:

0112MOV[020A],BX↙

186E:

0116↙

4、用“U”命令反汇编验证源程序

–UCS:

0100↙

186E:

0100A10002MOVAX,[0200]

186E:

01038B1E0202MOVBX,[0202]

186E:

010703060402ADDAX,[0204]

186E:

010B131E0602ADCBX,[0206]

186E:

010FA30802MOV[0208],AX

186E:

0112891E0A02MOV[020A],BX

186E:

0116

注意:

检查源程序是否有错误,若有则返回到第3步用“A地址”命令进行修改,直到程序无错误。

DEBUG约定在其命令或源程序中所涉及到的数据均被看作十六进制数,其后不用“H”说明。

在DEBUG下,源程序中不能使用“标号”、“变量”和一些伪指令。

在DEBUG下,大小写不敏感。

5、程序未执行前,用“R”命令观察,相关寄存器的内容。

–R↙

如:

(AX)=0,(BX)=0,(SI)=0,

(DI)=0,(CS)=1680,(IP)=0。

6、在程序未执行前,用“D”命令观察DS:

0200H,DS:

0204H、DS:

0208H

单元的内容

–D20020B↙

7、用“G”命令运行源程序

–G=1100116↙

8、再用“D”命令观察DS:

0200H~DS:

020BH字节单元中的内容

–D20020B↙

9、用“T”单步操作命令对源程序单步执行,观察AX、BX、CS、IP寄存器内容的变化,并与预计的结果相比较。

注意:

D命令显示内存数据,注意观察多字节数据在内存中的存放方式。

指令执行的时候,IP寄存器随着变化,注意观察。

(六)实验结果分析

1、程序运行结果:

(AX)=00ab,h(BX)=00abh

DS:

0208H四字节单元的内容:

00ab00abh

实验三分支程序设计

(一)实验目的

1、掌握多路分支IF…ElseIF…Else程序结构和设计方法。

2、学会使用地址表和转移表法写多路分支程序。

(二)实验设备

实验器材:

硬件:

微机一台

软件:

DOS或WIN98/2000/XP

MASM.EXE和LINK.EXE

(三)实验内容和要求

实验内容:

在内存Score缓冲区中存放有20个学生的成绩数据,为无符号字节数。

假设学生成绩在[90,100]区间为优秀,在[80,90)区间为良好,在[70,80)区间为一般,在[60,70)区间为及格,在[0,60)区间为不及格,要求统计出不及格,及格,一般,良好和优秀的人数,分别送入Notpassed,Passed,Good,Better和Best字节单元。

用普通的跳转语句实现上述功能。

(四)预习要求

1、复习DOS启动方式和DOS有关命令的使用;

2、阅读本书后的附录,熟悉掌握DEBUG调试程序中的A、D、E、G、Q、

R、T、U命令的书写格式及功能;

(五)实验步骤

1.编写源程序

datasegment

Scoredb56,23,94,64,85,61,94,81,76,61,34,94,68,95,84,34,16,49,79,84

lenequ$-Score

Notpasseddb0

Passeddb0

Gooddb0

Betterdb0

Bestdb0

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movcx,len

movsi,0

re:

moval,score[si]

cmpal,60

jaef1

incnotpassed

jmpnext

f1:

cmpal,70

jaef2

incpassed

jmpnext

f2:

cmpal,80

jaef3

incgood

jmpnext

f3:

cmpal,90

jaef4

incbetter

jmpnext

f4:

incbest

en:

incsi

loopre

movah,4ch

int21h

codeends

endstart

2.汇编源程序

3.连接目标程序

4.调试可执行程序,分析程序的运行结果

(六)实验结果分析

1、确认不及格,及格,一般,良好和优秀的人数总和是否为20。

(七)编程提示

a)用普通的跳转语句实现上述功能时,区分不及格,及格,一般,良好和优秀5个区间,是一个5分支的结构,至少需要4条跳转指令。

b)注意无符号数和有符号数使用跳转指令的区别。

c)用地址表和转移表法实现时,必须找出分数与地址表和转移表的偏移的对应关系。

实验四循环程序设计

(一)实验目的

1、掌握多重循环程序的结构和设计方法。

2、弄清直接排序的算法。

3、弄清冒泡排序方法。

(二)实验设备

实验器材:

硬件:

微机一台

软件:

DOS或WIN98/2000/XP

MASM.EXE和LINK.EXE

(三)实验内容和要求

实验内容:

在内存Score缓冲区中存放有20个学生的成绩数据,为无符号字节数。

设计程序完成如下功能:

将最高和最低的分数分别存放在MIN和MAX单元中。

(四)预习要求

1、复习DOS启动方式和DOS有关命令的使用;

2、阅读本书后的附录,熟悉掌握DEBUG调试程序中的A、D、E、G、Q、

R、T、U命令的书写格式及功能;

(五)实验步骤

1.编写源程序

Datasegment

Dadw4546h,9414h,6445h,8745h,6136h,1264h,5555h

Numdw($-da)/2;填空(当前地址-da)/2

Maxdw?

Mindw?

Dataends

Codesegment

Assumecs:

code,ds:

data

Start:

movax,data

movds,ax

movcx,num

movax,da

movdx,da

movsi,0

re:

cmpda[si],ax

jleskip1;如果小于等于就跳过

movax,da[si]

skip1:

cmpda[si],dx

jgeskip2;>=跳过

movdx,da[si]

skip2:

addsi,2

loopre

movmax,ax

MOVMIN,DX

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

2.汇编源程序

3.连接目标程序

4.调试可执行程序,分析程序的运行结果

(六)实验结果分析

1、循环次数NUM的定义有何特点

以符号定义,不占用内存空间

2、DEBUG调试分析是否得到正确结果

(七)编程提示

(a)无符号数的比较是用ja,jc,je

实验五子程序设计

(一)实验目的

1、掌握子程序的设计方法和调用方式

2、深刻认识堆栈在子程序设计中所起的作用

3、掌握子程序调试的技巧。

(二)实验设备

实验器材:

硬件:

微机一台

软件:

DOS或WIN98/2000/XP

MASM.EXE和LINK.EXE

(三)实验内容和要求

实验内容:

将数值1234和56H,用十进制将它们显示,要求用子程序的方式来实现显示功能.

(四)预习要求

1、复习DOS启动方式和DOS有关命令的使用;

2、阅读本书后的附录,熟悉掌握DEBUG调试程序中的A、D、E、G、Q、

R、T、U命令的书写格式及功能;

(五)实验步骤

1.编写源程序

;要求编写一个子程序,这个子程序能自动将AX的数值以十进制的形式输出

CODESEGMENT

ASSUMECS:

CODE

START:

MOVAX,1234

CALLPRI

movdl,10;换行

movah,2

int21h

movdl,13;回车

movah,2

int21h

MOVAX,56H

CALLPRI

movah,4ch

int21h

priprocnear

pushbx

pushcx

pushdx

movbx,10;十进制

movdx,0;被除数的高16位

movcx,0;位数

rediv:

divbx;dxax/bx

pushdx;余数

movdx,0

inccx

cmpax,0

jnzrediv

movah,2

reout:

popdx

adddl,30h;将数值位-〉字符1-'1'

int21h

loopreout

popdx

popcx

popbx

ret

priendp

codeends

endstart

2.汇编源程序

3.连接目标程序

4.调试可执行程序,分析程序的运行结果

(六)实验结果分析

1、理解寄存器参数传递方式各有什么特点

使用简单方便

数量少,难以传递多个数据

(七)编程提示

(a)二进制显示也可采用移位并判断该位的方式进行。

(b)十进制数采用除以10取商的方式。

(d)注意去掉最高位的“0”。

 

实验六中断程序设计

(一)实验目的

1、中断服务子程序的编写。

2、BIOS和DOS中断调用。

(二)实验设备

硬件环境:

IBM-PC及其兼容机软件环境:

操作系统DOS3.0以上

编辑程序EDIT或其它编辑程序汇编程序MASM.EXE6.1X;连接程序:

LINK.EXE;调试程序:

DEBUG.COM

(三)实验内容和要求

实验内容:

1.编写一个完成的程序,用于输入一个小写字母,输出大写字母。

要求:

分别用BIOS和DOS中断调用来实现

(四)实验准备

1、复习DOS启动方式和DOS有关命令的使用;

2、阅读本书后的附录,熟悉掌握DEBUG调试程序中的A、D、E、G、Q、

R、T、U命令的书写格式及功能;

3、分析BIOS和DOS中断调用的功能和区别

(五)实验步骤

1.编写源程序

;DOS功能调用输入字符,如果是小写,就改成大写

codesegment

assumecs:

code

start:

MOVsi,5

re:

movah,1

int21h

pushax

movdl,13;回车

movah,2

int21h

movdl,10;

movah,2

int21h

popax

cmpal,'a'

jbskip

cmpal,'z'

JASKIP

SUBAL,32

SKIP:

MOVAH,2

MOVDL,AL

INT21H

movdl,13;回车

movah,2

int21h

movdl,10;回车

movah,2

int21h

subsi,1

jnzre

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

;BIOS功能调用输入字符,如果是小写,就改成大写

codesegment

assumecs:

code

start:

MOVsi,5

re:

movah,0

int16H

pushax

movAl,13;回车

movah,E

int10h

movAl,10;

int10h

popax

cmpal,'a'

jbskip

cmpal,'z'

JASKIP

SUBAL,32

SKIP:

MOVAH,0

INT10H

movAl,13;回车

movah,E

int10h

movAl,10;

int10h

subsi,1

jnzre

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

2.汇编源程序

3.连接目标程序

4.调试可执行程序,分析程序的运行结果

(六)实验结果分析

利用实验中源程序中的输出方法,分析BIOS和DOS中断调用的功能和区别。

BIOS功能调用功能更为强大,但参数设置复杂

DOS功能调用实现相对简单,但功能不如BIOS强

DOS功能调用格式相对固定,根据AH值不同,使得在执行INT21H指令时有不同功能

BIOS调用对不同的设备,int后所接参数都不一样,而且AH的值也决定其操作

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1