汇编实验指导书.docx

上传人:b****9 文档编号:25698427 上传时间:2023-06-11 格式:DOCX 页数:27 大小:20.37KB
下载 相关 举报
汇编实验指导书.docx_第1页
第1页 / 共27页
汇编实验指导书.docx_第2页
第2页 / 共27页
汇编实验指导书.docx_第3页
第3页 / 共27页
汇编实验指导书.docx_第4页
第4页 / 共27页
汇编实验指导书.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

汇编实验指导书.docx

《汇编实验指导书.docx》由会员分享,可在线阅读,更多相关《汇编实验指导书.docx(27页珍藏版)》请在冰豆网上搜索。

汇编实验指导书.docx

汇编实验指导书

汇编语言实验指导书

授课教师李娜

授课对象05计科、网络、06计科

授课时间07-08学年第一学期

授课地点一、二、四机房

课程简介

一.实验课程的性质和目的

汇编语言程序设计是计算机专业的一门专业基础课,是学好计算机底层系统构成的课程。

汇编语言程序设计是一门实用性很强的课程。

汇编语言程序程序设计实验教案是教案的重要环节,是理论教案的重要补充,只有通过实验,学生才能熟练掌握汇编语言程序设计的基本方法,并对其有更深刻的认识。

本门实验课是单独设课。

二.实验教案的方法和手段

为了提高实验教案效果,实验严把预习、实验、实验报告3个环节。

实验在软件实验室机房完成,单独设组,个人完成实验,每项实验以小班为单位,实验考勤采用电子签到制度。

预习:

安排学生学习实验内容,了解实验的过程和操作规程,并布置思考题和预习报告,让学生有目的地去查阅与实验相关的资料。

实验:

实验开始前由指导教师讲解实验要点,提出注意事项。

实验过程中,主题是学生,教师是辅助作用,要求学生独立完成实验。

实验报告:

实验结束后,强调学生及时填写实验记录表,对实验过程进行详细记录,对实验结果细致地分析、讨论,完成相关思考题作业。

三.课程学时

本实验课实验总学时为32学时。

四.实验成绩的考核方法

汇编语言实验成绩按百分制核定。

实验过程占50%,实验报告占50%。

五.大纲的适用范围

本大纲适用计算机科学与技术专业和计算机应用与维护专业学生。

六.主要设备与器材配备

实验室分室名称

实验名称

主要设备、器材

现有数量

软件实验室

熟悉汇编语言编程环境

计算机

250

软件实验室

简单程序设计

计算机

250

软件实验室

串操作

计算机

250

软件实验室

循环程序设计

计算机

250

软件实验室

分支程序设计

计算机

250

软件实验室

子程序设计

计算机

250

软件实验室

宏定义和宏调用

计算机

250

软件实验室

I/O程序设计

计算机

250

七.实验项目汇总表

序号

实验项目名称

学时

实验类型

实验类别

每组人数

1

熟悉汇编语言编程环境

4

验证

必修

1

2

简单程序设计

2

验证

必修

1

3

串操作

4

验证

必修

1

4

循环程序设计

4

验证

必修

1

5

分支程序设计

4

验证

必修

1

6

子程序设计

4

综合

必修

1

7

宏定义和宏调用

4

验证

必修

1

8

I/O程序设计

6

验证

必修

1

实验一熟悉汇编语言编程环境

一.实验目的

<1)熟悉汇编语言编程环境;

<2)掌握基本汇编程序。

二.实验仪器设备

计算机

三.实验重点、难点

熟悉汇编语言编程环境;

DEBUG常用命令的正确使用。

-T/-U/-Q/-G

四.实验题目

比较两个字符串string1和string2所含的字符是否相同,若相同则显示‘metch’,否则,显示’nomatch’。

五.实验内容、步骤

1.调用EDIT建立ASM源文件。

2.用汇编程序MASM对源文件汇编产生目标文件OBJ。

<如有问题,可用DEBUG调试。

3.用LINK联接程序产生执行文件EXE。

4.执行程序。

附:

源程序

;PROGRAMTITLEGOESHERE—COMPARESTRING

;********************************************************

datasegment

string1db'movethecursorbackward.'

String2db'movethecursorbackward.'

Mess1db'match.',13,10,'$'

Mess2db'nomatch.',13,10,'$'

dataends

prognamsegment

mainprocfar

assumecs:

prognam,ds:

data,es:

data

start:

pushds

subax,ax

pushax

movax,data

movds,ax

moves,ax

leasi,string1

leadi,string2

cld

movcx,25

repzcmpsb

jzmatch

leadx,mess2

jmpshortdisp

match:

leadx,mess1

disp:

movah,09

int21h

ret

mainendp

prognamends

endstart

六.作业布置

<1)完成本实验的实验报告。

<2)针对下一个实验预习课本相关章节;

<3)预习实验指导书相关内容,设计上机源程序。

实验二简单程序设计

一.实验目的

掌握简单程序设计的方法

二.实验仪器设备

计算机

三.实验重点、难点

进一步熟悉汇编语言编程环境;

四.实验题目

试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

五.实验内容、步骤

1.调用EDIT建立ASM源文件。

2.用汇编程序MASM对源文件汇编产生目标文件OBJ。

<如有问题,可用DEBUG调试。

3.用LINK联接程序产生执行文件EXE。

4.执行程序。

附:

源程序

;PROGRAMTITLEGOESHERE—DISPLAY

;********************************************************

datasegment

mess1db'pleaseinputonecharacterbetweena-z',13,10,'$'

dataends

codesegment

mainprocfar

assumecs:

code,ds:

data

start:

pushds

subax,ax

pushax

movax,data。

datareasegmentaddr

movds,ax。

intoDSregister

moves,ax。

setESregistertocurrent

MAINPARTOFPROGRAM

leadx,mess1

movah,09。

callDOS

int21h

begin:

movah,1。

receiveadatafromkeyboard

int21h

cmpal,'a'

jbstop

cmpal,'z'

jastop

subal,20h

movdl,al。

showtheinputedcharacter

movah,2

int21h

jmpbegin

stop:

ret

mainendp

codeends

endstart

六.作业布置

<1)完成本实验的实验报告。

<2)针对下一个实验预习课本相关章节;

<3)预习实验指导书相关内容,设计上机源程序。

实验三串操作

一.实验目的

(1)进一步巩固课本中关于串操作指令学习。

(2)掌握用汇编程序设计中字符串的操作方法。

二.实验仪器设备

计算机

三.实验重点、难点

串操作的隐含操作数的变化。

四.实验题目

根据自己的情况建立数据段:

student_namedb‘‘

Student_iddb‘‘

Print_linedb50dup(?

>

把student_name移到print_line的前20个字节中,把student_id移到print_line的后10个字节中,并输出字符串print_line.

五.实验内容、步骤

1.调用EDIT建立ASM源文件。

2.用汇编程序MASM对源文件汇编产生目标文件OBJ。

<如有问题,可用DEBUG调试。

3.用LINK联接程序产生执行文件EXE。

4.执行程序。

附:

源程序

;PROGRAMTITLEGOESHERE—DISPLAY

;********************************************************

datasegment

STUDENT_NAMEDB'LiJingjing'

STUDENT_IDDB'04121026','$'

PRINT_LINEDB50DUP(''>,'$'

dataends

prognamsegment

mainprocfar

assumecs:

prognam,ds:

data,es:

data

start:

pushds

subax,ax

pushax

movax,data

movds,ax

moves,ax

begin:

leasi,STUDENT_NAME。

moveSTUDENT_NAME'scontentto

theheadofPRINT_LINE

leadi,PRINT_LINE

movcx,10

cld

repmovsb

std。

moveSTUDENT_IDtotheend

ofPRINT_LINE

leasi,STUDENT_ID+7

leadi,PRINT_LINE+49

movcx,8

repmovsb

PRINTSTRING

leadx,PRINT_LINE

movah,09。

showthecontentofprint_line

int21h

ret

mainendp

prognamends

endstart

六.作业布置

<1)完成本实验的实验报告。

<2)针对下一个实验预习课本相关章节;

<3)预习实验指导书相关内容,设计上机源程序。

实验四循环程序设计

一.实验目的

(1)学习循环次数确定的循环程序设计方法。

(2)学习循环次数不确定的循环程序设计方法。

二.实验仪器设备

计算机

三.实验重点、难点

多重循环结构的程序设计。

四.实验题目

(1)用汇编语言编程实现密码的验证任务,设密码为“3132”H,放在BX中。

(2)验证密码后,要求从键盘输入任意一串字符,碰到‘Q’则结束。

五.实验内容、步骤

1.调用EDIT建立ASM源文件。

2.用汇编程序MASM对源文件汇编产生目标文件OBJ。

<如有问题,可用DEBUG调试。

3.用LINK联接程序产生执行文件EXE。

4.执行程序。

附:

源程序

;PROGRAMTITLEGOESHERE—DISPLAY

datasegment

mess1db'pleaseinputyourpassword!

',13,10,'$'

mess2db'ok!

pleaseinputyournumber:

',13,10,'$'

dataends

prognamsegment

mainprocfar

assumecs:

prognam,ds:

data,es:

data

start:

pushds

subax,ax

pushax

movax,data

movds,ax

moves,ax

begin:

leadx,mess1

movah,09。

showthecontentofprint_line

int21h

movbx,3132h

movch,2

movdx,0

ABC1:

movah,07h

int21h

movcl,8

shldx,cl

movdl,al

decch

jnzABC1

cmpdx,bx

jnzABC2

leadx,mess2

movah,09。

showthecontentofprint_line

int21h

ABC3:

movah,1

int21h

cmpal,'Q'

jzABC2

jmpABC3

ABC2:

ret

mainendp

prognamends

endstart

六.作业布置

<1)完成本实验的实验报告。

<2)针对下一个实验预习课本相关章节;

<3)预习实验指导书相关内容,设计上机源程序。

实验五分支程序设计

一.实验目的

(1)学习用汇编语言实现a>b转移的程序设计方法。

(2)学习用汇编语言实现a>=b转移的程序设计方法。

(3)学习用汇编语言实现a

(4)学习用汇编语言实现a<=b转移的程序设计方法。

二.实验仪器设备

计算机

三.实验重点、难点

对于复杂的分支边缘的界定。

四.实验题目

(1)用汇编语言编写实现C=A+B的实验。

(2)从键盘上输入A的值,如A的值在0——9的范围内,则执行第3步;否则继续执行步骤2。

(3)从键盘上输入B的值,如B的值在0——9的范围内,则执行第4步;否则继续执行步骤3。

(4)计算

五.实验内容、步骤

1.调用EDIT建立ASM源文件。

2.用汇编程序MASM对源文件汇编产生目标文件OBJ。

<如有问题,可用DEBUG调试。

3.用LINK联接程序产生执行文件EXE。

4.执行程序。

附:

源程序

;PROGRAMTITLEGOESHERE—DISPLAY

;********************************************************

datareasegment

Adb0

mess1db"pleaseinputadatabetween0and9",13,10,'$'

mess2db'ERROR!

Pleaseinputagain!

',13,10,'$'

mess3db'ThesumofA+Bis:

','$'

mess4db'Thesumis>9',13,10,'$'

mess5db13,10,'$'

datareaends

codesegment

mainprocfar

assumecs:

code,ds:

datarea

start:

pushds

subax,ax

pushax

movax,datarea

movds,ax

leadx,mess1

movah,9

int21h

begin:

movah,1

int21h

subal,'0'

jlnext1

cmpal,9

janext1

jleAA

next1:

leadx,mess5

movah,9

int21h

leadx,mess2

movah,09h

int21h

leadx,mess1

movah,09h

int21h

jmpbegin

AA:

movbl,al。

bl中存放第一次输入的数

leadx,mess5

movah,9

int21h

leadx,mess1

movah,9

int21h

again:

movah,1

int21h

movcl,al

leadx,mess5

movah,9

int21h

moval,cl。

al中存放第二次输入的数

subal,'0'

jlnext2

cmpal,9

janext2

jleBB

next2:

leadx,mess5

movah,9

int21h

leadx,mess2

movah,09h

int21h

leadx,mess1

movah,09h

int21h

jmpagain

BB:

movah,0

addal,bl。

al中存放和

cmpal,0

jeprintit

cmpal,9

jaexit

printit:

movcl,al

leadx,mess3

movah,9

int21h

movdl,cl

adddl,30h

movah,2

int21h

ret

exit:

leadx,mess4

movah,9

int21h

movdl,'0'

movah,2

int21h

ret

mainendp

codeends

endstart

六.作业布置

<1)完成本实验的实验报告。

<2)针对下一个实验预习课本相关章节;

<3)预习实验指导书相关内容,设计上机源程序。

实验六子程序设计

一.实验目的

(1)理解汇编程序中段的概念;

(2)掌握子程序设计及其调用。

(3)掌握查表法程序设计方法。

二.实验仪器设备

计算机

三.实验重点、难点

子程序往往程序较大,调用较多,参数传递、保护较多。

四.实验题目

请用子程序结构编写如下程序:

从键盘输入一个二位十进制的月份数<01-12),然后显示出相应英文缩写名。

五.实验内容、步骤

1.调用EDIT建立ASM源文件。

2.用汇编程序MASM对源文件汇编产生目标文件OBJ。

<如有问题,可用DEBUG调试。

3.用LINK联接程序产生执行文件EXE。

4.执行程序。

附:

源程序

;PROGRAMTITLEGOESHERE—DISPLAY

;********************************************************

datareasegment

threedb3

mess0db'jan'

mess1db'feb'

mess2db'mar'

mess3db'apr'

mess4db'may'

mess5db'jun'

mess6db'jul'

mess7db'aug'

mess8db'sep'

mess9db'oct'

mess10db'nov'

mess11db'dec'

inputmessdb'Pleaseinputthemonth(01--12>','$'

errmessdb'ERROR!

invalidparameter!

!

','$'

datareaends

codesegment

mainprocfar

assumecs:

code,ds:

datarea

start:

pushds

subax,ax

pushax

movax,datarea

movds,ax

leadx,inputmess

movah,09h

int21h

callinput

cmpax,0

jberror

cmpax,12

jaerror

movbx,offsetmess0

subax,1

multhree

addbx,ax

calloutput

ret

error:

leadx,offseterrmess

movah,09h

int21h

inputprocfar

pushbx

movbl,10

movah,01h

int21h

subal,'0'

mulbl

movbx,ax

movah,01h

int21h

subal,'0'

cbw

addax,bx

popbx

ret

inputendp

outputprocnear

movcx,3

next:

movdl,[bx]

movah,02h

int21h

incbx

loopnext

movdl,0dh

movah,02h

int21h

movdl,0ah

movah,02h

int21h

ret

outputendp

mainendp

codeends

endstart

六.作业布置

<1)完成本实验的实验报告。

<2)针对下一个实验预习课本相关章节;

<3)预习实验指导书相关内容,设计上机源程序。

实验七宏汇编

一.实验目的

(1)掌握宏定义设计方法

(2)正确使用宏调用

(3)掌握宏展开

二.实验仪器设备

计算机

三.实验重点、难点

对于正确的宏定义、宏调用写出宏展开,特别是展开层数的确定。

四.实验题目

宏指令RAND产生一个0到LIMIT<32)之间的随机数。

五.实验内容、步骤

1.调用EDIT建立ASM源文件。

2.用汇编程序MASM对源文件汇编产生目标文件OBJ。

<如有问题,可用DEBUG调试。

3.用LINK联接程序产生执行文件EXE。

4.执行程序。

附:

源程序

randMACROlimit,result

pushax

pushcx

movah,0

int1ah

moval,dl

movcl,limit

divcl

moval,ah

movah,0

movresult,ax

popcx

popax

endm

datasegment

mess1db'pleaseinputyourpassword!

',13,10,'$'

mess2db'ok!

pleaseinputyournumber:

',13,10,'$'

dataends

prognamsegment

mainprocfar

assumecs:

prognam,ds:

data,es:

data

start:

pushds

subax,ax

pushax

movax,data

movds,ax

moves,ax

begin:

leadx,mess1

movah,09。

showthecontentofprint_line

int21h

.lall

rand32,dx

ret

mainendp

prognamends

endstart

六.作业布置

<1)完成本实验的实验报告。

<2)针对下一个实验预习课本相关章节;

<3)预习实验指导书相关内容,设计上机源程序。

实验八I/O程序设计

一.实验目的

(1)

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

当前位置:首页 > 考试认证 > 从业资格考试

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

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