当前位置:文档之家› 汇编器实验报告doc

汇编器实验报告doc

汇编器实验报告篇一:汇编实验报告实验一(1)熟悉汇编语言程序调试环境及顺序程序设计一、实验目的及要求:1.学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互之间的关系。

2.学会使用EDIT、MASM、LINK、DEBUG等软件工具。

3.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。

二、熟悉汇编语言程序调试环境1.汇编语言源程序的建立本例中给出的程序是要求从内存中存放的10个无符号字节整数数组中找出最小数,将其值保存在AL寄存器中。

设定源程序的文件名为ABC。

DATA SEGMENTBUFDB 23H,16H,08H,20H,64H,8AH,91H,35H,2BH,7FH CN EQU $-BUFDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: PUSH DSXOR AX,AXPUSH AXMOVAX,DATAMOV DS,AXMOV BX,OFFSET BUFMOV CX,CNDEC CXMOV AL,[BX]INC BXLP:CMP AL,[BX]JBE NEXTMOV AL,[BX]NEXT: INC BXDEC CXJNZ LPMOV AH,4CHINT 21HCODE ENDSEND START键入以下命令:C:\>EDIT ABC.ASM此时屏幕的显示状态如图1所示。

1图1 用EDIT编辑ABC.ASM程序窗口程序输入完毕后一定要将源程序文件存入盘中,以便进行汇编及连接,也可以再次调出源程序进行修改。

2.将源程序文件汇编成目标程序文件一般情况下,MASM汇编程序的主要功能有以下3点:(1)检查源程序中存在的语法错误,并给出错误信息。

(2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.OBJ。

(3)若程序中使用了宏指令,则汇编程序将展开宏指令。

源程序建立以后,在DOS状态下,采用宏汇编程序MASM 对源程序文件进行汇编,其操作过程如图2所示。

图2 MASM宏汇编程序工作窗口汇编过程的错误分警告错误(Warning Errors)和严重错误(Severe Errors)两种。

其中警告错误是指汇编程序认为的一般性错误;严重错误是指汇编程序认为无法进行正确汇编的错误,并给出错误的个数、错误的性质。

这时,就要对错误进行分析,找出原因和问题,然后再调用屏幕编辑程序加以修改,修改以后再重新汇编,一直到汇编无错误为止。

3.用连接程序生成可执行程序文件经汇编以后产生的目标程序文件(.OBJ文件)并不是可执行程序文件,必须经过连接以后,才能成为可执行文件(即扩展名为.EXE)。

2连接过程如图3所示。

图3 LINK连接程序工作窗口上述提示行回答以后,连接程序开始连接,如果连接过程中出现错误,则显示出错误信息,根据提示的错误原因,要重新调入编辑程序加以修改,然后重新汇编,再经过连接,直到没有错误为止。

连接以后,便可以产生可执行程序文件(.EXE文件)。

4.程序的执行当我们建立了正确的可执行文件以后,就可以直接在DOS状态下执行该程序。

如:C:\>ABC本程序当中没有用到DOS中断调用指令,所以在屏幕上看不到程序执行的结果。

实验二(2)分支及循环程序设计一、实验目的及要求熟练掌握转移指令,掌握分支程序设计的原理和方法 , 重点掌握各种分支程序中形成条件和判断条件的方法和技巧。

掌握循环程序设计的方法(单重循环结构和两重循环结构),正确分配与使用寄存器,根据实际问题选择控制循环的方法(循环次数已知和循环次数未知)。

二、实验内容编写下列程序并调试通过。

1.通过键盘输入一个小写字母,找出对应的前导字母和后续字母,再按顺序显示这三个字母。

2.编写一个程序,要求比较数组ARRAY中的三个16位补码,并根据比较结果在终端上显示如下信息:1)如果三个数都不相等,显示0;2)如果三个数都两个相等,显示1;3)如果三个数都相当,显示2。

33.编写一个程序,要求通过键盘接收一个个位数N,然后显示N个字母‘$’。

4.从键盘上输入一个8位二进制数,在显示器上显示其相应的十六进制数。

(教材P170 习题5)5.要求从键盘上接收一个4位十六进制数,然后再显示器上显示其对应的16位二进制数。

6.用15行*16列的表格形式显示ASCII码为10H-FFH的所有字符。

三、实验设计方案说明实验1流程图:实验完整代码:DATAS SEGMENT;此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS;告诉汇编程序哪个是代码段,哪个是数据段,哪个是堆栈段START: MOV AX,DATASMOV DS,AX ;初始化数据段的段地址MOV CL,3L: MOV AH,01H ;输入一个小写字母,常用DOS功能调用,入口参数为AHINT 21HCMP AL,61HJB L(本文来自: 小草范文网:汇编器实验报告) CMP AL,7AHJA LMOV DL,0DH ;回车MOV AH,02H ;常用DOS功能调用,入口参数为AH4;对输入进行判断,确保输入的字符为a~zINT 21HMOV DL,0AH ;换行MOV AH,02HINT 21HSUB BL,01H ;按顺序输出三个字母CMP BL,61H ;判断前导字母是否合法JNB L1 ADD BL,1AH MOV DL,BL MOV AH,02H INT 21HSUB BL,19H JMP L2L1: MOV DL,BL ;输出录入字母的前导字母MOV AH,02H INT 21H INC BLL2: MOV DL,BL ;输出录入字母本身MOV AH,02H INT 21H INC BL CMP BL,7AH ;判断后续字母是否合法 JNA L3 SUB BL,1AHL3: MOV DL,BL ;输出录入字母的后续字母MOV AH,02H ;常用DOS功能调用,入口参数为AH INT 21HINT 21HCODES ENDSEND START5篇二:汇编实验报告课程设计(大作业)报告课程名称:微机原理与汇编语言程序设计设计题目:简单计算器程序设计院系:班级: 12级计算机应用技术1班设计者:陈娟学号:XX110XX6指导教师:周曦设计时间:昆明学院课程设计(大作业)任务书目录1题目分析 ............................................. 5 2基本理论 ............................................. 5 3 总体设计.. (6)3.1 本程序的功能结构图 .............................. 6 3.2字符输入及存储设计 .............................. 8 3.3加、减、乘、除法运算的判断设计 ................. 8 3.4加、减、乘、除法运算的设计 ..................... 9 4实验器材 ............................ 错误!未定义书签。

5方法步骤 ............................ 错误!未定义书签。

6成效分析 ............................ 错误!未定义书签。

6.1运行界面分析 ................... 错误!未定义书签。

6.2调试过程及分析 ................. 错误!未定义书签。

7心得体会 ............................ 错误!未定义书签。

8参考文献 ............................ 错误!未定义书签。

9附录 ................................ 错误!未定义书签。

课程设计(大作业)报告一、题目分析本次设计的简单计算器,主要是为了解决数学中的加、减、乘、除四则运算的问题。

重点和难点主要包括以下几个方面:(1)利用BIOS调用中INT 16H调用中的子程序完成清屏、设置显示方式、设置窗口等操作。

(2)利用INT 21H DOS系统功能调用中的键盘输入接收十进制操作数和运算符由程序完成字符转换为二进制数,并存储起来。

(3)根据运算符完成运算,由程序在屏幕上显示运算结果。

1、十进制数转换为二进制数过程如下:(1)将BX清0.(2)从键盘接收一个按键的ASCII送AL中,并判断是否为0到9之间的字符,若不是转退出;否则将AL中内容减30H,转换为相应数字的二进制数,并扩展到AX中,然后将BX中内容乘以10后,再加上AX中的内容。

(3)转(2)继续执行因此程序退出后,BX中的内容即为所输入十进制数的二进制值。

例如:首先将BX清0后,先输入数字“5”,则(AL)=35H,属于0到9之间的数字,减30H后,(AL)=05H,扩展后,(AX)=0005H,BX乘以10后,加上AX中的内容,(BX)=0005H。

然后输入数字“8”,则(AL)=38H,属于0到9 之间的数字,减30H后,(AL)=38H,扩展后,(AX)=0008H,(BX)乘以10后,加上AX中的内容,(BX)=0037H,为十进制数“58”的二进制值。

十进制数显示过程如下(被显示的数据(1)将被显示的内容送入BX中;(2)BX除以1000,余数送BX,商在AL中,范围为0~9;(3)显示AL中的内容;(4)(BX)除以100,余数送BX,商在AL中,范围为0~9;(5)显示AL中的内容。

以此类推,直到分离出个位数字为止。

在这里有一个特殊问题需要讨论:例如“53”这个十进制数,除以1000除以100的商都为0,不应显示。

为了能够实现高位的“0”不显示,程序中设置一个标志M,初始值都设置为1。

若M=1且商为0,则这个0不现实;若M=1且商不为0,则说明这是第一个非0数字,开始显示,并将M设置为0;若M=0,篇三:汇编实验报告汇编语言实验报告学院:计算机学院专业:网络工程指导老师:纪平实验一汇编语言程序调试方法一、实验目的,1,熟悉汇编语言运行环境和方法 2,了解如何使用汇编语言编制程序 3,熟悉debug有关命令的使用方法 4,利用debug掌握有关指令的功能 5,利用debug运行简单的程序段二、实验内容1,学会输入、编辑汇编语言程序2,学会对汇编语言程序进行汇编、连接和运行 3,进入和退出debug程序4,学会debug中的D命令、E命令、R命令、T命令、A 命令、G命令等的使用。

相关主题