汇编语言程序设计实验教程

合集下载

实验一 基础汇编语言程序设计

实验一 基础汇编语言程序设计

实验一基础汇编语言程序设计
一、实验目的
1、学习和了解TEC-XP教学实验系统监控命令的用法;
2、学习和了解TEC-XP教学实验系统的指令系统;
3、学习简单的TEC-XP教学实验系统汇编程序设计;
二、实验内容
1、学习练级使用TEC-XP教学实验系统和仿真终端软件PCEC。

2、使用监控程序R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;
3、使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行改程序,用T、P命令单步运行并观察程序单步执行情况;
三、实验步骤
1、用R命令查看寄存器内容或修改寄存器的内容
2、用D命令显示存储器内容
3、用E命令修改存储器内容
4、用D命令显示着几个单元的内容
5、用A命令键入一段汇编源程序,主要是向累加器送入数据和进行运算,执行程序并观察运行结果。

1)
2)
3)
4)
6、举例编写汇编程序,用“A”命令输入,运行并观察结果
1)、例1:设计一个小程序,从键盘上接受一个字符并在屏幕上输出显示该字符。

2)、例2:设计一个小程序,用次数控制在终端屏幕上输出‘0’到‘9’十个数字符。

实验一 汇编语言程序设计的实验环境及上机步骤

实验一  汇编语言程序设计的实验环境及上机步骤

实验一熟悉汇编语言程序设计的实验环境及上机步骤一、实验目的:1、掌握文本编辑程序EDIT的基本使用方法。

2、熟练掌握汇编语言上机操作的基本步骤,学会汇编语言程序的编辑、汇编、连接、运行等操作方法。

二、上机实验指导(一)实验环境1.硬件环境微型计算机(Intel x86系列CPU)一台2. 软件环境⏹Windows98/2000/XP操作系统⏹文本编辑器(NOTEPAD(记事本))⏹汇编程序(MASM.EXE)⏹连接程序(LINK.EXE)(二)上机实验步骤上机步骤总结如下:1.把汇编程序拷贝到 C:\ASM\2.用记事本建立ASM源程序,保存为C:\ASM\HELLO.ASM3.汇编 C:\ASM>MASM HELLO.ASM<回车>4.链接C:\ASM>LINK HELLO.OBJ<回车>5.执行C:>ASM>HELLO〈回车〉下面详细介绍上机步骤:1.确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。

创建方法:找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。

请把MASM.EXE、LINK.EXE都拷贝到此目录中。

2.建立ASM源程序使用NOTEPAD(记事本)文本编辑器建立ASM源程序。

打开记事本,输入源程序后,保存为后缀为.ASM的文件,保存路径为C:\ASM\HELLO.ASM。

3.用MASM.EXE汇编源程序产生OBJ目标文件具体操作如下:在DOS命令提示符窗口中操作选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令:C:\Documents and Settings>cd..(回车,退回到上一级根目录)C:>CD ASM<回车>C:\ASM>MASM HELLO.ASM<回车>操作时的屏幕显示如图2所示。

《汇编语言程序设计》实验教学大纲

《汇编语言程序设计》实验教学大纲

《汇编语言程序设计》实验教学大纲实验教学大纲《汇编语言程序设计》一、实验目的1.学习并掌握汇编语言程序设计的基本原理和方法。

2.培养学生的计算机底层编程能力,提高其对计算机工作原理的理解。

二、实验内容1.汇编语言程序的基本语法和指令2.数据传送、算术运算和逻辑运算指令的使用3.条件分支和循环控制指令的应用4.子程序和函数的设计与调用5.实践中的程序调试和测试技巧三、实验环境和工具1.计算机硬件:至少一台支持汇编语言开发的计算机2. 操作系统:Windows、Linux等3.汇编语言开发工具:MASM、NASM等4.调试工具:调试器、PE浏览器等四、实验要求1.按照实验指导书的要求,独立完成实验任务。

2.熟悉并掌握相关的汇编指令和程序设计技巧。

3.理解并掌握调试工具的使用方法。

4.根据实验结果进行思考和总结,撰写实验报告。

五、实验流程1.实验前:预习相关课程内容,了解实验任务的要求和目标。

2.实验中:按照实验指导书的要求,完成实验任务,同时理解和掌握相关的理论知识,尽量独立思考解决问题。

3.实验后:总结和归纳实验中遇到的问题和解决方法,撰写实验报告。

六、实验内容详述1.实验一:汇编语言程序的基本语法和指令-学习汇编语言程序的基本结构和语法规则-掌握汇编指令的书写和使用方法2.实验二:数据传送、算术运算和逻辑运算指令的使用-学习数据传送指令的使用方法,实现变量的读写和数据传递-学习算术运算指令的使用方法,实现数值的加减乘除等操作-学习逻辑运算指令的使用方法,实现条件判断和逻辑运算3.实验三:条件分支和循环控制指令的应用-学习条件分支指令的使用方法,实现条件判断和跳转-学习循环控制指令的使用方法,实现循环操作和计数4.实验四:子程序和函数的设计与调用-学习子程序的设计和调用方法,实现程序代码的模块化和复用-学习函数的设计和调用方法,实现特定功能的封装和调用5.实验五:实践中的程序调试和测试技巧-学习程序调试技巧,如断点调试、单步执行等-学习程序测试技巧七、实验评分1.实验报告的撰写质量:20分2.实验任务的完成程度:60分3.实验中的操作和程序编写能力:20分八、参考教材1.《汇编语言程序设计》,李文娟编著,高等教育出版社,2024年2.《汇编语言程序设计教程》,汪金平编著,清华大学出版社,2024年以上是《汇编语言程序设计》实验教学大纲的内容,旨在帮助学生全面了解实验的目的、内容和要求,明确学习的流程和方式。

汇编语言程序设计的实验环境及实验步骤

汇编语言程序设计的实验环境及实验步骤

汇编语言程序设计的实验环境及实验步骤1、汇编语言源程序编写好以后,必须经过下列几个步骤才能在机器上运行:(1) 编辑源程序(生成.ASM文件)(2) 汇编源程序(.ASM → .OBJ)(3) 连接目标程序(.OBJ → .EXE )(4) 调试可执行程序(使用调试程序Debug调试生成的.EXE文件)(5) 运行程序输出结果。

2、Windows环境下的汇编语言集成编程环境的使用实验一 DOS环境下的汇编语言编程环境使用(基础与验证型)实验要求和目的1、掌握汇编语言程序设计的基本方法和技能;2、熟练掌握使用全屏幕编辑程序EDIT编辑汇编语言源程序;3、熟练掌握宏汇编程序MASM的使用;4、熟练掌握连接程序LINK的使用。

实验涉及的主要知识单元1、编辑源程序例如,编写程序,可以在DOS模式下用编辑程序edit.exe建立汇编语言源程序文件Hello.asm,注意文件名的扩展名必须是.asm。

也可以在Windows 2000或者在Windows XP环境下鼠标单击“开始”→“运行”,在“运行”中输入“cmd”进入DOS模式,运行edit软件,例如:C:> edit hello.asm2、汇编语言源程序的汇编过程汇编程序调入后,首先显示版本号,然后出现三个提示行。

第一个提示行为:Object filename [HELLO.OBJ]:询问目标程序文件名,方括号内为机器规定的默认的文件名,通常直接按回车键,表示采用默认的文件名(如上所示)。

第二个提示行为:Source listing [NUL.LST]:询问是否建立列表文件。

若不建立,直接回车;若要建立,可以输入文件名hello再回车。

列表文件中同时列出源程序和机器语言程序清单,并给出符号表,有利于程序调试。

第三个提示行为:Cross-reference [NUL.CRF]:询问是否要建立交叉索引文件。

若不建立,则直接回车;若要建立,可以输入文件名。

汇编语言程序设计实验指导书

汇编语言程序设计实验指导书

实验一宏汇编MASM5.0运行环境一、实验目的1、熟悉的MASM5.0宏汇编程序运行环境2、掌握用MASM5.0运行汇编语言程序的步骤3、学习及掌握的debug程序的各种命令并调试汇编语言程序。

二、实验仪器计算机、masm汇编运行环境三、实验原理1、建立汇编语言的工作环境(1)编辑程序:EDIT .COM(2)汇编程序:MASM .EXE(3)连接过程:LINK.EXE(4)调试程序:DEBUG .EXE2、运行汇编语言程序的步骤(汇编语言程序的上机过程)在汇编实验步骤的word文档中(请下载参考)。

(1)用汇编程序建立源文件(*.asm)汇编程序:记事本,写字板或EDIT.EXE 。

(文本文件编辑器)扩展名为:.asm(2)用汇编程序(MASM、EXE)产生OBJ文件。

(3)用连接程序(LINK 、EXE)生成EXE文件。

(4)程序的执行直接输入文件名LINKEDIT记事本写字板MASM3、用DEBUG 运行、调试汇编语言程序(1)进入DEBUGC:\ DEBUG (前提DEBUG .COM 程序在C 盘)屏幕显示:- “-”这个符号是进入DEBUG的提示符,在该提示符下可键入任意DEBUG 命令,现在用A命令送程序。

(2)送程序并汇编-A 100169C:0100 MOV DL ,33169C:0102 MOV AH ,2169C:0104 MOV INT 21169C:0106 MOV INT 20169C:0101此程序已送完,并汇编成机器指令(3)现在用G命令一运送程序-G3看一下机器指令是什么样的用反汇编命令U(4)反汇编-U 100 :108段地址偏移地址指令169C :0100 B233 MOV DL ,33169C :0102 B402 MOV AH ,02169C :0104 CD21 INT 21169C :0106 CD20 INT 20169C :D108(5)用Q命令退出DEBUG 返回DOS-QC:\4、DEBUG 命令(1)汇编命令A格式1)A < 段寄存器名>:<位移> ;(段寄器)为段地址2)A <段地址> :<位移> ;(c s) 为段地址3)A <位移> ;4)A ;以CS:100作地址功能:键入该命令后显示的地址和位移并等待用户从键盘逐条键入汇编命令。

汇编程序设计实验

汇编程序设计实验

汇编程序设计实验汇编程序设计实验是计算机科学与技术专业中一项重要的实践教学环节,它旨在培养学生对计算机硬件结构和低级语言程序设计的深入理解。

通过实验,学生可以学习到如何使用汇编语言编写程序,以及如何将这些程序转换为机器可以执行的指令。

实验目的1. 理解汇编语言的基本概念和语法结构。

2. 掌握汇编语言程序设计的基本方法和技巧。

3. 熟悉汇编程序的编写、编译、调试和运行过程。

4. 增强对计算机硬件工作原理的认识和理解。

实验环境- 汇编语言开发环境,如MASM、NASM等。

- 汇编器和链接器,用于将汇编源代码转换为可执行文件。

- 调试工具,如调试器,用于检查程序的执行过程。

实验内容1. 汇编语言基础- 学习汇编语言的指令集和操作数。

- 了解汇编语言的基本语法和程序结构。

2. 编写简单的汇编程序- 编写一个程序,实现数据的输入和输出。

- 编写一个程序,实现简单的算术运算。

3. 寄存器和内存操作- 学习如何使用寄存器进行数据存储和操作。

- 编写程序,实现内存地址的数据读写。

4. 循环和条件判断- 学习循环结构和条件判断的实现方法。

- 编写程序,实现循环和条件判断的功能。

5. 子程序调用- 学习子程序的编写和调用方法。

- 编写一个主程序和若干子程序,实现模块化编程。

6. 中断和异常处理- 了解中断和异常的基本概念。

- 编写程序,实现简单的中断服务程序。

7. 汇编与高级语言的接口- 学习如何将汇编程序与C/C++等高级语言程序进行接口。

- 编写程序,实现汇编语言与高级语言的混合编程。

实验步骤1. 环境搭建:安装并配置汇编语言开发环境。

2. 编写代码:根据实验要求编写汇编语言源代码。

3. 编译程序:使用汇编器将源代码编译为机器代码。

4. 链接程序:使用链接器将编译后的代码与其他必要的库链接成可执行文件。

5. 调试程序:使用调试工具检查程序的执行过程,找出并修复错误。

6. 运行程序:在适当的环境下运行程序,验证程序的正确性。

汇编语言程序设计实验教程教学设计

汇编语言程序设计实验教程教学设计

汇编语言程序设计实验教程教学设计一、教学目标1.掌握汇编语言的基本指令和编程思想;2.能够使用汇编语言进行简单程序设计;3.能够理解计算机底层运行原理。

二、教学内容1.汇编语言基础知识(常用指令、流程控制、数据传输等);2.简单的程序设计实例(数值计算、字符串处理等);3.实验环境的搭建和使用。

三、教学方法1.讲授型教学结合实例演示;2.学生自学课程材料和实验操作指南;3.实验探究和讨论;4.组织小组项目,鼓励合作学习。

四、教学过程第一周本周教学目标:讲解汇编语言基础知识和常用指令。

时间安排教学内容教学方式第一课时引言:计算机底层工作原理讲授时间安排教学内容教学方式第二课时汇编语言概述讲授第三课时汇编语言基本指令(数据传输)讲授+实例演示第四课时汇编语言基本指令(逻辑运算)讲授+实例演示第二周本周教学目标:讲解汇编语言的流程控制和程序设计实例。

时间安排教学内容教学方式第一课时汇编语言基本指令(流程控制)讲授+实例演示第二课时程序设计实例(数值计算)讲授+实例演示第三课时程序设计实例(字符串处理)讲授+实例演示第四课时总结回顾讲授第三周本周教学目标:实验环境的搭建和使用,以及实验探究和讨论。

时间安排教学内容教学方式第一课时实验环境搭建实验操作指导第二课时实验一:初识汇编语言编程实验操作指导+实验探究第三课时实验二:数值计算的汇编实现实验操作指导+实验探究第四课时实验三:字符串处理的汇编实现实验操作指导+实验探究第四周本周教学目标:自主学习和小组项目。

时间安排教学内容教学方式第一-四课时自主学习和小组项目自主学习+小组研究五、考核方式1.实验报告和代码评分;2.期末考试和综合评价。

六、教学资源1.课程PPT和课程材料;2.实验指导书和实验代码;3.在线学习平台和资料共享平台。

七、教学效果评价在本门课程学习结束后,学生应能够熟练掌握汇编语言的基本知识和编程思想,能够使用汇编语言进行简单程序设计,能够理解计算机底层运行原理。

汇编语言程序设计实验报告

汇编语言程序设计实验报告
2.掌握汇编语言源程序的执行过程。
二、实验内容
P131作业29。
实验三子程序设计实验
一、实验目的
1.掌握汇编语言源程序子程序设计方法;
2.会使用CV软件工具。
二、实验内容
把实验二作为子程序,编写主程序来对能否构成三角形进行10判断。
实验四宏汇编程序设计实验
一、实验目的
1.掌握宏汇编程序编程技术及宏调用的方法;
2.主模块程序完成子程序的调用,及判断结果的显示,程序名为:ZHU.asm。
实验五混合程序的开发实验
一、实验目的
1.了解混合调用中的参数设置;
2.掌握混合调用的方法;
二、实验内容
P156第5题。
实验一单指令功能测试实验
一、实验目的
1.会使用DEBUG软件;
2.利用DEBUG单步执行功能测试指令的执行。
二、实验内容
判断从键盘输入的ASCII码数字,若是小于等于5,显示“C”,若是大于5显示“D”。假设输入的只可能是0~9数字。
实验二完整的汇编语言程序设计实验
一、实验目的
1.掌握完整的汇编语言源程序的设计方法;
实验五多模块程序设计实验
一、实验目的
1.掌握汇编段的属性的含义;
2.掌握利用LINK将多模块连接起来的方法;
3.掌握利用库文件将多模块连接起来的方法。
二、实验内容
假设内存单元中有三个字a、b和c,编写一个程序,它可判断它们能否构成一个三角形,若能,显示“Y”,否则,显示“N”;
具体要求:
1.三角形的判断程序为一模块子程序,程序名为:ABC.asm。入口参数:字节变量a、b、c。出口参数:字节变量d=1是三角形,d=0不是三角形。
2.了解COM文件的编程方法及特点;

实验五汇编语言程序设计实验(一)

实验五汇编语言程序设计实验(一)

实验五汇编语言程序设计实验(一)一、实验目的1、了解和掌握汇编语言子程序和主程序的设计。

2、掌握循环程序的设计。

3、掌握汇编语言主程序与子程序的调用和参数传递。

4、进一步熟悉在PC机上建立,汇编,链接,调试和运行8086、8088汇编语言程序的过程。

二、实验内容1、复习汇编语言源程序的上机过程:2、编写一个完整程序(包含循环设计和子程序设计)在以strg为首地址的缓冲区中存放着1个字符串,以-1作为结束标志,编程统计字符串长度,并将结果存入lenth单元。

要求统计字符串用子程序完成。

data segmentstrg db ‘abcd’,-1lenth dw ?data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea dx,strgcall scountmov lenth,bxmov ah,4chint 21hscount proc nearpush sixor bx,bxmov si,dxnext:cmp byte ptr[si],-1jz overinc bxinc sijmp nextover:pop siretscount endpcode endsend start三、实验器材IBM PC 微机一台四、实验要求1、正确理解本次实验的目的,内容和原理。

2、能编写相应的程序五、实验报告要求完成下面任务:从键盘输入1个长度小于100的字符串,存入以buff 为首地址的缓冲区,其中如有大写字母,要求用子程序转换成小写字母,字符串以回车键作为结束。

写出操作步骤,程序清单,程序注释,实验现象。

实验3 _汇编语言程序设计

实验3 _汇编语言程序设计

实验三:16位机的汇编语言程序设计一实验目的(1) 熟悉监控命令A,D,E,G,R,T,U的使用;(2) 熟悉16位机的29条汇编指令,理解每条汇编指令执行的操作;(3) 能够利用仿真软件TEC2000Sim提供的29条汇编指令编写简单的汇编程序设计。

二实验设备PC电脑一台;需安装软件TEC2000Sim。

三实验准备指令格式、寻址方式和指令系统是讲解、设计和实现控制器部件的基础,但讲解起来枯燥抽象,要让学生真正对这部分教学内容有适度了解和切身体会,开展汇编语言程序设计的实验是必要的,实验不太难,又能提高学生的学习兴趣,有利于加深对指令及指令系统的理解,有利于掌握教学计算机的使用,为开展后续其他教学实验项目做好必要准备。

这项实验最好在16位字长的教学计算机上完成,也可以使用一个我们开发的、运行在PC机上的仿真软件TEC2000sim来进行。

实验内容包括学习教学机的监控程序的使用方法,即如何通过7个监控命令A、U、E、D、R、G、T操作和运行教学计算机。

A命令用于向计算机内输入汇编语言程序的源码,执行单个语句的汇编操作,并把汇编产生的指令代码程序保存到存储器的指定区域;U命令用于对已经保存在内存中的指令代码程序执行反汇编操作,反汇编的结果将被显示到仿真终端的屏幕上,供操作者检查看或修改。

E命令用于向计算机的存储器输入16进制的信息或修改某些存储单元的内容;D命令用于卸出计算机的存储器中的信息并依规定格式显示到仿真终端的屏幕上;R命令用于显示或修改通用寄存器的内容;G命令用于启动内存中的一个指令代码程序,启动后程序连续运行,运行结束后将返回到监控程序的断点,继续运行监控程序;T命令也用于启动内存中的一个指令代码程序,但会使程序处于单指令运行状态,即每发一次T命令只执行用户程序的一个语句,之后就自动回到监控程序的运行状态,使操作者可以跟踪程序的运行过程,随时检查程序的运行结果。

实验的重点内容是学习汇编语言程序设计。

c51汇编程序设计实验

c51汇编程序设计实验

c51汇编程序设计实验C51汇编程序设计实验C51汇编是一种嵌入式系统中常用的汇编语言,广泛应用于单片机的开发和嵌入式系统的设计中。

本文将介绍C51汇编程序设计实验的相关内容,包括实验目的、实验步骤、实验结果及分析等。

一、实验目的C51汇编程序设计实验的目的是通过编写汇编语言程序,实现特定的功能。

通过这个实验,可以加深对C51汇编语言的理解,锻炼编程能力,培养解决问题的能力。

二、实验步骤1. 确定实验要求:首先,需要明确实验的要求和功能。

例如,实验要求设计一个计数器,能够实现从0到9的循环计数。

2. 编写程序:根据实验要求,使用C51汇编语言编写程序。

程序可以包括初始化、计数、显示等功能模块。

3. 调试程序:编写完程序后,需要进行调试,确保程序能够正确运行。

可以使用仿真器或者实际的硬件进行调试。

4. 测试程序:在实验完成后,需要进行程序的测试。

可以输入不同的测试数据,观察程序的输出是否符合预期结果。

5. 分析结果:对于测试结果进行分析,判断程序的运行是否正确。

如果有错误,需要进行错误的定位和修正。

三、实验结果及分析在本次实验中,我们设计了一个计数器程序,能够实现从0到9的循环计数。

经过调试和测试,程序运行正常,实现了预期的功能。

通过这个实验,我们对C51汇编语言的使用有了更深入的了解。

通过编写程序,我们学会了如何使用C51汇编语言实现特定的功能。

同时,我们也锻炼了编程能力和解决问题的能力。

总结:C51汇编程序设计实验是一项很有挑战性的任务,要求我们熟练掌握C51汇编语言的语法和用法。

通过这个实验,我们不仅可以加深对C51汇编语言的理解,还可以培养解决问题的能力。

因此,我们应该认真对待这个实验,认真编写程序,仔细调试和测试,确保程序能够正确运行。

在以后的学习和工作中,C51汇编语言将会是我们经常使用的工具之一。

通过这个实验,我们可以为以后的学习和工作打下良好的基础,提高自己的编程能力和解决问题的能力。

汇编语言程序设计上机实验指导

汇编语言程序设计上机实验指导

汇编语言程序设计上机实验指导一、实验目的1.掌握汇编语言的基本原理和编程技巧。

2.加深对计算机系统结构的理解。

3.培养实验操作和编程能力。

二、实验环境1.所需软件:MARS仿真器。

2.操作系统:任意支持MARS仿真器的操作系统。

三、实验内容1.实验一:编写一个简单的汇编语言程序,实现加法运算。

(1)要求用户输入两个整数。

(2)将两个数相加。

(3)输出两个数的和。

2.实验二:编写一个汇编语言程序,实现乘法运算。

(1)要求用户输入两个整数。

(2)将两个数相乘。

(3)输出两个数的乘积。

3.实验三:编写一个汇编语言程序,实现判断一些数是否为质数。

(1)要求用户输入一个整数。

(2)判断该整数是否为质数。

(3)输出判断结果。

4.实验四:编写一个汇编语言程序,实现打印从1到N之间的所有质数。

(1)要求用户输入一个整数N。

(2)打印出从1到N之间的所有质数。

四、实验步骤1.打开MARS仿真器,创建一个新的程序。

2.按照实验要求,编写汇编语言程序代码。

3.在MARS仿真器中调试和运行程序。

4.检查程序输出结果是否与预期相符。

5.优化程序代码,提高程序的效率和性能。

五、实验注意事项1.确保编写的代码逻辑正确、语法规范。

2.程序设计要遵循模块化设计原则,尽量将程序划分为多个模块,提高程序代码的可读性和维护性。

3. 实验过程中要注意调试程序,排除可能出现的bug。

4.在程序编写过程中,保持良好的编程习惯,合理命名变量和子程序,提高代码的可读性。

六、实验总结1.实验报告中需包含实验的目的、内容、步骤、注意事项等内容。

2.分析并总结实验中遇到的问题和解决方法。

3.对实验过程、结果的合理性进行分析和讨论。

4.提出对实验中存在问题的改进建议。

以上就是一份汇编语言程序设计上机实验指导的内容。

希望这份指导能够帮助学生们更好地进行汇编语言程序设计的实验,提高他们的实践能力和编程水平。

汇编语言——输入输出程序设计实验

汇编语言——输入输出程序设计实验

实验四输入/输出实验(2学时综合性实验)1.实验目的(1) 掌握输入输出程序设计的概念和方法。

(2) 了解PC机外围芯片8259的功能。

(3)学习如何在PC机上编写具有输入输出功能的程序,包括8259芯片的使用方法。

2.实验说明本实验要求自行编写一个显示器输出处理程序,它可以完成内存中保存的一串字符在屏幕显示,因此本实验既属于输入输出实验,也属于中断实验。

3.实验内容编写一个显示器输出处理中断程序(名为NEW09),实现DOS 21H中断的9号功能,在屏幕上输出内存缓冲区BUF中以”$”结束的一串字符串。

要求:缓冲区的偏移地址采用DX寄存器进行传递。

4.实验准备(1) 预习输入输出程序设计的特点和方法。

(2) 仔细阅读参考程序,弄清外围芯片接口初始化的意义和方法。

5.实验步骤(1) 建立源文件,并通过汇编和连接,产生可执行文件。

(2) 运行程序,观察常规字符键及功能键按下时程序的反应,DATAS SEGMENTbuf db'li hongbin','$';此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSmain proc farSTART:mov al,68hmov ah,35hint 21hpush espush bxpush dsmov bx,offset bufmov dx,offset new09mov ax,seg new09mov ds,axMOV AX,DATASMOV DS,AXpop dspop bxpop esstimov al,68hmov ah,25hint 21hmain endpnew09 proc nearpush axpush bxpush dspush dxmov ax,datasmov ds,axsti compare:cmp [bx],'$'je exitmov dl,[bx]mov ah,2int 21hinc bxjmp compare exit:clipop dxpop dspop bxpop axmov ah,4chint 21hiretnew09 endp CODES ENDSEND START。

汇编语言程序设计实验教程

汇编语言程序设计实验教程

汇编语言程序设计实验教程石陆魁刘恩海河北工业大计算机科学与软件学院目录第一章上机过程 (3)1.1编辑源程序 (3)1.2 汇编源程序 (4)1.3连接目标程序 (5)1.4运行程序 (6)第二章DEBUG命令祥解 (7)2.1 DEBUG程序使用 (7)2.2 DEBUG的常用命令 (7)第三章汇编语言程序设计实验 (12)3.1实验一顺序与分支程序设计 (12)3.2 实验二循环与子程序程序设计 (13)3.3 实验三算术运算与代码转换程序设计 (15)3.4 实验四字符串的匹配与替换程序设计 (16)3.5 实验五输入输出程序设计 (17)第四章部分实验参考答案 (19)第一章上机过程1.1编辑源程序汇编语言源程序:用汇编语句编写的解决应用问题的程序。

汇编程序:将汇编语言源程序翻译成机器语言程序的系统。

汇编:将汇编语言程序翻译成机器语言程序的过程。

在编辑汇编语言源程序时,对计算机硬件工作环境无特殊要求,对软件工作环境要求也很简单,只需用建立ASCII码文本文件的软件即可。

(1)编辑软件编辑软件:EDIT、QE、WORD、NOTEPAD等。

当输入、建立和修改源程序时,可任选一种编辑软件,不要用格式控制符,要求编辑完成的文件扩展名一定是.ASM。

(2)汇编程序有汇编ASM.EXE、宏汇编MASM.EXE及TASM等,一般使用宏汇编MASM.EXE,因它比ASM.EXE功能强。

TASM适用于8086/8088~Pentium系列指令系统所编写的汇编语言程序,是比较先进的汇编工具。

(3)连接程序用连接程序LINK.EXE或TLINK.EXE,将MASM.EXE产生的目标代码程序(.OBJ)文件连接成可执行程序.EXE,TLINK比LINK更先进。

(4)辅助工具程序(.EXE)进行汇编语言程序调试和文件格式转换的程序有: 动态调试程序EXE2BIN.EXE 文件格式转换程序CREF.EXE 交叉引用程序编辑、汇编、连接、调试过程如图1.1所示。

汇编语言顺序程序设计实验报告

汇编语言顺序程序设计实验报告

实验名称:汇编语言顺序程序设计实验报告实验目的:通过本次实验,学生能够掌握使用汇编语言编写顺序程序的基本方法,理解汇编语言的基本结构和运行机制。

实验内容:1. 汇编语言基础知识1.1 汇编语言的概念1.2 汇编语言的特点1.3 汇编语言的应用领域2. 汇编语言程序设计2.1 程序设计的基本流程2.2 程序设计的基本步骤2.3 汇编语言程序设计的规范与技巧3. 实验步骤3.1 确定实验题目和要求3.2 分析实验任务,设计程序流程图3.3 编写汇编程序3.4 调试程序,确保程序正确运行3.5 编写实验报告4. 实验报告要求4.1 实验题目4.2 实验目的4.3 实验内容和步骤4.4 程序设计思路和实现方法4.5 实验结果分析和讨论4.6 实验心得体会实验过程:1. 确定实验题目和要求本次实验的题目为“汇编语言顺序程序设计”,要求学生使用汇编语言编写一个顺序程序,实现指定的功能要求。

2. 分析实验任务,设计程序流程图在开始编写汇编程序之前,我们首先要明确实验的功能需求,然后设计程序的流程图,规划程序的整体结构。

3. 编写汇编程序在设计好程序流程后,根据汇编语言的语法规则,编写相应的程序代码,并确保程序的逻辑正确,语法无误。

4. 调试程序,确保程序正确运行编写完成程序后,需要对程序进行调试,逐步检查程序运行过程中的各个环节,发现并修复可能存在的错误。

5. 编写实验报告我们需要撰写本次实验的实验报告,详细记录实验的整体过程,包括程序设计思路、程序实现方法、实验结果分析和讨论,以及实验心得体会。

实验结果分析和讨论:经过本次实验,我们掌握了汇编语言顺序程序设计的基本方法和技巧,了解了汇编语言程序设计的规范和要求。

在实验过程中,我们遇到了一些问题和困难,但通过不懈的努力和团队合作,最终成功完成了实验任务,并取得了令人满意的成绩。

实验心得体会:通过本次实验,我们深刻认识到汇编语言在计算机领域中的重要性和应用价值,同时也意识到汇编语言程序设计的复杂性和技术挑战。

汇编语言程序设计实验篇(emu8086)

汇编语言程序设计实验篇(emu8086)

1.汇编语言程序设计实验篇1.1.汇编系统软件简介Emu8086-Microprocessor Emulator是集源代码编辑器、汇编/反汇编工具以及debug的模拟器。

它能模拟一台"虚拟"的电脑运行程序,拥有独立的“硬件”,避免访问真实硬件。

该软件兼容Intel的下一代处理器,包括PentiumII、Pentium4。

利用该软件提供的调试工具,能够单步跟踪程序,观察程序执行过程中寄存器、标志位、堆栈和内存单元的内容。

1.1.1创建程序 TEMPLATE程序本章与指令相关的实验都是用COM TEMPLATE类型的程序完成的。

打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。

在“choose code template”对话框中,选择“COM template-simple and tiny executable file format, pure machine code.”后,单击按钮。

在如所示的编辑界面中,在“;add your code here”部分输入相应的指令,第一条指令默认的偏移地址为100h。

输入全部指令后,单击按钮,保存相应的程序段。

2.EXE TEMPLATE程序本章与DOS功能调用和汇编源程序相关的实验都是用EXE TEMPLATE程序完成的。

打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。

在“choose code template”对话框中,选择“EXE template-advanced executable file.header: relocation, checksum.”后,单击按钮。

在如图所示的编辑界面中,已经可以给出了源程序的框架,包含数据段、堆栈段和代码段的定义以及必要的功能调用等,在“add your data here”和“;add your code here”部分可以分别输入相应的变量定义和指令。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
保留版权(C) 秦晓梅 EMail:qinxm@ 11
实验二 汇编语言程序设计
例题:编制程序,使S=1+2×3+3 ×4+4 ×5+¨ ¨ ¨+N ×(N+1),直到N ×(N+1)项大于200为止. .MODEL SMALL .STACK 200H .DATA SUM DW 00 .CODE START:MOV AX,@DATA MOV DS,AX MOV DX,0001 MOV BL,2
保留版权(C) 秦晓梅 EMail:qinxm@ 14
实验三 指令系统与寻址方式
一,编写指令时,应注意以下几个问题: 1,注意区别立即寻址方式和直接寻址方 式. 如:MOV AX,300;将数据300送入AX 寄存器 MOV AX,[300];将数据段中的 300单元的内容送入AX寄存器.
保留版权(C) 秦晓梅 EMail:qinxm@
7
实验一 DEBUG程序的使用
一,实验目的 1,学习使用DEBUG程序的各种命令. 2,利用DEBUG学习8086/8088CPU指令系统. 3,了解计算机取指令,执行指令的工作过程. 4,掌握用DEBUG调试用户程序的方法. 二,实验任务 1,掌握DEBUG程序的各种命令,重点是A,U,R,D, T,G,Q命令的使用. 2,用命令A汇编下列命令,判断指令正误并说明原因. (1)ROR AX,8 (2)LEA DI,[AX]
保留版权(C) 秦晓梅 EMail:qinxm@ 3
上机步骤
1.确定源程序的存放目录 建议同学在C(或D)盘建立一个工作子目录,将 汇编语言常用的软件装入工作子目录之下.同学在工 作子目录下,完成编辑,汇编和连接等项操作,生成 的用户文件也存放在工作子目录之下. 2 .建立ASM源程序 在DOS环境下键入:EDIT↙ 这条命令执行EDIT.EXE程序,自动进入编辑状态, 屏幕顶部显示主菜单,底部行显示提示信息,中间的 22行为编辑窗口,用户使用编辑命令逐行输入源程序. 编辑后文件存盘时,要键入"Alt+F"键打开File菜单, 选择其中的Save功能,并通过会话给出文件名(注意: 文件名为.ASM 后缀),才能将编辑后的文件存盘.
保留版权(C) 秦晓梅 EMail:qinxm@ 17
二,正确使用指令系统,关键要清楚每条 指令的功能以及它们规定或限制使用的寄 存器. 1,指令对地址还是对地址中的内容进行 操作,这一点要严格加以区分. 如:LEA BX,MESS;(BX)←MESS 的偏移地址 MOV BX,OFFSET MESS;(BX) ←MESS的偏移地址 MOV BX,MESS;(BX)←字变 量MESS中的内容
保留版权(C) 秦晓梅 EMail:qinxm@ 8
(3)MOV DS,2010 (4)PUSH AL (5)OUT 900,AL 3,用命令U查看8086/8088CPU在开机后执行的第一条指 令. 4,用命令D查看DS:200~22F和F000:200 ~22F两内存 块的内容,用命令E将数字01H分别填入这两个内存块. 比较填入前后的结果,了解可读写内存RAM和只读内存 ROM的区别. 5,用A命令汇编一条INT 1C指令,用命令T单步执行该 指令,比较指令执行前后CS和IP,堆栈指针SP及堆栈内 容变化情况,了解什么是中断向量表,中断向量和中断 子程序,掌握中断指令的执行过程.
汇编语言程序设计
实验教程
保留版权(C) 秦晓梅 EMail:qinxm@
1
汇编语言程序设计的实验环境
硬件环境: 微型计算机(Intel x86系列CPU)一台. 软件环境: Windows 98/2000操作系统 任意一种文本编辑器(EDIT,NOTEPAD等) 汇编程序(MASM.EXE或TASM .EXE) 连接程序(LINK .EXE或TLINK .EXE) 调试程序(DEBUG .EXE或TD .EXE) 本实验建议汇编程序使用TASM .EXE,连接程序使用 TLINK .EXE.
保留版权(C) 秦晓梅 EMail:qinxm@ 12
LOOP1: MOV AL,BL INC BL MUL BL ADD DX,AX CMP AX,00C8H JNA LOOP1 MOV SUM,DX MOV AX,4C00H;***** INT 21H END START 结果保存在DX寄存器中,SUM单元中也有.用R 或D命令看结果,结果为045FH. 1,TD:在*****处设置断点,观察结果. 2,DEBUG:G1B↙,观察结果.
保留版权(C) 秦晓梅 EMail:qinxm@ 15
2,使用 寄存器间接寻址时应注意和寄存 器寻址方式的区别. 如:MOV AX,BX;BX中的内容传送 到AX MOV AX,[BX];数据段中BX所指 示的地址中的内容送AX 3,在双操作数指令中,源操作数和目的 操作数的地址不能同时为存储器地址. 如:M1和M2为两个存储器变量 则ADD M1,M2是错误指令.
保留版权(C) 秦晓梅 EMail:qinxm@
6
5,执行程序 建立了可执行文件后,就可以直接在DOS下运行此 程序. 方法:F1.EXE↙ 程序运行结束后,返回DOS.如果运行结果正确且 程序已把结果直接显示在屏幕上,那么程序运行结束 时结果也就得到了.如果程序不显示结果,则只能通 过调试的方法来纠正程序执行中的错误.
保留版权(C) 秦晓梅 EMail:qinxm@ 4
3,用TASM.EXE汇编源程序产生目标文件 源程序建立后,要使用汇编程序对源程序文件汇编. 汇编过程中,汇编程序对源程序进行两次扫描,检查其 语法错误,如果没有语法错误,则根据程序员的要求生 成目标(OBJ)文件,列表文件(LST)和交叉引用文 件(CRF). 如果源文件有错误,汇编程序会指出错误的行号和 错误的原因.源程序的错误有两种类型:警告Warning (警告不影响程序的运行,但可能会得出错误的结果) 和错误Error(对于错误,汇编程序将无法生成OBJ文 件).如果出现了严重错误,你必须重新进入EDIT编 辑器,根据错误的行号和错误的原因来改正源程序中的 错误,直到汇编没有错为止. 注意:汇编程序只能指出程序的语法错误,而无法 指出程序的逻辑错误. 方法:TASM F1.ASM↙ (其中, F1.ASM为源程序 名)
保留版权(C) 秦晓梅 EMail:qinxm@ 5
4,用TLINK.EXE产生可执行行,必须经过连接程序的连接和定位才能生成可 执行文件. 方法:TLINK F1.OBJ↙ 如果没有错误,LINK就会建立一个F1.EXE文件.如 果OBJ文件有错误,LINK会指出错误的原因.对于无 堆栈警告信息,可以不予理睬,它不影响程序的执行. 如果连接时有其他错误,要检查并修改源程序,重新 汇编,连接,直到正确.
保留版权(C) 秦晓梅 EMail:qinxm@ 10
命令接受状态,CPU将不断地到内存取指令,执行指令, 使用户失去对系统的控制,出现死机.为避免这种情况, 可在用户程序段结束前加上一小段返回DEBUG功能的 程序段,或用断点方式运行,以避免出现死机. 4,8086/8088CPU在开机后执行的第一条指令在内存 FFFF:0H开始处. 5,可读写内存RAM的内容可修改,而只读内存ROM 的内容不能修改,故命令E未能将数字01H填入F000: 200H~22FH的内存中,内存F000:200H~22FH的内 容填写前后保持不变. 6,中断指令INT N是指令系统中较复杂的一条指令, 结合教材中对中断指令的介绍,利用DEBUG来学习, 加强对中断指令的执行过程,中断向量表,中断向量和 中断子程序等内容的理解.
保留版权(C) 秦晓梅 EMail:qinxm@ 18
2,使用指令时,要清楚指令隐含的操作 寄存器. 如在乘法和除法指令中,只指出源操 作数地址,但要清楚目的操作数必须存放 在(AX)或(AL)中(乘法),或 (AX),(DX:AX)中(除法).又 如串指令(MOVS,STOS,LODS, CMPS,SCAS),它们的寻址方式也是 隐含的 ,指令规定操作是在数据段中SI 所指示的地址和附加段中DI所指示的地 址之间进行串处理的;在存取串时,AL 是隐含的存取寄存器.
保留版权(C) 秦晓梅 EMail:qinxm@ 9
三,实验说明 1,在DEBUG下,用户可对所有寄存器,RAM内存随意 查看和修改,但由于用户对DOS操作系统在内存中存放 情况不了解,可能会将存放有操作系统程序的内存内容 破坏,从而可能引起系统运行异常,往往是出现死机现 象.故建议使用DOS分配给用户的内存可用区,其低端 地址是刚进入DEBUG时,用命令R查看到的CS:IP.涉 及到修改内存的命令有A,E,F,M,L等. 2,初学者在使用DEBUG命令修改内存或执行程序时, 由于多种原因,出现死机是较经常的现象,可按RESET 复位按钮,重新启动系统. 3,用连续执行命令G执行程序时,注意给出执行的首地 址,或查看当前CS和IP值是否为要执行程序段的首地址, 并注意查看执行的指令流程中有无返回DEBUG功能的 程序段,如指令INT 20H或断点设置INT3,否则发出命 令后,很容易出现死机.原因是如无程序段使系统返回
保留版权(C) 秦晓梅 EMail:qinxm@ 20
4,用移位指令来倍增或倍减一个值是很 方便的,但要注意对有符号数和无符号数 所使用的指令应是不同的. 如 (AX)=8520H,当(AX)为无符 号数时, (AX)/2可用指令SHR AX,1, 结果为(AX)=4290H. 当(AX)为有符号数时, (AX)/2 应用指令SAR AX,1,结果为(AX) =0C29H.
保留版权(C) 秦晓梅 EMail:qinxm@ 2
问题: 问题:系统中含有MASM.EXE,LINK.EXE和 DEBUG.EXE程序,试说明如何汇编,连接和 调试一个名为F1.ASM的程序.(8分)—— 2001年考研题 答案: 汇编:MASM F1.ASM↙;以形成二进制目标文件 连接:LINK F1.OBJ ↙;以形成可执行文件 调试:DEBUG F1.EXE ↙ 调试命令:显示寄存器的内容r,检查内存d, 修改内存e,检查代码u,修改代码a,运行g
相关文档
最新文档