汇编语言课程实验11_第1页
汇编语言课程实验11_第2页
汇编语言课程实验11_第3页
汇编语言课程实验11_第4页
汇编语言课程实验11_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、汇编语言第一次实验报告 班级 软091 学号 099074140 姓名 陈浩 指导教师 陆勤 安徽工业大学实验一 显示AL寄存器中的两位十六进制一、 程序流程图开始 初始化循环计数值把最右面的数位转换为ASCII是ASCII A-F? 加上7Y 显示一个字符N循环计数值=0?结束YN二、 程序源代码mov ch, 2 mov al,27h mov bl,al again:mov cl, 4 rol bl, cl mov dl, bl and dl, 0fh add dl, 30h cmp dl, 3ah jl print add dl, 7h print:mov ah, 2 int 21h d

2、ec ch jnz again 三、 DEBUG调试验五 循环程序实验一、实验目的:1、掌握循环程序的设计方法。2、进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。3、学会针对不同的问题,选用不同的组织循环的方法。二、实验内容:编写一个程序,显示AL寄存器中的两位十六进制数。三、编程提示:利用DOS功能调用INT21H的1号功能从键盘输入字符和2号功能在显示器上显示一个字符。四、实验报告:1、程序说明。说明程序的功能、结构。2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。3、画出程序框图。4、

3、写出源程序清单和执行结果。 实验报告系 班级 学号 姓名 同组者 指导教师 1、 程序说明。程序名:disphex.asm。功能:显示AL寄存器中的两位十六进制数。如当键盘输入a时,AL寄存器的保存的值为61H,故输出61H。2、 调试说明。(1) 用EDIT编写源程序,保存为disphex.asm;(2) 用MASM编译源程序,生成目标文件:disphex.obj;(3) 用LINK链接上一步的目标文件,生成可执行文件:disphex.exe。(4) 在编写该程序时遇到了一个较难的问题,就是如何输出AL寄存器中的十六进制数,因为一般情况下直接调用2号功能调用会显示出该十六进制数对应的ASC码

4、,故需要把十六进制数逐位的输出。在输出时还要判别是数字还是字母,再分别做处理。3、 画出程序框图。开始 是否为Q从键盘接受一个按键逐位处理输出退出N Y 4、 写出源程序清单和执行结果。next1: add dl,30h mov ah,2h int 21h ;show higher bit pop ax mov dl,al and dl,0fh mov dl,al and dl,0fh cmp dl,9h jbe next2 add dl,7h next2: add dl,30h mov ah,2h int 21h ;show lower bit mov dl,20h mov ah,2h in

5、t 21h ;show space jmp again exit: mov ah,4ch int 21hcode endsend start程序清单:code segment assume cs:code start: again: mov ah,1 int 21h; mov al,3eh cmp al,'Q' je exit push ax mov ch,al mov dl,3ah mov ah,2hint 21h ; show : mov cl,4 mov dl,ch shr dl,cl cmp dl,9h jbe next1 add dl,7h 执行结果:实验六 分支程序

6、实验一、实验目的:1、掌握分支程序的设计方法。2、掌握利用DEBUG修改参数、检查结果的方法。3、掌握汇编语言源程序的编辑、汇编、连接及调试过程。二、实验内容:编写一个程序,判别键盘上输入的字符;若是19字符,则显示之;若是AZ或az字符,则显示c;若是回车字符<CR>(其ASCII码为ODH),则结束程序;若是其它程序则不显示,继续等待新的字符输入。三、编程提示:利用DOS功能调用INT21H的1号功能从键盘输入字符和2号功能在显示器上显示一个字符。四、实验报告:1、程序说明。说明程序的功能、结构。2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对

7、调试过程中的问题进行分析,对执行结果进行分析。3、画出程序框图。4、写出源程序清单和执行结果。 实验报告系 班级 学号 姓名 同组者 指导教师 1、 程序说明。程序名:dispkey.asm。功能:判别键盘上输入的字符;若是19字符,则显示之;若是AZ或az字符,则显示c;若是回车字符<CR>(其ASCII码为ODH),则结束程序;若是其它程序则不显示,继续等待新的字符输入。2、 调试说明。(1) 用EDIT编写源程序,保存为dispkey.asm;(2) 用MASM编译源程序,生成目标文件:dispkey.obj;(3) 用LINK链接上一步的目标文件,生成可执行文件:dispk

8、ey.exe。3、 画出程序框图。N 开始 是否为回车从键盘接受一个按键逐位处理输出退出Y 4、 写出源程序清单和执行结果。程序清单:dispc: mov dl,'c' ;show c mov ah,2 int 21h mov dl,20h int 21h next: jmp start chrdn: cmp al,61h ;cmp a jb next cmp al,7ah ;cmp z ja next jmp dispc exit: mov ah,4ch int 21hcode endsend start;dispkey.asmcode segment assume cs:c

9、ode start: mov ah,1 int 21h cmp al,0dh jz exit cmp al,'0' jb next cmp al,'9' ja charup mov dl,al mov ah,2 int 21h mov dl,20h int 21h jmp start charup: cmp al,41h jb next cmp al,5ah ;cmp Z ja chrdn 执行结果:实验七 统计不同成绩段学生的人数一、实验目的:1、掌握分支、循环、子程序调用、DOS功能调用等基本的程序结构。2、掌握综合程序的编制及调试方法。二、实验内容:设有十

10、个学生成绩分别是76,69,84,90,73,88,99,63,100和80分。试编制一个子程序,统计低于60分,6069分,7079分,8089分,9099分和100分的人数,并输出显示统计结果。三、编程提示:1、成绩分等部分采用分支结构,统计所有成绩则用循环结构完成,显示统计结果采用DOS功能调用。2、统计学生成绩和显示统计结果两部分内容用子程序结构来完成。四、实验报告:1、程序说明。说明程序的功能、结构。2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。3、画出程序框图。4、写出源程序清单和执行结果。 实验报告

11、系 班级 学号 姓名 同组者 指导教师 1、 程序说明。程序名称:statiscore.asm。功能:统计各分数段的人数,并输出统计结果。2、 调试说明。(1) 用EDIT编写源程序,保存为statiscore.asm;(2) 用MASM编译源程序,生成目标文件:statiscore.obj;(3) 用LINK链接上一步的目标文件,生成可执行文件:statiscore.exe。(4) 由于这道题要用子程序设计,所以考虑到要如何传递参数和如何保存与恢复寄存器的值花了一些时间。还有在内存寻址方面也遇到了不少问题。3、 画出程序框图。开始 在相应分数段 从内存取一个成绩 统计此分数段人数 退出 显示

12、各分数段人数数 Y 4、 写出源程序清单和执行结果。;统计不同成绩段学生的人数data segment score db 76,69,84,90,73,88,99,63,100,80 a2f db 6 dup(0) data endscode segment assume ds:data,cs:code start: mov ax,data mov ds,ax lea si,score lea bx,a2f call statiscore call display mov ax,4c00h int 21h;子程序名:statiscore;功能描述:统计学生成绩;入口和出口参数:ds,si,sc

13、ore;调用注意事项和说明等:寄存器的恢复 statiscore proc push ds push si push ax push bx push cx mov cx,10 again: lodsb cmp al,60;子程序名:display;功能描述:显示统计结果;入口和出口参数:bx,si,a2f;调用注意事项和说明等: 寄存器的恢复 display proc push cx push si push ax mov cx,6 xor si,si aga: mov dl,bxsi add dl,30h mov ah,02h int 21h mov dl,20h mov ah,02h in

14、t 21h inc si loop aga pop ax pop si pop cx ret display endpcode endsend start jl f cmp al,70 jl e cmp al,80 jl d cmp al,90 jl c cmp al,100 jl b inc byte ptrbx jmp next f:inc byte ptrbx+5 jmp next e:inc byte ptrbx+4 jmp next d:inc byte ptrbx+3 jmp next c:inc byte ptrbx+2 jmp next b:inc byte ptrbx+1 j

15、mp next next: loop again pop cx pop bx pop ax pop si pop ds ret statiscore endp学这门课的体会和意见通过这门课的学习,让我对汇编语言有一定的了解,即汇编语言相对机器语言而言要好记好用,但远不如高级语言方便、实用,而且编写同样的程序,使用汇编语言比使用高级语言花费的时间更多,可读性和可移植性较差,调试和维护更困难。但汇编语言也有它优秀的地方,即它的执行速度快,且相对一般的高级语言占用的内存要小。另外,汇编语言的魅力就是直接控制硬件。总之,汇编语言存在很多的弱点,但它具有一些高级语言所不具备的突出优点,所以我觉得它是一门

16、不错的程序设计语言,它也让我对计算机具体的工作原理有一些了解,虽然目前还不是很深。我想以后如果我从事程序员工作,对汇编的应用是少不了的。对于用任何一门高级语言写的程序,如果我们把它研究到汇编级别,从汇编层面看机器是如何运行的,那会对编写高质量的程序会有很大的帮助。我感觉如果要当一位编程高手,一定要从汇编语言开始!体会和意见体会:在做实验之前,我有很多的指令不熟悉,不少指令都不会用,通过做实验,我对这些指令更加熟悉,用起来更加熟练。有很多问题,不通过做实验,可能永远也不会知道。例如:在DOS功能调用INT21H的几种功能时会改变al当中的值,这个问题,我也是在做实验时,通过debug调试时发现的,以前我一直没有意识到这个问题。也许很多知识我们也知道,当在真正解决问题时,不一定能够想到。只有通过做实验,我才对很多知识有了更深的认识。在做实验时,我也碰到很多问题,正是通过分析这些问题,解决这

温馨提示

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

评论

0/150

提交评论