汇编语言上机实验指导书(不含源代码)

汇编语言上机实验指导书(不含源代码)
汇编语言上机实验指导书(不含源代码)

汇编语言上机实验指导书

一、概述

上机实验总学时为14学时,其中综合性实验为2学时。实验共有6项暂定为7次,每次2学时。

1.实验辅导的主要内容

实验辅导的内容包括每个实验的实验目的;实验内容;对实验的算法及实验方法的必要说明;实验准备;实验步骤;实验报告要求;实验程序及参考框图。开始的实验介绍较细,后面的实验简要介绍。

2.实验的软硬件要求

关于汇编语言程序设计的硬件要求不高,有IBM-PC/XT即可,但应有彩色显示器以便进行图形实验。软件方面应有MASM.EXE5.0版(包括LINK.EXE),与MS-DOS版本配套的DEBUG程序和EDIT.EXE编辑软件(其它编辑软件也可以)。

3.加强实践能力的培养

实验目的不光是为了验证书本理论,更重要的是对实践能力的培养。其中包括:

实际调试程序的能力,例如修改程序参数的能力,查看结果的能力,设置断点调试运行的能力等;

开发汇编语言应用程序的能力,例如应用有关汇编软件的能力,进行系统调用和BIOS功能调用的能力,进行模块程序设计的能力等。

对某一问题用不同的程序实现的能力,例如我们为每个实验提供了参考程序(或程序段),目的是让每个实验者参照样板程序将实验成功地实现,在掌握其方法后,自己改变程序或自己编制程序加以实现。

实验一汇编语言运行环境及方法、简单程序设计(2学时、验证性)

1.实验目的:

(1) 熟悉汇编语言运行环境和方法

(2)了解如何使用汇编语言编制程序

(3) 熟悉DEBUG有关命令的使用方法

(4) 利用DEBUG掌握有关指令的功能

(5) 利用DEBUG运行简单的程序段

2.实验内容

(1)学会输入、编辑汇编语言程序

(2)学会对汇编语言程序进行汇编、连接和运行

(3)进入和退出DEBUG程序

(4)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。对于U命令、N命令、W命令等,也应试一下。

3.实验准备

(1)仔细阅读有关汇编语言环境的内容,事先准备好使用的例子。

(2)准备好源程序清单、设计好调试步骤、测试方法、对运行结果的分析。

(3) 编写一个程序:比较2个字符串所含的字符是否相同。若相同则显示’Match.’,否则显示’No match!’;

(1)仔细阅读有关DEBUG命令的内容,对有关命令,都要事先准备好使用的例子。

4.实验步骤

(1)在DOS提示符下,进入MASM目录。

(2)在MASM目录下启动EDIT编辑程序,输入源程序,并对其进行汇编、连接和运行。

①调用edit输入、编辑源程序并保存在指定的目录中;例:edit abc.asm

②用汇编程序masm对源程序汇编产生目标文件obj。例:masm abc

不断修改错误,直至汇编通过为止。

③用连接程序link产生执行文件exe.例:link abc

④执行程序

可直接从DOS执行程序,即在DOS环境中,输入文件名即可。

(3)详细记录每一步所用的命令,以及查看结果的方法和具体结果。

5.实验报告要求

(1)源程序清单。

(2) 如何启动和退出EDIT程序。

(3) 如何对源程序进行汇编及编辑。

(4)如何启动和退出DEBUG程序。

(5)整理每个DEBUG命令使用的方法,实际示例及执行结果。

(6)启动DEBUG后,要装入某一个.EXE文件,应通过什么方法实现?

实验二循环程序、分支程序程序设计实验(4学时、验证性)

1.实验目的:

(1)掌握循环、分支程序的设计方法

(2)进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。

(3)学会针对不同的问题,选用不同的组织循环的方法。

2.实验内容

(1)编写一个程序S21,将内存中一组有符号的字数组按递增的序列排序,并将其中的二进制数以十六进制的形式显示在屏幕上。

(2)编写一个程序S22,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。

3.实验准备

(1)编写实验内容要求的两个程序。

(2)写出调试以上程序,即修改程序参数,检查结果的操作方法。

(3)熟悉源程序汇编、连接命令的使用方法即要回答的内容。

4.实验步骤

(1)用EDIT或其它编辑软件,编写.ASM源程序,例如S21.ASM及S22.ASM。

(2)对其进行汇编及连接,产生.EXE文件。

(3)对.EXE文件进行调试运行。

a.用DEBUG调试运行,学会修改AL内容的方法。

b.对DSPKEY.EXE键入不同的字符,分别进行调试。

c.在MS-DOS下运行这两个.EXE文件。

5.实验报告要求

(1)画出两个程序的流程图,若要独立编写程序,应列出相应的程序清单。

(2)说明本实验是如何利用DEBUG进行调试的。

实验三子程序设计(2学时、验证性)

实验3.1、本实验的目的在于让同学们掌握同一模块调用的方法。

1.实验目的

(1)掌握主程序与子程序之间的调用关系及调用方法。

(2)掌握子程序调用过程中近程调用与远程调用的区别。

(3)掌握通过堆栈转送参数的方法。

2.实验内容

(1)编写程序S31,将BUF开始的10个单元中的二进制数转换成两位十六进制数的ASCII码,在屏幕上显示出来。要求码型转换通过子程序HEXASC实现,在转换过程中,通过子程序DISP实现显示.

(2)编写一个主程序S32,从键盘接收若干个字符,然后用远调用的方法,调用子程序统计字符串中字符’b’的个数.子程序的参数是字符串的首地址TABLE,字符串长度N及字符”b”.子程序返回字符"b”的个数.参数传送采用堆栈实现.主程序在子程序返回后,显示字符”b”及其个数(设为一位十六进制数)。

3.实验说明

(1)第一个实验程序用子程序的近程调用实现。由于在调用HEXASC子程序时,子程序又调用了DISP子程序,这叫子程序的嵌套调用。实验过程中可以从堆栈的内容看到两个子程序的返回地址值。由于是近调用,地址值只包括返回地址的段内偏移量。在每个子程序的执行中,检查CS值是不变的。

(2)第二个程序是利用远调用的方法调用子程序的。在远调用情况下,主程序与子程序处在不同的逻辑代码段中,可在子程序执行中查看CS值,它与主程序中的CS值是不同的。子程序调用后,堆栈中保留了返回地址的段地址及段内偏移量。

(3)第二个程序中,主程序与子程序之间参数的传送是由堆栈实现的。一段是将参数(此处是串首址TABLE,串的长度N及待统计的字符“b”)顺序压如堆栈,在子程序调用后,通过BP指针对堆栈中的参数访问,并将统计的结果通过堆栈返回。有关该方法的原理此处不再介绍。

4.实验准备

(1)预习子程序设计的基本方法,根据实验内容要求,画出子程序及主程序的流程图。

(2)熟悉键盘键入字符串及用堆栈传送参数的程序段编制方法。

5.实验步骤

(1)编辑、汇编两个源程序,生成相应的可执行文件(。EXE)

(2)用DEBUG的R 命令,T 命令或G命令和D命令检查远程调用及近程调用时堆栈的变化。特别是通过堆栈传送的参数和子程序取出的参数是返回参数的详细过程。

(3)检查程序执行的结果是否正确。

6.实验报告要求

(1)分析远程调用与近程调用的区别,在用DEBUG有关命令观察时,执行过程有何不同。

(2)说明用堆栈传送参数的过程及其具体方法。

(3)分析实验结果及所遇到问题,并说明解决的方法。

实验3.2、本程序的目的在于使读者掌握模块间调用子程序的编写方法.

1.实验目的

(1) 了解多模块程序设计方法。

(2) 学会使用PUBLEC和EXTRN 伪指令解决模块间的符号(如变量名,标号等)通信问题。

2. 实验内容

(1)编写一个子程序,将主程序设定的内存中字符串的小写字母转换成大写字母并显示出来.主程序S33用另一个模块编写。

(2)编写一个子程序,将主程序S34指定的字符所在的地址返回给主程序,字符串与主程序在同一个模块。

3.实验准备

(1)仔细阅读教材中有关模块间通信的方法及模块程序设计的方法。

(2)弄清伪指令PUBLIC及EXTRN的功能及用法。

4.实验步骤

(1)分别对实验1和实验2的主、子模块进行汇编,在连接时,将它们装配成一个以.EXE为扩展名的可执行文件.观察汇编及连接过程中有无错误.

(2)对.EXE 文件进行调试及运行.

(3)将实验1中的原字符串改为由键盘输入,然后由子模块将源串中的小写字母转换为大写字母,并将源串与转换后的两个字串分两行显示出来(设键入字串长度小于80个字符).

5.实验报告要求

(1) 画出相应的程序流程图。

(2)扼要总结多模块程序的特点和编写方法。

实验四输入/输出实验(综合性实验)

1.实验目的

(1) 掌握输入输出程序设计的概念和方法。

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

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

2.实验说明

本实验要求自行编写一个键盘输入处理程序,它可以完成键盘字符的读入并进行屏幕显示,本实验要利用IBM—PC系统的硬件结构,分别使用外围芯片8255及8259。

在本例中,利用8255A的A端做数据输入,对应的端口地址为60H;利用B端口作控制端输入,端口地址为61H。8255A的控制端口地址为63H 。本例的8259中断控制器,其IRQ1端用于键盘中断请求线。键盘通过它可以响CPU发出中断请求。8259的I/O端口地址为21H,可以写入中断屏蔽字,以对8个中断源是否容许中断进行控制。在每次中断结束时,要通过I/O端口地址20H写回一个中断结束命令EOI ,使8259可以清除本次中断。

因此本实验既属于输入输出实验,也属于中断实验。

有关说明将详细地附在参考程序中。

3.实验内容

利用pc机键盘,编写一个读入并显示键盘输入的演示程序。该程序只接受常规字符(包括回车键及退格键),对特殊功能键不进行处理。在程序中设置这些特殊功能键对应0编号即可,凡是检测到键位编号为0值时,均忽略对它们的处理。有键按下时,送出的扫描码的D7位为0时,当键抬起时,扫描的码D7位为1,以判定键是否被按下。

4.实验准备

(1) 预习输入输出程序设计的特点和方法。

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

5.实验步骤

(1) 建立源文件,并通过汇编和连接,产生可执行文件。

(2) 运行程序,观察常规字符键及功能键按下时程序的反应,

6.实验报告要求

(1) 给出程序框图,包括主程序框图、中断处理程序框图。

(2)说明输入输出程序设计的特点。

(3)讨论:将SHIFT键及右SHIFT 键也进行判别处理,它们的扫描码为42及54。为记录SHIFT键的按动状态,可设一个标志单元KBFLAG,右SHIFT按下,KBFLAG的D0位置1,左SHIFT按下,KBFLAG 的D1位置1,放下左右的SHIFT键,KBFLAG的相应恢复为0。当程序工作时,应能显示上档键的字符。

实验五字符处理程序实验

1. 实验目的

(1)熟悉串操作指令的功能与应用

(2)掌握串操作指令的寻址方式及使用方法,编写常用的字符串处理程序。

2.实验内容

(1) 字符串统计。自STRN开始的存储区中,有一个字符串,统计其中含有小写字母的个数,将统计结果以两位十进制数显示在屏幕上。

(2)在给定的字符串中,删除重复的字符,其余的字符向前递补。

3. 实验准备

(1)熟悉字符处理的方法和字符处理程序的设计;

(2)认真预习有关串操作的指令极其寻址方式的特点,能够正确使用串操作指令,并准备好数据。

(3)按正常的方法将删除字符程序编成子程序,规定子程序的入口和出口参数。

4.实验步骤

(1)用1号系统调用从键盘键入一个字符串,然后统计其中小写字母的个数。程序每次执行,都能得到不同的结果。

(2)编写一个在同一个字符串中删除字符,并将其余字符向前递补的程序。

5.实验报告要求

(1)对照参考程序,画出程序流程图。

(2)总结字符串处理的编程方法,提出改进和完善此类程序的设计方案。

实验六BIOS和DOS中断调用应用程序设计

1. 实验目的

(1)了解DOS、BIOS调用的基本功能、调用参数、返回参数。以及数据定义掌握中断通信程序的设计方法。

(2)掌握如何利用扫描码进行功能控制。

2. 实验内容

编写一个可以进行光标左右移动和插入字符的简单字处理程序。

3.实验准备

(1) 复习相关内容

(2)了解键盘的扫描码、ASCII码及其显示字符(如果存在可显示字符形式)之间的对应关系。

4. 实验步骤

(1) 建立源文件,汇编、连接产生可执行文件。

(2) 运行程序,使得可以输入字符和光标左右移动及字符的插入。

5. 实验报告要求

(1) 由参考程序,画出简单字处理程序框图。

(2) 讨论如何实现光标的上下移动和字符的删除。

计算机组成原理实验1-汇编语言实验

微处理器与接口技术 实验指导

实验一监控程序与汇编语言程序设计实验 一、实验要求 1、实验之前认真预习,明确实验的目的和具体实验内容,设计好主要的待实验的程序,做好实验之前的必要准备。 2、想好实验的操作步骤,明确通过实验到底可以学习哪些知识,想一想怎么样有意识地提高教学实验的真正效果。 3、在教学实验过程中,要爱护教学实验设备,认真记录和仔细分析遇到的现象与问题,找出解决问题的办法,有意识地提高自己创新思维能力。 4、实验之后认真写出实验报告,重点在于预习时准备的内容,实验数据,实验过程、遇到的现象和解决问题的办法,自己的收获体会,对改进教学实验安排的建议等。善于总结和发现问题,写好实验报告是培养实际工作能力非常重要的一个环节,应给以足够的重视。 二、实验目的 【1】学习和了解TEC-XP16教学实验系统监控命令的用法; 【2】学习和了解TEC-XP16教学实验系统的指令系统;

【3】学习简单的TEC-XP16教学实验系统汇编程序设计。 三、实验注意事项 (一)实验箱检查 【1】连接电源线和通讯线前TEC-XP16实验系统的电源开关一定要处于断开状态,否则可能会对TEC-XP16实验系统上的芯片和PC机的串口造成损害。 【2】五位控制开关的功能示意图如下: 【3】几种常用的工作方式【开关拨到上方表示为1,拨到下方为0】 (二)软件操作注意事项 【1】用户在选择串口时,选定的是PC机的串口1或串口2,而不是TEC-XP16实验系统上的串口。即选定的是用户实验时通讯线接的PC机的端口; 【2】如果在运行到第五步时没有出现应该出现的界面,用户需要检查是不是打开了两个软件界面,若是,关掉其中一个再试; 【3】有时若TEC-XP16实验系统不通讯,也可以重新启动软件或是重新启动PC再试; 【4】在打开该应用软件时,其它的同样会用到该串口的应用软件要先关掉。

汇编语言学习知识程序设计实验

目录 目录 (1) 实验一利用DEBUG熟悉常用指令的使用 (2) 一、实验目的 (2) 二、示例 (2) 三、实验题 (2) 实验二汇编程序和连接程序的使用 (6) 一、实验目的。 (6) 二、示例。 (6) 三、实验题。 (8) 实验三顺序结构程序设计 (11) 一、实验目的 (11) 二、示例 (11) 三、实验题 (12) 四、实验报告 (15) 实验四循环结构程序设计 (16) 一、实验目的 (16) 二、示例 (16) 三、实验题 (18) 实验五分支结构程序设计 (21) 一、实验目的 (21) 二、示例 (21) 三、实验题 (22) 实验六子程序设计 (29) 一、实验目的 (29) 二、实验题 (29)

实验一利用DEBUG熟悉常用指令的使用 一、实验目的 熟悉指令系统,掌握常用指令的用法;通过实验加深对各种寻址方式的理解;能熟练使用DEBUG中的命令对指令进行反汇编,观察并了解机器代码。 二、示例 请分别用一条汇编语言指令完成如下功能:(过程略)。 1.用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。 ADD AL,[BX][SI] 2.用位移量为0520H的直接寻址方式把存储器中的一个字与3412H相加,并把结果送回该存储单元。 ADD WORF PTR [0520H],3412H 三、实验题 1.调试、验证下列指令的结果,已知(DS)=2000H,(BX)=0100H,(SI)=0002H,(BP)=0200H,(SS)=2300H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,(21203)=65H,(23204)=88H,说明各指令执行完后AX寄存器的内容。要求输入指令,相应存储单元的内容要事先设置,单步 P执行,观察执行结果。 (设置存储器的值)

山东大学汇编语言上机实验——实验二

程序的基本结构练习 一:循环程序设计 一、实验目的 (1) 加深对循环结构的理解; (2) 掌握循环程序的设计方法; (3) 熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。 二、实验内容 1.已知以BUF为首地址的字存储区中存放着8个有符号二进制数,是编写程序将其中大于等于0的数依次送BUF1为首地址的字存储区中,小于0的数依次送以BUF2为首地址的字存储区中。同时将大于等于0的数的个数送A字变量,将小于0数的个数送B字变量。 2.设STR字符串是以0结尾。试编写一个把字符串中的所有大写字母改为小写字母的程序并将转换后的字符串显示输出。 3.试编程从自然数1开始累加,直到累加和大于5050为止,统计被累加的自然数的个数,并把统计的个数送入COUNT单元,累加和送入TOTAL单元。三、算法描述流程图 实验内容1、2、3的流程图分别为图1、图2、图3。

四、实验步骤 1.已知以BUF为首地址的字存储区中存放着8个有符号二进制数,是编写程序将其中大于等于0的数依次送BUF1为首地址的字存储区中,小于0的数依次送以BUF2为首地址的字存储区中。同时将大于等于0的数的个数送A字变量,将小于0数的个数送B字变量。1)输入源程序: DA TA SEGMENT BUF DW 23,123,-12,-210,45,0,90,-453 BUF1 DW 8 DUP(0) BUF2 DW 8 DUP(0) A DW B DW DA TA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DA TA START: MOV AX, DATA MOV DS, AX LEA BX, BUF LEA SI, BUF1 LEA DI, BUF2 MOV A,0 MOV B,0 MOV CX,8 L0: MOV AX,[BX] CMP AX,0 JGE L1 MOV [DI],AX ADD DI,2 INC B JMP NEXT L1: MOV [SI],AX ADD SI,2 INC A NEXT: ADD BX,2 LOOP L0 MOV AH, 4CH INT 21H CODE ENDS END START 2)运行程序。 3)检查结果无错误后将结果记录下来。 2.设STR字符串是以0结尾。试编写一个把字符串中的所有大写字母改为小写字母的程序并将转换后的字符串显示输出。 1)输入源程序: DA TA SEGMENT STR DB 'HOW arE YoU!',0 DA TA ENDS

汇编语言上机实验十2015李中

实验十输入/输出与中断实验 一、实验目的 1.掌握输入/输出与中断指令的使用方法; 2.掌握中断向量表的结构及使用方法; 3.掌握INT 指令的使用方法; 4.掌握BIOS 中断功能调用的使用方法; 5.掌握DOS 功能调用的使用方法。 二、实验要求 1.了解INT 指令与CALL 指令的不同点; 2.会用DEBUG 观察中断向量表; 3.会用DEBUG 的T 和P 命令执行INT 指令; 4.会用INT 10H、INT 16H 编制程序; 5.会用DOS 功能调用的02H、09H 功能编制程序 三、实验题目 1. 编制程序。利用IBM PC BIOS 功能调用的INT 16H 功能,编制一个从键盘上接收若干个字符串的程序。 2.编制程序。利用IBM PC BIOS 功能调用的INT 10H 功能,编制一个在屏幕上指定位置显示若干个字符串的程序。 四、实验思路 1调用INT16号功能实现输入字符,并且用int10号功能实现显示字符,并且将字符保存到data开始的内存单元中,如果不是ctrl+c的话循环输入输出,是的话结束程序.

2用INT10中03功能读出当前光标位置,然后保存当前的光标位置,只有用INT10中的02号功能设置要显示字符的位置,调用INT10的0E号功能循环显示字符,遇到结尾符号0的时候结束输出,然后恢复光标位置,调用INT10的1号功能恢复光标类型,用INT10的2号功能设置光标位置,使光标位置回到起点,结束程序. PUSH DX;保存当前光标位置 PUSH CX;保存光标类型 MOV DX,1020H;设置光标位置 MOV AH,02H INT 10H;设置光标位置 五、实验程序 1 DSEG SEGMENT;数据段开始 DATA DB 80 DUP (0);存储数据的单元 DSEG ENDS ;数据段结束 CSEG SEGMENT;代码段开始 ASSUME CS:CSEG,DS:DSEG;段假设 START: MOV AX,DSEG MOV DS,AX;段地址初始化

汇编语言上机指导

实验一DEBUG常用命令及8086指令使用 实验目的: 通过实验掌握下列知识: 1、8086指令: MOV,ADD,ADC,SUB,SBB,DAA,XCHG 2、DEBUG命令: A,D,E,F,H,R,T,U。 3、ASCII码及用16进制数表示二进制码的方法。 4、8086寄存器: AX,BX,CX,DX,F,IP。 内容及步骤: 一、DEBUG 命令使用: 1、打 DEBUG 进入 DEBUG 控制,显示提示符 '_ '。 2、用命令 F100 10F 'A' 将'A'的ASCII码填入内存。 3、用命令 D100 10F 观察内存中的16进制码及屏幕右边的ASCII字符。 4、用命令 F110 11F 41 重复上二项实验,观察结果并比较。 5、用命令 E100 30 31 32 …… 3F将30H-3FH写入地址为100开始的内存 单元中,再用D命令观察结果,看键入的16进制数是什么字符的ASCII码? 6、用H命令检查下列各组16进制数加减结果并和你的手算结果比较: (1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758,347FH 7、用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF 和AF的内容。 8、用R命令将AX,BX内容改写为1050H及23A8H。 二、8086常用指令练习 1、传送指令 1)用A命令在内存100H处键入下列内容: MOV AX,1234 MOV BX,5678 XCHG AX,BX MOV AH,35 MOV AL,48

MOV DX,75AB XCHG AX,DX 2)用U命令检查键入的程序并记录,特别注意左边的机器码。 3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。并注意标志位有无变化。 2、加减法指令: 1)用A命令在内存100H处键入下列内容: MOV AH,34 MOV AL,22 ADD AL,AH SUB AL,78 MOV CX,1284 MOV DX,5678 ADD CX,DX SUB CX,AX SUB CX,CX 2)用U命令检查键入的程序及对应的机器码。 3)用T命令逐条运行这些指令,检查并记录有关寄存器及ZF情况。 3、带进位加减法: 1)用A命令在内存200H处键入下列内容,并用U命令检查: MOV AH,12 MOV AL,84 MOV CH,56 MOV CL,78 ADD AL,CL ADC AH,CH MOV DH,A7 MOV DL,58 SUB DL,7F

实验一熟悉汇编语言上机环境.pdf

实验一熟悉汇编语言上机环境 一、实验目的 熟悉在微机上建立、汇编、连接、调试和运行汇编语言程序的全过程。 二、实验要求 1.仔细阅读本实验教程的第一章和第二章; 2.学会使用EDIT建立汇编语言源程序文件; 3.学会使用MASM将汇编语言源程序编译为目标程序的两种方法; 4.学会使用LINK将目标程序连接为可执行程序的两种方法; 5.学会使用DEBUG中的U、D、G命令。 三、实验举例 【例3.1】 编辑、汇编、连接、执行下列程序,观察实验结果。 【程序功能】该程序的功能是利用BIOS功能调用,从键盘上接收若干个字符,并将它们的ASCII码与键盘扫描码以十六进制的形式显示出来,当按下+键时,停止程序的执行。 【步骤一】 用EDIT编辑源程序,并以EXAM1.ASM为文件名存入磁盘。 程序清单如下: SSEG SEGMENT STACK STK DB 80H DUP(?) SSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,SS:SSEG HTOA PROC NEAR ;该子程序的功能是将AL内容转换为ASCII码 AND AL,0FH CMP AL,10 JC HTOA1 ADD AL,07 HTOA1: ADD AL,30H RET HTOA ENDP BHTOA PROC NEAR ;该子程序的功能是将AL内容转换为ASCII码 PUSH CX MOV CH,AL MOV CL,04 SHR AL,CL CALL HTOA MOV AH,AL MOV AL,CH CALL HTOA POP CX RET BHTOA ENDP DISASC PROCN EAR ;该子程序的功能是在光标处显示AL中的字符 PUSH AX

汇编语言上机实验指导书(不含源代码)

汇编语言上机实验指导书 一、概述 上机实验总学时为14学时,其中综合性实验为2学时。实验共有6项暂定为7次,每次2学时。 1.实验辅导的主要内容 实验辅导的内容包括每个实验的实验目的;实验内容;对实验的算法及实验方法的必要说明;实验准备;实验步骤;实验报告要求;实验程序及参考框图。开始的实验介绍较细,后面的实验简要介绍。 2.实验的软硬件要求 关于汇编语言程序设计的硬件要求不高,有IBM-PC/XT即可,但应有彩色显示器以便进行图形实验。软件方面应有MASM.EXE5.0版(包括LINK.EXE),与MS-DOS版本配套的DEBUG程序和EDIT.EXE编辑软件(其它编辑软件也可以)。 3.加强实践能力的培养 实验目的不光是为了验证书本理论,更重要的是对实践能力的培养。其中包括: 实际调试程序的能力,例如修改程序参数的能力,查看结果的能力,设置断点调试运行的能力等; 开发汇编语言应用程序的能力,例如应用有关汇编软件的能力,进行系统调用和BIOS功能调用的能力,进行模块程序设计的能力等。 对某一问题用不同的程序实现的能力,例如我们为每个实验提供了参考程序(或程序段),目的是让每个实验者参照样板程序将实验成功地实现,在掌握其方法后,自己改变程序或自己编制程序加以实现。 实验一汇编语言运行环境及方法、简单程序设计(2学时、验证性) 1.实验目的: (1) 熟悉汇编语言运行环境和方法 (2)了解如何使用汇编语言编制程序 (3) 熟悉DEBUG有关命令的使用方法 (4) 利用DEBUG掌握有关指令的功能 (5) 利用DEBUG运行简单的程序段 2.实验内容 (1)学会输入、编辑汇编语言程序 (2)学会对汇编语言程序进行汇编、连接和运行 (3)进入和退出DEBUG程序 (4)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。对于U命令、N命令、W命令等,也应试一下。 3.实验准备 (1)仔细阅读有关汇编语言环境的内容,事先准备好使用的例子。 (2)准备好源程序清单、设计好调试步骤、测试方法、对运行结果的分析。 (3) 编写一个程序:比较2个字符串所含的字符是否相同。若相同则显示’Match.’,否则显示’No match!’; (1)仔细阅读有关DEBUG命令的内容,对有关命令,都要事先准备好使用的例子。 4.实验步骤 (1)在DOS提示符下,进入MASM目录。 (2)在MASM目录下启动EDIT编辑程序,输入源程序,并对其进行汇编、连接和运行。 ①调用edit输入、编辑源程序并保存在指定的目录中;例:edit abc.asm ②用汇编程序masm对源程序汇编产生目标文件obj。例:masm abc 不断修改错误,直至汇编通过为止。 ③用连接程序link产生执行文件exe.例:link abc

汇编语言上机实验汇总

汇编语言程序设计的实验环境及实验步骤 知识提要: 1、汇编语言源程序编写好以后, (1) 编辑源程序(生成 .ASM (2) 汇编源程序(.ASM → .OBJ (3) 连接目标程序(.OBJ → .EXE (4) 调试可执行程序(使用调试程序Debug 调试生成的.EXE 文件) (5) 运行程序输出结果。 2、 Windows 环境下的汇编语言集成编程环境的使用 实验一 汇编语言上机实验(一) 一、实验要求和目的 1、掌握汇编语言程序设计的基本方法和技能; 2、熟练掌握使用全屏幕编辑程序EDIT 编辑汇编语言源程序; 3、熟练掌握宏汇编程序MASM 的使用; 4、熟练掌握连接程序LINK 的使用。 二、软硬件环境 1、硬件环境:微机CPU 486以上,500MB 以上硬盘,32M 以上内存; 2、软件环境:装有MASM 、DEBUG 、LINK 等应用程序。 三、实验内容与步骤 1、实验内容 编写程序,判断一个年份是否是闰年。 2、实验步骤 汇编语言程序设计上机过程如图1.1所示。 图1.1 汇编语言程序上机过程 (一)用编辑程序EDIT 建立汇编语言源程序文件(ASM 文件)

建议源程序存放的目录名为MASM中,MASM子目录在D盘的根目录下。 可以在DOS模式下用编辑程序EDIT.EXE建立汇编语言源程序文件ABC.ASM,注意文件名的扩展名必须是.ASM。也可以在Windows 2000或者在Windows XP环境下鼠标单击“开始”→“运行”,在“运行”中输入“CMD”进入DOS模式,运行EDIT软件,例如:C:\documents and settings\administrator>cd\ *进入C盘根目录 C:\>d: *进入D盘 D:\>md masm *在D盘创建MASM文件夹D:\>cd masm *进入MASM文件夹 D:\masm>edit run.asm *建立run源文件 进入EDIT的程序编辑画面时,编写程序,判断一个年份是否是闰年的汇编语言源程序,输入汇编语言源程序如下: DATA SEGMENT INFON DB 0DH,0AH,'Please input a year: $' Y DB 0DH,0AH,'This is a leap year! $' N DB 0DH,0AH,'This is not a leap year! $' W DW 0 BUF DB 8 DB ? DB 8 DUP(?) DATA ENDS STACK SEGMENT 'stack' DB 200 DUP(0) STACK ENDS CODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODE START: MOV AX,DATA MOV DS,AX LEA DX,INFON MOV AH,9 INT 21H LEA DX,BUF MOV AH,10 INT 21H MOV CL, [BUF+1] LEA DI,BUF+2 CALL DATACATE CALL IFYEARS JC A1 LEA DX,N MOV AH,9 INT 21H JMP EXIT A1: LEA DX,Y MOV AH,9 INT 21H EXIT: MOV AH,4CH INT 21H DATACATE PROC NEAR

余敦辉《汇编语言》实验指导书实验1-实验3

《汇编语言》实验指导书

目录 实验一Debug命令的使用 (3) 实验二基本汇编指令的使用 (9) 实验三汇编语言程序的调试与运行 (13) 实验四系统功能调用程序的调试与运行………………错误!未定义书签。 实验五分支程序设计……………………………………错误!未定义书签。 实验六循环程序设计……………………………………错误!未定义书签。 实验七子程序设计………………………………………错误!未定义书签。 实验八高级汇编语言程序设计…………………………错误!未定义书签。 实验九I/O程序设计……………………………………错误!未定义书签。 实验十中断程序设计……………………………………错误!未定义书签。 实验十一综合程序设计 (38)

实验一Debug命令的使用 一、知识点 1、DEBUG简介 DEBUG.EXE是DOS提供的用于调试可执行程序的一个工具软件。在汇编语言程序调试中很常用。 DEBUG的提示符是“-”,所有DEBUG调试命令军在此提示符下输入。 DEBUG命令都是一个字母,后跟一个或多个参数,也可使用默认参数。 DEBUG命令的使用注意问题: (1)字母不分大小写 (2)只使用十六进制数,但没有带后缀字母“H” (3)命令如果不符合DEBUG的规则,则将以“error”提示,并以“^”指示出错位置。 (4)每个命令只有按下回车键后才有效,可以用Ctrl+Break终止命令的执行。 2、Debug的调入和退出 以WIN7环境为例,点击“开始/运行…”,在“运行”对话框中输入命令:cmd,然后点击“确定”,进入DOS命令行状态: C:\Documents and Settings\lfy> 然后输入命令: >Debug 进入Debug调试状态,出现Debug命令提示府“-”,在此提示符下可运行所需要的Debug 命令了。 退出Debug的命令:Q 3、Debug常用命令 (1)汇编命令A,格式为: - A [地址] 功能:从指定地址开始允许输入汇编指令,并将该指令汇编成机器指令代码从指定地址开始存放。若不指定地址,则系统从默认的地址开始存放。按回车键退出汇编状态 应用:用于调试一条指令或几条指令组成的一个程序段。

汇编语言上机实验

汇编语言程序设计的实验环境及实验步骤 知识提要: 1、汇编语言源程序编写好以后,必须经过下列几个步骤才能在机器上运行: (1) 编辑源程序(生成.ASM文件) (2) 汇编源程序(.ASM → .OBJ) (3) 连接目标程序(.OBJ → .EXE ) (4) 调试可执行程序(使用调试程序Debug调试生成的.EXE文件) (5) 运行程序输出结果。 2、Windows环境下的汇编语言集成编程环境的使用 实验一汇编语言上机实验(一) 一、实验要求和目的 1、掌握汇编语言程序设计的基本方法和技能; 2、熟练掌握使用全屏幕编辑程序EDIT编辑汇编语言源程序; 3、熟练掌握宏汇编程序MASM的使用; 4、熟练掌握连接程序LINK的使用。 二、软硬件环境 1、硬件环境:微机CPU 486以上,500MB以上硬盘,32M以上内存; 2、软件环境:装有MASM、DEBUG、LINK等应用程序。 三、实验内容与步骤 1、实验内容 编写程序,判断一个年份是否是闰年。 2、实验步骤 汇编语言程序设计上机过程如图1.1所示。 图1.1 汇编语言程序上机过程 (一)用编辑程序EDIT建立汇编语言源程序文件(ASM文件)

建议源程序存放的目录名为MASM中,MASM子目录在D盘的根目录下。 可以在DOS模式下用编辑程序EDIT.EXE建立汇编语言源程序文件ABC.ASM,注意文件名的扩展名必须是.ASM。也可以在Windows 2000或者在Windows XP环境下鼠标单击“开始”→“运行”,在“运行”中输入“CMD”进入DOS模式,运行EDIT软件,例如:C:\documents and settings\administrator>cd\ *进入C盘根目录 C:\>d: *进入D盘 D:\>md masm *在D盘创建MASM文件夹D:\>cd masm *进入MASM文件夹 D:\masm>edit run.asm *建立run源文件 进入EDIT的程序编辑画面时,编写程序,判断一个年份是否是闰年的汇编语言源程序,输入汇编语言源程序如下: DATA SEGMENT INFON DB 0DH,0AH,'Please input a year: $' Y DB 0DH,0AH,'This is a leap year! $' N DB 0DH,0AH,'This is not a leap year! $' W DW 0 BUF DB 8 DB ? DB 8 DUP(?) DATA ENDS STACK SEGMENT 'stack' DB 200 DUP(0) STACK ENDS CODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODE START: MOV AX,DATA MOV DS,AX LEA DX,INFON MOV AH,9 INT 21H LEA DX,BUF MOV AH,10 INT 21H MOV CL, [BUF+1] LEA DI,BUF+2 CALL DATACATE CALL IFYEARS JC A1 LEA DX,N MOV AH,9 INT 21H JMP EXIT A1: LEA DX,Y MOV AH,9 INT 21H EXIT: MOV AH,4CH INT 21H DATACATE PROC NEAR

汇编语言实验报告

汇编语言实验报告 专业: 班级: 姓名: 学号: 2011年12月14日

目录 实验1 利用DEBUG调试汇编语言程序段 (3) 实验2 初级程序的编写与调试实验(一) (11) 实验3 初级程序的编写与调试实验(二) (20) 实验4 汇编语言程序上机过程 (28) 实验5 分支程序实验 (33) 实验6 循环程序实验 (40) 实验7 子程序实验 (45)

实验1 利用DEBUG调试汇编语言程序段一.实验目的 1.熟悉DEBUG有关命令的使用方法; 2.利用DEBUG掌握有关指令的功能; 3.利用DEBUG运行简单的程序段。 二.实验内容 1.进入和退出DEBUG程序; 1)开始—运行,输入cmd,点确定进入命令窗口 2)在命令窗口中输入dubug进入debug程序 3)进入debug窗口后,输入q命令退出debug 2.学会DEBUG中的 1)D命令(显示内存数据D 段地址:偏移地址) 例1:-D100 ;显示DS段, 0100开始的128个节内容

说明: 指定要显示其内容的内存区域的起始和结束地址,或起始地址和长度。 ① D SEGREG[起始地址] [L 长度] ;显示SEGREG段中(缺省内默认为DS), 以[起始地址] (缺省内为当前的偏移地址),开始的[L 长度] (缺省内默认为128)个字节的内容. ② D SEGREG[段地址:偏移地址] ;显示SEGREG段中(缺省内默认为DS), [段地址:偏移地址] 开始的[L 长度] (缺省内默认为128)个字节内容 -D ;默认段寄存器为DS,当前偏移地址(刚进入debug程序偏移地址为0100H) -D DS:100 ;显示DS段, 0100H开始的128个字节内容 -D CS:200 ;显示CS段, 0200H开始的128个字节内容 -D 200:100 ;显示DS段, 0200:0100H开始的128个字节内容 -D 200 ;显示DS段, 0200H开始的128个字节内容

汇编语言实验指导书.

汇编语言实验指导书纪平张雷编写 安徽工业大学计算机学院 二00四年三月 目录 实验一DEBUG的启动及其基本命令的使用 (2 实验二内存操作数及寻址方法 (6 实验三汇编语言程序的调试与运行 (8 实验四查表程序设计 (10 实验五系统功能调用 (12 实验六循环程序设计 (13 实验七分支程序设计 (15 实验八子程序设计 (18 实验九综合程序设计 (20 附录实验报告 (21 实验一DEBUG的启动及其基本命令的使用一.实验目的: 掌握DEBUG 的基本命令及其功能 二.实验内容:

DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段。 1、DEBUG程序的启动 在DOS提示符下,可键入命令: C>DEBUG[d:][path][文件名][ 参数1][参数2] 其中文件名是被调试文件的名称,它须是执行文件(EXE,两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入所需 的DEBUG命令。 在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入内存。用户可以通过DEBUG的命令对指定文件进行修改、显示和执行。如果没有文件名,则是以当前内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然后再用DEBUG的命令进行修改、显示和执行。 2、DEBUG的主要命令 (1汇编命令A,格式为: -A[地址] 该命令从指定地址开始允许输入汇编语句,把它们汇编成机 器代码相继存放在从指定地址开始的存储器中。 (2反汇编命令U,有两种格式: 1-U[地址] 该命令从指定地址开始,反汇编32个字节,若地址省略,则从上 一个U命令的最后一条指令的下一个单元开始显示32个字节。

汇编语言上机试验指导

作实验2 【1】.有空加作实验【4】(1). 实验2 算术及位串处理程序 【1】.在数据段预先存放16个十六进制数的ASCII码,把BX中的四位十六进制数,从左到右用查表的方法找到对应数位的ASCII码,并取出显示出来。 要求见书: 参考程序: data segment asc db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h db 41h,42h,43h,44h,45h,46h data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov cl,4 rol bx,cl mov si,bx and si,0fh mov dl,[asc+si] mov ah,2 int 21h rol bx,cl mov si,bx and si,0fh mov dl,[asc+si] mov ah,2 int 21h mov ah,4ch int 21h code ends end start 【2】用字符串处理指令编制程序,处理字符串的比较和查找,显示结果。 要求:(1) 字符串的比较程序中,一个字符串在数据段定义,另一个字符串在程序执行时从键盘输入,必须定义键盘缓冲区。并指出不相等的位置。 参考书上例3.51,题目改为MESS2 定义为从键盘输入缓冲区,键盘输入缓冲区定义: mess2 DB 9,?,9 DUP(?) 例3.51 在数据段中有一个长度为19的字符串MESS1,在附加段中有一个长度为19的字符串MESS2,比较它们是否相等。若相等显示‘Y’,否则显示‘N’。编制程序如下所示。

汇编上机实验

从键盘接收两个不大于5 的十进制数字,并以十进制数据形式显示其和。 编程提示: 该程序中要求的均为一位数据的输入输出,暂时不考虑多位数据,请输入0~5 之间的数据,显示的结果为0~9。请不要输入两个5,以免出现不能直接输出的情况。 data segment data ends code segment assume cs:code,ds:data start:mov ax,data mov ds,ax mov ah,01h int 21h mov bl,al sub bl,30h ;将输入的数字变成16进制数后放在bl中 ;为了实现bl与cl的16进制数相加 mov dl,10 ;换行(10表示换行) mov ah,02h int 21h ;mov dl,13 ;回车(13表示回车,为的是让换行之后光标移到行首) ;mov ah,02h ;int 21h mov ah,01h int 21h mov cl,al sub cl,30h;将输入的数字变成16进制数后放在cl中 mov dl,10 mov ah,02h int 21h ;mov dl,13 ;mov ah,02h ;int 21h add cl,bl add cl,30h mov dl,cl mov ah,02h int 21h mov ax,4c00h int 21h code ends end start

1、试编写程序,完成下面公式的计算。 A ←(X-Y+24)/ Z的商, B ←(X-Y+24)/ Z的余数 其中,变量X和Y是32位有符号数,变量A、B、Z是16位有符号数。 DATA SEGMENT X DD 12345H ORG 10H Y DD 12345H ORG 20H Z DW 12H ORG 30H A DW ? B DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,WORD PTR X ;将X低四位放入AX中 MOV DX,WORD PTR X+2 ;将X高四位放入DX中 SUB AX,WORD PTR Y ;X和Y的低四位相减(不考虑借位) SBB DX,WORD PTR Y+2 ;X和Y的高四位相减(考虑借位) ADD AX,24 ADC DX,0 ;只是将进位加入到DX中 IDIV Z MOV A,AX ;存放商到A MOV B,DX ;存放余数到B MOV AX,4C00H INT 21H CODE ENDS END START 2 、试将字节数据B1 拆分成两个半字节数据,分别存放于其后两个单元X 和Y 中。 编程提示: 数据段定义应包含B1、X、Y 三个变量,其中B1 变量自定义具体的数值,X、Y 变量的数值由程序赋值,分别是B1 的高低半个字节。该程序中需要使用逻辑操作完成半字节数据的拆分。 DATA SEGMENT B1 DB 12H X DB ? Y DB ? DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX

汇编语言上机实验一2015李中

实验报告 课程:汇编语言程序设计 专业班级:计算机科学与技术 学号: 姓名:李中 实验一、熟悉汇编语言上机环境 一、实验目的 熟悉在微机上建立、汇编、链接、调试和运行汇编语言程序的全过程 二、实验要求 1、学会使用EDIT建立汇编语言源程序文件 2、学会使用MASM将汇编语言源程序编译为目标程序的方法 3、学会使用LINK将目标程序链接为可执行程序的方法; 4、学会在DOS环境下和在DEBUG中运行程序 三、实验内容 1、编辑、汇编、链接执行下列程序。观察程序的执行结果。该程序的功能是将字符串 “HELLO WORLD”在屏幕上显示出来、 参考程序如下: DSEG SEGMENT DATA DB "HELLO WORLD!$"

DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START: MOV AX,DSEG MOV DS,AX LEA DX,DATA MOV AH,09H INT 21H MOV AH,4CH INT 21H CSEG ENDS END START 编辑: 汇编:

链接:

测试: 2、编辑、汇编、链接、执行下列程序。观察程序的执行结果。该程序的功能是:计算 放在DATA1和DATA2单元中的两个数据之和,结果在屏幕上显示出来。 参考程序如下: DSEG SEGMENT DATA1 DB 35H DATA2 DB 29H DSEG ENDS

CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START: MOV AX,DSEG MOV DS,AX MOV AL,DATA1 MOV AL,DATA2 PUSH AX MOV CL,4 SHR AL,CL ADD AL,30H CMP AL,39H JBE OK1 ADD AL,07H OK1: MOV DL,AL MOV AH,02H INT 21H POP AX AND AL,0FH ADD AL,30H CMP AL,39H JBE OK2 ADD AL,07H OK2: MOV DL,AL MOV AH,02H INT 21H MOV AH,4CH INT 21H CSEG ENDS END START 编辑:

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

实验一汇编语言上机过程 一、上机前的软件准备: MS-DOS操作系统(如:MSDOS6.22 , MSDOS7.0 等) 文本编辑器(如:https://www.360docs.net/doc/1f14643667.html, , TURBO.EXE , TC.EXE , C.EXE 等) 汇编程序(如:MASM.EXE , ASM.EXE,TASM.EXE 等) 连接程序(如:LINK.EXE 等) 调试程序(如:DEBUG.EXE 等) 二、汇编程序建立过程: 通过 a.建立汇编源程序────→ b.编译为目标文件──┬─→d.连接为可执行文件 ↑↓ ↓ │ c.不通过,重新修改(语句错误)││ ├──────────────────────┘│ ↑ f.不正确,用调试工具调试,重新修改(逻辑错误)↓ └────────────────────────────←e运行 ↓正确 g.完成 三、现在对(二)的每一个标有字母的过程(PROCEDURE)进行详细说明 PROCEDURE a:建立汇编源程序(即:建立文件名.asm) 这个过程就相当于我们在纸上编写源程序代码一样,只不过是将纸变为了计算机,这个过程也称源代码录入。将源程序代码录入计算机的方法很多,下面将介绍具体方法。 1.通过MD-DOS自带的EDIT.EXE文本编辑器进行输入,在DOS提示符下键入:EDIT回车,这时如果你系统内可调用时,EDIT的操作画面便会出现在屏幕上,你就可在提示下进行录入了,当录入完毕后,选择存盘并给你输入的文件起一个文件名,形式:filename.asm ;(其中filename为你起的文件名,由1-8个字符组成),asm 是为汇编程序识别而必须加上去的,不可更改。存盘后在DOS下可用DOS命令DIR来查看,如果看到了所存的文件存在,就可以进行进程b。 2.如果你的系统中没有EDIT,也可用你所熟悉的文本编辑器进行录入、编辑,如可用c语言和pascal语言的文本编辑器来编辑,最后将文件存为filename.asm的形式即可。 PROCEDURE b:编译目标文件(即:编译为.obj .lst .crf文件) 这个过程计算机将把你编的正确的源代码编译为机器语言、程序清单及交叉引用表的目标文件。如果此时你的程序有语句错误,系统将报错,并指出在第几行,什么类型的错误,你可根据提示去逐一修改。现介绍具体过程: 在DOS提示符下键入MASM filename回车 (注:你系统内的汇编程序为MASM.EXE,如果你系统的汇编程序为ASM.EXE时,便将命令变为ASM fi lename回车。其中filename为你刚才在PROCEDURE a 中建立的文件名) 这时汇编程序的输出文件可以有三个(分别:.obj .lst .crf),便会出现三次提问,在这可以一路回车即可。下面显示的信息是源程序中的错误个数,如果为0则表示顺利通过,就可进行进程c。但如果不为0就说明有错误,并指出错误出现的行,可依据这个提示去进行修改。但如果错误太多还未等看清就显示过去了,可用如下命令形将错误信息存于一个你指定的文件,再用文本编辑器去查看。MASM filename >filen (f ilen为你起的一个没用过的文件名,用以存放出错信息)以后可查看filen来得到出错信息。

汇编语言第四次上机实验报告

汇编语言第四次上机实验报告 时间: 2013/5/10 7:00-9:30 地点:南一楼803 实验人员:计科10班王涛学号: U201114445 一、题目 1、用三种方式获取中断类型码10H对应的中断处理程序的入口地址。 (1)直接运行调试工具(TD.EXE),观察中断矢量表中的信息,指出中断类型码10H 对应的中断处理程序的入口地址。(使用TD观看即可)。使用TD观看时,在调试工具下调入以前编好的运行程序,跟踪执行INT 21H(即进入中断处理程序,方法是:执行到INT 21H 时,按ALT+F7),观察CS及IP是否改变成了前面记录的值。 (2)编写程序,用DOS系统功能调用方式获取,观察相应的出口参数与(1)看到的结果是否相同(使用TD观看即可)。 (3)编写程序,直接读取相应内存单元,观察读到的数据与(1)看到的结果是否相同. 2、编制时钟显示程序。要求每隔1s在屏幕右下角显示“年-月-日时:分:秒”,并将程序驻留在内存。 3、安装MASM32软件包,以其中的一个例子(如example\3dframes)为例,试用软件包中的集成汇编、连接和调试(TD32.EXE)功能。软件包从汇编教学网站上下载,操作参见《80X86汇编语言程序设计上机指南》第七章。 二、实验要求 1. 在调试工具下调入之前编好的运行程序,跟踪执行INT 21H(即进入中断处理程序,方法是:执行到INT 21H时,按ALT+F7),观察CS及IP是否改变成了前面记录的值。 操作提示:由于INT 21H内部的代码较长,为便于从中断处理程序返回到主程序,可在主程序INT 21H后面的指令上先设置好断点,当不再想跟踪中断处理程序时按F9即可。 实验报告的3、4、5 三个部分不用写。 2. 提示:CMOS内部07,08,09单元中分别存放着日、月、年的信息,“年”只显示低2位即可。汇编教学网站(http://202.114.1.86)上有CMOS参考资料。程序可参见教材6.2节的例1和例2。实验报告要完整。 3.在TD32中注意观察调用WIN API函数的指令序列特点,注意感受WINDOWS消息机制,掌握WINDOWS窗口程序的基本调试方法。 实验报告的3、4、5 三个部分不用写。 三、寄存器分配和变量定义说明 题目一:(1)略 (2)系统功能调用35H,入口参数为AL=10H,取中断信息。 (3)直接把主存中的DS:[40H]→IP,DS:[42H]→CS赋值给寄存器BX和CX 题目二:略 题目三:略

实验一 汇编语言上机基本步骤

实验一汇编语言上机基本步骤 一、实验目的: 熟悉汇编语言的上机过程,掌握各项工具软件的使用方法 二、实验环境: 1.硬件:PC微机 2.软件:DOS系统、EDIT.EXE、MASM.EXE、LINK.EXE、DEBUG.EXE 三、实验内容: 1.前期准备: 在开始进行汇编语言上机练习之前,建立并进入自己的工作子目录,准备好相关工具软件如MASM.EXE、LINK.EXE等,其后所有工作均在自己的子目录中进行,以避免因路径概念不清而导致的文件存取错误,以及对系统其它部分造成影响。 1)建立自己的工作子目录(例如MYTEST): C:\>MD MYTEST 2)进入自己的工作子目录: C:\>CD MYTEST 3)将所需工具软件从其它地方(如C:\MASM)拷贝进自己的工作子目录: C:\MYTEST>COPY C:\MASM\MASM.EXE C:\MYTEST>COPY C:\MASM\LINK.EXE 2.编写源程序: 原则上可以用任何文字处理软件(如EDIT、写字板、甚至WORD)编写源程序,但必须注意,源程序应为ASCII码文件(或称纯文本文件),扩展名一般为.ASM。因此,建议使用DOS环境下的EDIT软件。 1)在DOS系统操作提示符下键入EDIT并回车,即可进入EDIT文本编辑环境。如果 没有进入,检查当前路径下是否存在EDIT.EXE文件,以及文件是否完整等。 2)从键盘输入下列程序(不必输入注释部分): CODE SEGMENT;定义一个CODE段 ASSUME CS:CODE;定义CODE段为代码段START:;可执行语句起始处 MOV AH,02H ;以下三条语句将显示字母a MOV DL,’a’ INT 21H MOV AH,4CH ;以下二条语句将返回DOS INT 21H

相关文档
最新文档