汇编实验指导书_第1页
汇编实验指导书_第2页
汇编实验指导书_第3页
免费预览已结束,剩余7页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、汇编语言实验指导书授课教师 李娜授课对象 05计科、网络、06计科授课时间07 08学年第一学期授课地点 一、二、四机房课程简介一. 实验课程的性质和目的汇编语言程序设计是计算机专业的一门专业基础课,是学好计算机底层系 统构成的课程。汇编语言程序设计是一门实用性很强的课程。汇编语言程序程 序设计实验教案是教案的重要环节,是理论教案的重要补充,只有通过实验, 学生才能熟练掌握汇编语言程序设计的基本方法,并对其有更深刻的认识。本 门实验课是单独设课。二. 实验教案的方法和手段为了提高实验教案效果,实验严把预习、实验、实验报告3个环节。实验在软件实验室机房完成,单独设组,个人完成实验,每项实验以小班

2、为单位, 实验考勤采用电子签到制度。预习:安排学生学习实验内容,了解实验的过程和操作规程,并布置思考 题和预习报告,让学生有目的地去查阅与实验相关的资料。实验:实验开始前由指导教师讲解实验要点,提出注意事项。实验过程 中,主题是学生,教师是辅助作用,要求学生独立完成实验。实验报告:实验结束后,强调学生及时填写实验记录表,对实验过程进行详细记录,对实验结果细致地分析、讨论,完成相关思考题作业。三. 课程学时本实验课实验总学时为32学时。四. 实验成绩的考核方法汇编语言实验成绩按百分制核定。实验过程占 50%,实验报告占50%。五. 大纲的适用范围本大纲适用计算机科学与技术专业和计算机应用与维护专

3、业学生。六. 主要设备与器材配备实验室分室名称实验名称主要设备、器 材现有数量软件实验室熟悉汇编语言编程环境计算机250软件实验室:简单程序设计计算机250软件实验室串操作计算机250软件实验室循环程序设计计算机250软件实验室分支程序设计计算机250软件实验室子程序设计计算机250软件实验室宏定义和宏调用计算机250软件实验室I/O程序设计计算机250七.实验项目汇总表序 号实验项目名称学 时实验类型实验类别每组人 数1熟悉汇编语言编程环境4验证必修12简单程序设计2验证必修13串操作4验证必修14循环程序设计4验证必修15分支程序设计4验证必修16子程序设计4综合必修17宏定义和宏调用4验

4、证必修18I/O程序设计6验证必修1实验一熟悉汇编语言编程环境一. 实验目的V1)熟悉汇编语言编程环境;<2)掌握基本汇编程序。二. 实验仪器设备计算机三. 实验重点、难点熟悉汇编语言编程环境;DEBUG常用命令的正确使用。一T/-U/-Q/-G四. 实验题目比较两个字符串 stringl和string2所含的字符是否相同,若相同则显示 metch;否贝显示'no match'。五. 实验内容、步骤1 .调用EDIT建立ASM源文件。2. 用汇编程序MASM对源文件汇编产生目标文件 OBJ。<如有问题,可用DEBUG调试。)3. 用LINK联接程序产生执行文件EXE

5、。4. 执行程序。附:源程序;PROGRAM TITLE GOES HERE COMPARE STRING *data segme ntstri ng1 db 'move the cursor backward.'Stri ng2 db 'move the cursor backward.'Mess1 db 'match.',13,10,'$'Mess2 db 'no match.',13,10,'$' data ends prognam segment main proc far assume c

6、s:prognam,ds:data,es:data start: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax lea si,string1 lea di,string2 cld mov cx,25 repz cmpsb jz match lea dx,mess2 jmp short disp match: lea dx,mess1 disp: mov ah,09 int 21h ret main endp prognam ends end start 六作业布置<1)完成本实验的实验报告。 <2)针对下一个实验

7、预习课本相关章节; <3)预习实验指导书相关内容,设计上机源程序。实验二 简单程序设计 一实验目的掌握简单程序设计的方法 二实验仪器设备计算机 三实验重点、难点 进一步熟悉汇编语言编程环境; 四实验题目 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。 五实验内容、步骤1调用 EDIT 建立 ASM 源文件。2用汇编程序 MASM 对源文件汇编产生目标文件 OBJ。 <如有问题,可用 DEBUG 调试。) 3用 LINK 联接程序产生执行文件 EXE 。4执行程序。附:源程序;PROGRAM TITLE GOES HERE DISPLAY *?data segm

8、entmess1 db 'please input one character between a-z',13,10,'$' data ends code segment main proc farassume cs:code,ds:datastart:push dssub ax,axpush axmov ax,data。datarea segment addrmov ds,ax 。 into DS registermov es,ax 。 set ES register to current。 MAIN PART OF PROGRAMlea dx,mess1mo

9、v ah,09 。 call DOSint 21hbegin:mov ah,1 。 receive a data from keyboardint 21hcmp al,'a'jb stopcmp al,'z'ja stopsub al,20hmov dl,al 。 show the inputed charactermov ah,2int 21hjmp beginstop:retmain endpcode endsend start六作业布置 <1)完成本实验的实验报告。<2)针对下一个实验预习课本相关章节; <3)预习实验指导书相关内容,设计

10、上机源程序。实验三 串操作 一实验目的(1) 进一步巩固课本中关于串操作指令学习。(2) 掌握用汇编程序设计中字符串的操作方法。 二实验仪器设备计算机 三实验重点、难点 串操作的隐含操作数的变化。四实验题目 根据自己的情况建立数据段: student_name db Student_id db Print_line db 50 dup(?>把 student_name 移到 print_line 的前 20 个字节中,把 student_id 移到 print_line 的后 10 个字节中,并输出字符串 print_line.五实验内容、步骤1调用 EDIT 建立 ASM 源文件。2用

11、汇编程序 MASM 对源文件汇编产生目标文件 OBJ。 <如有问题,可用 DEBUG 调试。) 3用 LINK 联接程序产生执行文件 EXE 。4执行程序。 附:源程序 ;PROGRAM TITLE GOES HERE DISPLAY *?data segment STUDENT_NAME DB 'LiJingjing' STUDENT_ID DB '04121026','$' PRINT_LINE DB 50 DUP(' '>,'$' data ends prognam segment main pr

12、oc far assume cs:prognam,ds:data,es:data start:push dssub ax,axpush axmov ax,datamov ds,axmov es,axbegin:lea si,STUDENT_NAME。move STUDENT_NAME's content to。 the head of PRINT_LINElea di,PRINT_LINE mov cx,10 cld rep movsb std。 move STUDENT_ID to the end。 of PRINT_LINElea si,STUDENT_ID+7lea di,PRI

13、NT_LINE+49 mov cx,8 rep movsb 。 PRINT STRING lea dx,PRINT_LINE mov ah,09 。 show the content of print_line int 21h ret main endp prognam ends end start六作业布置 <1)完成本实验的实验报告。 <2)针对下一个实验预习课本相关章节; <3)预习实验指导书相关内容,设计上机源程序。实验四 循环程序设计 一实验目的(1) 学习循环次数确定的循环程序设计方法。(2) 学习循环次数不确定的循环程序设计方法。 二实验仪器设备计算机 三实验重

14、点、难点 多重循环结构的程序设计。四实验题目3132” H ,放在Q '则结束。(1) 用汇编语言编程实现密码的验证任务,设密码为“ BX 中。(2) 验证密码后,要求从键盘输入任意一串字符,碰到 五实验内容、步骤1调用 EDIT 建立 ASM 源文件。 2用汇编程序 MASM 对源文件汇编产生目标文件 OBJ。 <如有问题,可用 DEBUG 调试。)3用 LINK 联接程序产生执行文件 EXE 。 4执行程序。附:源程序 ;PROGRAM TITLE GOES HERE DISPLAYdata segmentmess1 db 'please input your pas

15、sword!',13,10,'$' mess2 db 'ok! please input your number:',13,10,'$' data endsprognam segment main proc far assume cs:prognam,ds:data,es:data start:push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax begin: lea dx,mess1 mov ah,09 。 show the content of print_line int

16、 21h mov bx,3132h mov ch,2 mov dx,0 ABC1:mov ah,07h int 21h mov cl,8 shl dx,cl mov dl,al dec ch jnz ABC1 cmp dx,bx jnz ABC2 lea dx,mess2 mov ah,09 。 show the content of print_line int 21h ABC3:mov ah,1 int 21h cmp al, 'Q' jz ABC2 jmp ABC3 ABC2: ret main endp prognam endsend start六作业布置<1)完

17、成本实验的实验报告。 <2)针对下一个实验预习课本相关章节; <3)预习实验指导书相关内容,设计上机源程序一实验目的(1) 学习用汇编语言实现(2) 学习用汇编语言实现(3) 学习用汇编语言实现(4) 学习用汇编语言实现 二实验仪器设备 计算机 三实验重点、难点 对于复杂的分支边缘的界定 四实验题目实验五分支程序设计a>b转移的程序设计方法。 a>=b 转移的程序设计方法。 a<b转移的程序设计方法。 a<=b转移的程序设计方法。(1) 用汇编语言编写实现 C=A+B 的实验。(2) 从键盘上输入 A 的值,如 A 的值在 09 的范围内,则执行第 3 步;

18、 否则继续执行步骤 2。(3) 从键盘上输入 B 的值,如 B 的值在 09 的范围内,则执行第 4 步; 否则继续执行步骤 3。 计算vA+B )的值,女口 vA+B ) <=9则将vA+B )的值送入C并显示在屏幕 上,否则将在屏幕上显示 0。五实验内容、步骤1调用 EDIT 建立 ASM 源文件。2用汇编程序 MASM 对源文件汇编产生目标文件 OBJ。<如有问题,可用DEBUG调试。)3用 LINK 联接程序产生执行文件 EXE。4执行程序。附:源程序;PROGRAM TITLE GOES HEREDISPLAY *?datarea segmentA db 0mess1 d

19、b "please input a data between 0 and 9",13,10,'$'mess2 db 'ERROR!Please input again!',13,10,'$'mess3 db 'The sum of A+B is:','$'mess4 db ' The sum is >9',13,10,'$' mess5 db 13,10,'$'datarea endscode segmentmain proc far ass

20、ume cs:code,ds:datarea start: push ds sub ax,ax push ax mov ax,datarea mov ds,ax lea dx,mess1 mov ah,9 int 21h begin: mov ah,1 int 21h sub al,'0' jl next1 cmp al,9 ja next1 jle AA next1: lea dx,mess5 mov ah,9 int 21h lea dx,mess2 mov ah,09h int 21h lea dx,mess1 mov ah,09h int 21h jmp begin A

21、A:mov bl,al 。 bl中存放第一次输入的数 lea dx,mess5 mov ah,9 int 21h lea dx,mess1 mov ah,9 int 21h again:mov ah,1 int 21h mov cl,al lea dx,mess5 mov ah,9int 21hmov al,cl 。al中存放第二次输入的数 sub al,'0' jl next2 cmp al,9 ja next2 jle BB next2:lea dx,mess5 mov ah,9 int 21hlea dx,mess2 mov ah,09h int 21hlea dx,me

22、ss1 mov ah,09h int 21h jmp againBB: mov ah,0 add al,bl 。 al 中存放和 cmp al,0 je printit cmp al,9 ja exit printit:mov cl,allea dx,mess3 mov ah,9 int 21h mov dl,cl add dl,30h mov ah,2 int 21h ret exit:lea dx,mess4 mov ah,9 int 21h mov dl,'0' mov ah,2 int 21h ret main endpcode endsend start六作业布置&l

23、t;1)完成本实验的实验报告。<2)针对下一个实验预习课本相关章节;<3)预习实验指导书相关内容,设计上机源程序。 实验六子程序设计 一实验目的(1) 理解汇编程序中段的概念;(2) 掌握子程序设计及其调用。(3) 掌握查表法程序设计方法。 二实验仪器设备计算机 三实验重点、难点 子程序往往程序较大,调用较多,参数传递、保护较多。<01四实验题目 请用子程序结构编写如下程序:从键盘输入一个二位十进制的月份数 12),然后显示出相应英文缩写名。五实验内容、步骤1调用 EDIT 建立 ASM 源文件。2用汇编程序 MASM 对源文件汇编产生目标文件 OBJ。<如有问题,可用

24、 DEBUG 调试。)3用 LINK 联接程序产生执行文件 EXE 。4执行程序。 附:源程序 ;PROGRAM TITLE GOES HERE DISPLAY *?datarea segmentthree db 3mess0 db 'jan'mess1 db 'feb'mess2 db 'mar'mess3 db 'apr'mess4 db 'may'mess5 db 'jun'mess6 db 'jul'mess7 db 'aug'mess8 db 'se

25、p'mess9 db 'oct'mess10 db 'nov'mess11 db 'dec'inputmess db 'Please input the month(01-12>','$' errmess db 'ERROR! invalid parameter!','$'datarea ends code segment main proc far assume cs:code,ds:datarea start:push ds sub ax,ax push ax mo

26、v ax,datarea mov ds,ax lea dx,inputmess mov ah,09h int 21h call input cmp ax,0 jb error cmp ax,12 ja error mov bx,offset mess0 sub ax,1 mul three add bx,ax call output ret error: lea dx, offset errmess mov ah,09h int 21h input proc far push bx mov bl,10 mov ah,01h int 21h sub al,'0' mul bl m

27、ov bx,ax mov ah,01h int 21h sub al,'0' cbw add ax,bx pop bx ret input endpoutput proc near mov cx,3 next: mov dl,bx mov ah,02h int 21h inc bx loop next mov dl,0dh mov ah,02h int 21h mov dl,0ah mov ah,02h int 21h ret output endp main endp code ends end start 六作业布置<1)完成本实验的实验报告。 <2)针对下一个

28、实验预习课本相关章节; <3)预习实验指导书相关内容,设计上机源程序。实验七宏汇编 一实验目的(1) 掌握宏定义设计方法(2) 正确使用宏调用(3) 掌握宏展开 二实验仪器设备 计算机 三实验重点、难点 对于正确的宏定义、宏调用写出宏展开,特别是展开层数的确定 四实验题目宏指令 RAND 产生一个 0 到 LIMIT<32 )之间的随机数。 五实验内容、步骤1调用 EDIT 建立 ASM 源文件。2用汇编程序 MASM 对源文件汇编产生目标文件 OBJ。 <如有问题,可用 DEBUG 调试。)3用 LINK 联接程序产生执行文件 EXE 。 4执行程序。附:源程序 rand

29、MACRO limit,result push ax push cxmov ah,0 int 1ah mov al,dl mov cl,limit div cl mov al,ah mov ah,0 mov result,ax pop cx pop ax endm data segment mess1 db 'please input your password!',13,10,'$' mess2 db 'ok! please input your number:',13,10,'$' data ends prognam segm

30、ent main proc farassume cs:prognam,ds:data,es:data start: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax begin: lea dx,mess1mov ah,09 。 show the content of print_line int 21h.lall rand 32,dx ret main endp prognam ends end start 六作业布置<1)完成本实验的实验报告。 <2)针对下一个实验预习课本相关章节; <3)预习实验指导书相关

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论