当前位置:文档之家› 微机原理实验程序

微机原理实验程序

微机原理实验程序
微机原理实验程序

实验一简单程序运行调试实验

一、实验目的

通过对MASM宏汇编软件、DEBUG调试程序的使用,熟悉8086汇编语言程序的编译、链接和调试方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,为后续程序编制和调试打下基础。

二、实验条件

硬件:PC机。

软件:MASM5,DEBUG。

三、实验原理

编写、编译、链接以及调试8086汇编语言程序。

四、实验内容与要求

编写8086汇编语言源程序,使用MASM5宏汇编软件编译并链接,生成exe可执行文件,用DEBUG调试程序调试汇编语言程序。

五、实验步骤

1、新建一个文本文档,如图4.1所示。

图4.1 新建文本文档

2、将其文件名修改为p1,将其扩展名修改为asm。如图4.2所示。

图4.2 修改文件名和扩展名

3、系统弹出警告对话框,单击“是”。如图4.3所示。

图4.3 警告对话框

4、在新建的p1.asm文件上单击右键,选择“编辑”,打开WINDOWS记事本软件,如图4.4所示。

图4.4 打开asm文件

5、使用WINDOWS记事本软件编辑8086汇编语言源程序,如图4.5所示。

图4.5 编辑asm文件

注:也可使用其他纯文本编辑软件(如Notepad++)来编辑程序,其优点是支持语法高亮显示、显示行号等,但不可使用word、WPS等字处理软件编辑程序。

6、单击开始→所有程序→附件→命令提示符,打开命令提示符界面,如图

4.6所示。用MASM5宏汇编软件编译并链接,生成exe可执行文件。

图4.6 命令提示符界面

7、使用cd命令将当前目录定位到源程序文件所在目录,如:“cd

C:\Users\407\Documents”,如图4.7所示。

8、在命令行提示符下输入“masm p1.asm”命令编译源程序,如图4.8所示,

如有错误则排除错误后重复此过程,直至编译通过,编译后文件夹中生成p1.obj

目标文件。

9、在命令行提示符下输入“link p1.obj”命令链接源程序,如图4.9所示,

链接后生成可执行程序文件p1.exe。

图4.7 修改当前目录

图4.8 编译源程序

图4.9 链接程序

10、运行程序,在命令行提示符下输入“p1.exe”运行程序,如图4.10所示。

11、调试程序,在命令行提示符下输入“debug p1.exe”调试程序,如图4.11所示。在debug调试环境中可以查看反汇编代码,单步执行程序、查看寄存器的内容、查看内存中的内容等。

图4.10 运行程序

图4.11 调试程序

六、参考程序

;此程序比较数据段和附加段的两串字符串string1和string2是否相等

;若相等,显示“string1 match string2”,

;若不相等,显示“the two strings are nomatch”

;定义数据段

DSEG SEGMENT 'DATA'

STRING1 DB "I am a student." ;字符串一

MATCH DB " string1 match string2",13,10,'$'

NOMATCH DB "the two strings are nomatch",13,10,'$'

QUIT DB "press any key to exit......",13,10,'$'

DSEG ENDS

;定义附加段

ESEG SEGMENT

STRING2 DB "I am a student." ;字符串二ESEG ENDS

;定义代码段

CSEG SEGMENT 'CODE'

ASSUME CS:CSEG,DS:DSEG,ES:ESEG

START PROC FAR

;保存返回DOS的地址

PUSH DS

MOV AX, 0

PUSH AX

;设置段寄存器

MOV AX, DSEG

MOV DS, AX

MOV AX,ESEG

MOV ES, AX

LEA SI,STRING1

LEA DI,STRING2

MOV CX,15

CLD

REPE CMPSB

CMP CX,0

JZ MAT

;两字符串不等

MOV AH,9

LEA DX,NOMATCH

INT 21H

JMP WAIT_FOR_EXIT

;两字符串相等

MAT:

MOV AH,9

LEA DX,MATCH

INT 21H

;按任意键退出

WAIT_FOR_EXIT:

MOV AH,9

LEA DX,QUIT

INT 21H

MOV AH,1

INT 21H

;返回DOS

EXIT:

RET

START ENDP

CSEG ENDS

END START ; 设置程序入口.

实验二汇编语言程序调试实验

一、实验目的

进一步熟悉8086汇编语言程序的编写、编译、链接和调试方法,加深对汇编语言程序设计的理解。

二、实验条件

硬件:PC机。

软件:MASM5,DEBUG。

三、实验原理

编写、编译、链接以及调试8086汇编语言程序。

四、实验内容与要求

编写8086汇编语言源程序,使用MASM5宏汇编软件编译并链接,生成exe可执行文件,用DEBUG调试程序调试汇编语言程序。

五、实验步骤

参考实验一的实验步骤。

六、参考程序

DATA SEGMENT

BUF DB 82 DUP(?)

DATA ENDS

STACK SEGMENT PARA STACK'STACK'

STA DB 50 DUP(?)

TOP EQU LENGTH STA

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK

START:

MOV AX,DATA

MOV DS,AX

MOV ES,AX

MOV AX,STACK

MOV SS,AX

MOV SP,TOP

MOV BX,OFFSET BUF

LOOP_START:

MOV SI,0000H

LP:

MOV AH,01H

INT 21H

CMP AL,1BH ;是ESC键

JZ EXIT

CMP AL,0DH ;是ENTER键

JZ IS_ENTER

CMP AL,61H

JB NOT_LETTER

CMP AL,7AH

JA NOT_LETTER

SUB AL,20H

NOT_LETTER:

MOV [BX+SI],AL

INC SI

JMP LP

IS_ENTER:

MOV [BX+SI],AL

MOV AL,0AH

MOV [BX+SI+1],AL

MOV AL,'$'

MOV [BX+SI+2],AL

MOV AH,09H

MOV DX,BX

INT 21H

JMP LOOP_START

EXIT: ;返回DOS MOV AX,4C00H

INT 21H

CODE ENDS

END START

dos命令大全 DOS命令图解教程

现在家用电脑的操作系统大多都是用的Windows 95,但在1995年Windows 9 5推出以前,占统治地位的操作系统是DOS(Disk Operation System磁盘操作系统)。

接触电脑早一点的人想必都听说过DOS的大名,更有很多人到今天仍然对DO S时代怀念不已,虽然自己的电脑早已用上了Windows 95,但仍要在硬盘上保留一份DOS,以备不时之需。

那么DOS的魅力到底在哪里呢?我们这就一起来揭开DOS的神秘面纱。

DOS概述及入门

——DOS的特点

在DOS环境下,开机后,我们面对的不是桌面和图标,而是这样的电脑屏幕:这个C:\>叫做提示符,这个闪动的横线叫做光标。这样就表示电脑已经准备好,在等待我们给它下命令了。我们现在所需要做的,就是对电脑发出命令,给电脑什么命令,电脑就会做什么。那我们又怎么向电脑发布命令呢?

很简单。比如,我们想看看现在几点钟了,就可以输入时间命令,敲入tim e四个字母,它在英文中是“时间”的意思,再敲回车键加以确认,这时屏幕上就显示出当前时间。

再敲回车键,瞧!又出现提示符了,就可以输入下一条命令了。

如果想看日期,输入date,然后敲回车键确认。

这时屏幕上显示出当前日期。再敲回车键就回到提示符下。

这就是DOS的命令输入方法,和Windows 95中用鼠标寻找图标来运行程序不同,DOS中是通过输入英文命令加回车键这种方式来执行程序的。

怎么样,和Windows 95完全不一样吧?在字符界面下,我们只能通过键盘输入字符来指挥电脑工作,电脑完成一个命令后,出现下一个提示符,我们就又可以给电脑下命令了。注意,在DOS下电脑一次只能做一件事,做完以后才能开始下一件事;而在95下,我们可能让电脑同时干几件事,比如,我们可以一边拷贝文件,一边写文章,一边浏览Internet。所以人们把DOS称为单任务的操作系统,而把Windows 95称为多任务的操作系统。

——文件与目录

在DOS中,文件与目录是最重要的概念,这和95一样,不同的是,“目录”在95中叫做“文件夹”。

如果我们想查看电脑中的文件,可以输入dir命令,然后回车。下面是我电脑屏幕上显示的结果。

如图所示,后面带有<dir>的是目录,没有的则是文件,这些目录里都分门别类地存放着许多不同用途的文件。你看,第一排是DOS目录,它里面有许多D OS命令文件和一些辅助信息文件。第二排是WINDOWS目录,它里面包含着许多有关WINDOWS程序的文件

在DOS中,文件名的规则是8.3形式,即一个文件名由文件基本名和文件扩展名组成,中间用点“.”隔开,文件基本名由不超过8个英文字母或数字组成,文件扩展名由不超过三个英文字母或数字组成,文件基本名必须有,扩展名可以没有。

看上图,第一列的就是“文件基本名”,第二列的是“文件扩展名”。注意:在用dir命令显示文件列表时,文件基本名和扩展名之间并无“.”分隔符,但你在输入完整的文件名时必须输入它。

第三列显示的是文件的大小,表示它占用了多少存储空间,也就是文件包含信息的多少,包含的信息越多,文件就越大;

第四列表示的是文件建立的日期或者是最后被改动的日期,每个文件都有对

应的生成时间,就象每个人都有自己的生日一样,文件的生成时间就是文件形成的时候。时间采用通常的表示方法,由年、月、日组成。

最后一列表示文件生成的具体时间,最后的一个字母a表示上午、p表示下午。

我们再来看看倒数一二行,这些是什么意思呢。“ 10 file(s) ”是要告诉你这个目录内有“ 10 ”个文件,这些文件加起来一共有“ 64,692 bytes”大,在这种计算中,每个子目录也算是一个文件,但它的大小算零。最后一行的是告诉你当前你的工作磁盘上还剩下“ 215,735,513 bytes”大小可用的磁盘空间。

如果我们要看看DOS目录里的文件,那么我们可以敲dir dos回车,也就是查看DOS目录的意思,如果敲dir windows回车就是查看windows目录下的文件的意思。大家可以试着练习练习dir命令,观察文件夹下面的东西。

DOS概述及入门

——文件的分类

用dir命令来查看磁盘上文件时,你会发现文件后缀(即文件扩展名)有很多种,它们当中大部分都是有一定含义的?/p>

又比如,第二行的这个文件mem.exe,其后缀是exe,也是一个可以执行的文件,它的功能是查看电脑目前内存的占用情况。在提示符下敲mem,然后回车。(这个命令没问题,你可以试试看)

这里显示了电脑总共有多少内存,现在使用了多少,还剩多少,以及使用了多少基本内存,还剩下多少基本内存等情况,这些在下面将有详细解释。

当我们在c盘的根目录下查看文件时,往往会看到这个autoexec.bat文件,其后缀是bat,说明它是一个批处理文件,也是可以直接执行的。

所谓批处理,就是一下可以执行很多条命令,当我们想让电脑完成一系列任务时,可以一个一个命令的执行,也可以将这些命令都装入一个文件中,只要敲一下这个文件名,电脑就会将这一批命令一次执行完毕。

在实际操作中,我们经常会建立一些批处理文件,来完成许多有着固定步骤的烦琐工作。现在,你已经知道电脑中哪些文件对你直接有效了,它们就是以c om、exe或bat为后缀的文件。

所以,当你拿到一个新软件时,首先就可以用dir命令查看有没有以它们为后缀的文件,一般情况下,你都能找到一个或几个这样的文件,你大可放心地去执行它们,其中必然有一个是对的,错了也没关系,一般不会有太大的影响。

DOS概述及入门

——目录、子目录与盘符

在DOS中,有个当前目录的概念,就是提示符所显示的目录,现在的提示符是C:\,那么当前目录就是C盘的根目录,这个\(反斜杠)就表示根目录。

如果要更改当前目录,那么可以用cd命令,比如我们输入cd dos,就表示更换当前目录为dos目录,回车后,你看,提示符变成了C:\DOS,这就表示当前目录变成了C盘的DOS目录了,当前目录有什么意义呢?

在这里,我们输入dir试试,看,现在列出的文件已经不是刚才看见的了,这些都是DOS目录里的文件,这就说明,dir命令列出的,是当前目录中的内容。还有,就是在我们输入可执行文件名时,DOS会在当前目录中寻找该文件,如果没有该文件,DOS会提示错误信息。

那么目录是什么结构的呢?目录是树形结构的,你看,下面是一个目录结构的示意图,这个C:表示最上面的一层目录,叫做根目录,其它的目录都是根目录的子目录,如DOS,WINDOWS,TOOLS等,而DOS,WINDOWS目录自己也有子目录,象DOS下的TEMP目录,WINDOWS下的SYSTEM目录。

我们用CD命令来改变当前目录,输入CD DOS,那么当前目录就变成了DOS,有时我们把改变当前目录为一个子目录叫做进入该子目录,那么我们现在就是进入了DOS目录,再输入CD TEMP,那么我们又会进入TEMP目录了,如何退出TEMP 目录呢?只要键入CD ..,回车,我们就可以回到DOS目录了。在DOS中,这个两

点就表示当前目录的上一层目录,一个点表示当前目录,有时,我们叫上一级目录为父目录。再输入CD ..,然后回车,我们就回到了C盘的根目录。

进入一个目录的子目录并不需要用CD命令一层一层进入,可以用一行命令完成,比如要进入WINDOWS目录下的SYSTEM子目录,只要输入CD WINDOWS\SYSTEM 就可以了,也可以输入CDC:\WINDOWS\SYSTEM,如果要回到根目录,那么也不必多次输入CD ..来完成,可以直接输入CD \,\就表示根目录。

在子目录中用dir命令列文件列表时,我们会发现,.和..都算作文件数目,但大小为零。

如果我们要更换当前目录到硬盘的其它分区该怎么办呢?当然不是使用CD,否则我就不用说了,这时应该输入盘符然后回车。比如要到D盘,那么就输入D:,然后回车,瞧,现在提示符就变成D:\>了。再用dir命令,就是列出D盘的文件了。

实际上,要完整地表达一个子目录应该是盘符加目录,比如C: \DOS\TEMP,那么完整地表达文件呢?就是盘符加目录加文件名,比如C:\DOS\TEMP\ME.TXT,C:\DOS\TEMP\就叫做ME.TXT的路径。

刚才我们说过,输入可执行文件名时,DOS会在当前目录中寻找该文件,如果找不到,会提示错误的文件名,但是我们不是一定要把当前目录更换到文件所在的目录才能运行它的,可以在文件名前加上完整的路径就可以了,比如我们现在的当前目录是C:\DOS,我们要运行D:\TEST\PCT.EXE,那么我们可以直接输入D: \TEST\PCT.EXE回车,这样我们不改变当前目录就可以执行其它目录下的文件。

——DOS的启动

电脑刚启动时,要先从某个磁盘上将一些系统程序读入内存后才能正常工作,我们将这个磁盘叫做启动盘。

通常,我们用A盘或C盘作为启动盘,在特殊情况下,硬盘的其它盘符和少数电脑的光盘也可以作启动盘。制作启动盘需要使用sys命令,可以参看后面的命令部分。

DOS系统启动时,要先从启动盘中读取两个系统文件IO.SYS、MSDOS.SYS,然后在启动盘的根目录下寻找并执行CONFIG.SYS、https://www.doczj.com/doc/ea11871357.html,、AUTOEXEC.BAT三个文件。其中IO.SYS、MSDOS.SYS和https://www.doczj.com/doc/ea11871357.html,这三个文件缺一不可,否则电脑将无法正常启动

CONFIG.SYS和AUTOEXEC.BAT这两个文件是用来配置系统运行环境和自动执行一些命令,它们对电脑的运行性能以及许多设备的驱动起到了至关重要的作用,我们可以根据自己的需要对它们的内容进行修改,

autoexec.bat叫做自动批处理文件,它是批处理文件的一种,因为DOS启动时会自动运行它,所以叫做自动批处理文件。你可以把自己每次启动电脑时都要运行的程序放在里面。

如果电脑在根目录下找不到这两个文件,也是可以运行的,但有许多复杂的软件和设备将无法正常工作。比如光驱、声卡以及Windows程序等。所以,初学者应注意不要将上面的几个文件删除,否则,电脑将不能正常工作。

DOS常用命令

——dir

前面我们说过,在DOS下我们用输入命令的方式来指挥电脑工作。那么把我们想说的话输入到电脑里,电脑就能明白吗?

显然这样是不行的,DOS下的电脑只能明白一些特殊的英文命令的含义,只有你输入这些命令,电脑才会听你的指挥,否则它只会傻傻地说:“Badcomman dorfilename.”这是在说它搞不懂你说什么。那么,DOS下的命令有哪些呢?

DOS的命令分为内部命令和外部命令,内部命令是随https://www.doczj.com/doc/ea11871357.html,装入内存的,而外部命令是一条一条单独的可执行文件。

内部命令都集中在根目录下的https://www.doczj.com/doc/ea11871357.html,文件里,电脑每次启动时都会将这个文件读入内存,也就是说在电脑运行时,这些内部命令都驻留在内存中,用dir是看不到这些内部命令的。而外部命令都是以一个个独立的文件存放在磁盘

上的,它们都是以com和exe为后缀的文件,它们并不常驻内存,只有在电脑需要时,才会被调入内存。

我们先来看几个最常用的命令,以便对DOS命令有更深的了解。DOS下使用频率最高的命令莫过于dir命令了,dir是英文单词directory(目录)的缩写,主要用来显示一个目录下的文件和子目录。

我们可以试着在提示符后输入dir,再按Enter回车键,无所谓大小写,如果输入错误了,可以按Backspace键来修正。如果你的当前目录下有很多文件或子目录,会发现内容还没有看清楚,就哗的一下滚过去了?

别着急,想看清楚还不简单,dir命令是可以带参数的,键入dir/p试试看,看,这先计算机在显示完一屏内容后,停了下来。

看到最后的一行英文没有,这行英文的意思是:如果你看完了这一屏,随便敲一个键就可以看下一屏。那就敲个键试试,随便哪个都行。好,是不是换了一屏怎么样,是不是很方便呢?

如果你觉得用dir/p分屏显示还是太麻烦,你用这个命令试试,从键盘上输入dir/w试试看。这回所有文件在一屏内都显示出来了,但好象少了点什么,原来文件的大小和生成时间都被省略了。如果你只想知道目录内有什么文件和子目录,而不关心文件的生成时间和大小的话,那么使用dir/w,以短格式方式显示是不错的选择。

dir命令不但可以查看目录中有什么文件,还可以查看目录中某个文件的信息,例如输入dirabc,就是查看当前目录中文件abc的信息,包括它的大小和生成时间。

如果执行dirabc后,显示是“Filenotfound.”则说明当前目录中没有abc 这个文件,所以还可以用dir命令来查找文件。比如用dir命令查找当前目录中是否有https://www.doczj.com/doc/ea11871357.html,这个文件,只要输入https://www.doczj.com/doc/ea11871357.html,。

dir命令不但可以查找和显示一个特定的文件,还可以显示一类文件。例如输入d ir*.bat,显示的就是所有扩展名是bat的文件。看下图

那这里的*是什么意思呢?在DOS命令中,*在文件名中出现是代表任意字符的意思。例如,A.*就代表了文件基本名是A,扩展名是任意的所有文件。那么d ira.* 就是把文件基本名是a的所有文件都显示出来。如果用dirA*.*,将会出现什么结果呢?结果是显示了文件基本名以A开头的所有文件。再深入一点,di r*.*是什么意思呢?在这里文件基本名和扩展名都是任意的,那就等于代表了所有文件,所以这和只输入dir的作用是相同的。

因为*可以代替任意字符,所以我们称之为通配符。其实通配符不只*一个,现在我们再来看看另一种通配符----?。

?通配符和*的区别是什么呢?*可以代替文件名中的多个字符,而?只能代替文件名中的一个字符。比如a*.*是代表所有文件基本名以a开头的文件,而a?.*是代表文件基本名只有两个字符,并且第一个字符是a的所有文件,同理a??.*是代表文件基本名只有三个字符,并且第一个字符是a的所有文件。

两者还有一个区别,在文件名中出现*后,其后的所有字符都不起作用,比如A*.*和a*b.*是没有任何区别的,但A*.*和A*.com就不一样了,因为中间隔了一个分隔符,*的作用不能超过分隔符。

在作用不超过分隔符这一点上,?和*是一致的,但是,无论在文件基本名或扩展名中出现在?后,后面的字符仍然起作用。例如,a?.bat和a?b.bat是不同

的意思,前者代表了文件扩展名是bat,而文件基本名是两个字符,且第一个字符是a的所有文件,后者代表了文件扩展名是bat,而文件基本名是三个字符,且第一个字符是a,第三个字符是b的所有文件。

最后再讲一点吧,都差点忘了这个小问题了。在使用通配符时,文件基本名和扩展名中最多只能各出现一个*,而?可以在不超过文件名和扩展名长度的前提下出现多个。例如:这三个文件名a???.b??、a????b?.?c?及??a?b??c.??d 都是可以的。

最后来个总结吧,dir命令最大的用途就是让你了解磁盘到底都有些什么,还剩下多少存储空间。最后还有一个小窍门,如果你想知道A盘上都有什么,你不必先输入a:,变换当前驱动器为A盘后,再敲dir,你可以直接键入dira:。不信试试看,千万别忘了插入软盘哟!

DOS常用命令

——cd

我们已经使用过cd命令,大家肯定还记得吧。cd是英文change directory(改变目录)的缩写,也是最常用的命令之一。顾名思义,如果想要进入一个目录,显然该采用这个命令了。

在讲cd命令之前,我们先来谈谈提示符是什么意思。现在的提示符是c:\>

这个c:说明现在的工作盘是c盘,即当前盘是硬盘。这个紧接着c:后面的\告诉我们,当前的工作目录是根目录。这个>的作用只是为了把工作目录和我们要输入的命令分隔开来,没有其它的意义。这样,我们就可以从提示符上看出当前的工作盘和工作目录是什么,你如果清楚了这一点,那么学习cd命令就变得轻松自如了。

好,现在我们想进入dos目录,该怎么办呢?对了,直接输入cd dos就行了。

你注意,提示符变了,变成c:\dos>了。这就告诉我们,我们当前的工作目录是c盘根目录下的dos子目录。如果想退回上一层目录,就键入cd..,看提示符又变回来了。是不是很简单呢?进入子目录就输入cd+空格+子目录名,想返回上一层目录,就输入cd..(两点)。

如果想从C盘转到D盘,直接输入D:

现在你来练习一下,要进入windows子目录,怎么办?当然是输入cdwindow s。在windows目录下,还有一个子目录:system,再进去看看,输入cdsystem,好,暂停一下,这时我想要返回到根目录,这该怎么办?用cd..吗?那当然可以,

不过得用两次。我们有更好的办法,其实只需键入cd\三个字符可以一下子就回到根目录,自己试试吧。

cd命令的用途就是让我们可以到任何一个目录去。我们把不同功能的文件分别安排在不同的目录内,是为了管理方便,可是当我们要使用某个文件时,我们就得到该文件所在的目录中去。比如说,要使用wps,就要到wps所在的目录;要用w indows,就要到windows所在的目录。事实上,你学会了cd命令,你就可以到达磁盘中的任何一个目录了。不过有一点提醒你注意,如果想要到非当前磁盘的某个目录时,要先输入盘符,回车后,等当前盘变为另一个磁盘时,你才可以使用cd命令到达你想要去的目录。

DOS常用命令

——md和rd

不知你想过没有,磁盘上的这些目录都是哪来的呢?其实,这些目录都是我们自己建立的,我们建立这些目录的目的,就是为了分类组织文件,如果我们有一类新的文件,就需要再建立一个新的目录。今天我们要学的两个命令就是进行目录操作的,它们是md(make directory--创建目录)和rd(remove directory--删除目录)。

这两个命令很简单,比如我叫小博士,我要把自己的文件都放在一个目录中,我就可以输入mdxbs,建立我的目录。这时你用dir命令看一看,就会发现根目录下多了一个目录XBS。

你不妨练习一下,建立一个名字叫xyz的目录,再输入dir,是不是可以看到xyz目录啦,如果你看到了,你就成功了(呵呵,这课也就完成一半了)。现在让我们到这个目录中去,键入cdxyz,注意,提示符是不是变了。好,输入dir 命令。很奇怪是吧?我们刚刚建立了这个目录,按理说,这个目录中应该什么都没有的。其实,不管你建立什么目录,这个. 和.. 都会在目录中出现,因为. 代表此目录本身,.. 代表此目录的上一层目录。显然,一个目录既然已经存在了,就不可能没有本身,也不可能没有上一层目录。(..你使用过的,记得吗?就是cd..,用来返回上一层目录)。

微机原理及应用实验

实验报告1 实验项目名称:I/O地址译码;简单并行接口同组人: 实验时间:实验室:微机原理实验室K2-407 指导教师:胡蔷 一、实验目的: 掌握I/O地址译码电路的工作原理,简单并行接口的工作原理及使用方法。 二、预备知识: 输入、输出接口的基本概念,接口芯片的(端口)地址分配原则,了解译码器工作原理及相应逻辑表达式,熟悉所用集成电路的引线位置及各引线用途;74LS245、74LS373的特性及作用。 三、实验内容245输入373输出 使用Protues仿真软件制作如下电路图,使用EMU8086编译软件编译源程序,生成可执行文件(nn . exe),在Protues仿真软件中加载程序并运行,分析结果。 编程实现:读8个开关的状态,根据输入信号控制8个发光二极管的亮灭。 图1-1 245输入373输出 四、程序清单

五、实验结果 六、结果分析 七、思考题: 1、如果用74LS373作输入接口,是否可行?说明原因;用74LS245作输出接口,是否可行?说明原因。

实验报告2 实验项目名称:可编程定时器/计数器;可编程并行接口同组人: 实验时间:实验室:微机原理实验室K2-407 指导教师:胡蔷 一、实验目的: 掌握8253的基本工作原理和编程应用方法。掌握8255的工作原理及使用方法。 二、预备知识: 8253的结构、引脚、控制字,工作方式及各种方式的初始化编程及应用。 8255的内部结构、引脚、编程控制字,工作方式0、1、2的区别,各种方式的初始化编程及应用。 三、实验内容: ⑴8253输出方波 利用8253的通道0和通道1,设计产生频率为1Hz的方波。设通道0的输入时钟频率为2MHz,8253的端口地址为40H,42H,44H,46H。通道0的输入时钟周期0.5μs,其最大定时时间为:0.5μs×65536 = 32.768ms,要产生频率为1Hz(周期= 1s)的方波,利用;一个通道无法实现。可用多个通道级连的方法,将通道0的输出OUT0作通道1的输入时钟信号。设通道0工作在方式2(频率发生器),输出脉冲周期= 10 ms,则通道0的计数值为20000(16位二进制)。周期为4 ms的脉冲作通道1的输入时钟,要求输出端OUT1输出方波且周期为1s,则通道1工作在方式3(方波发生器),计数值为100(8位;二进制)。硬件连接如图2-1。

微机原理实验 源程序

《微机原理及接口技术》 实验指导书 杨霞周林英编 长安大学电子与控制工程学院 2009年9月

前言 本实验指导是为适应各大、中专院校开设微机原理及应用方面的课程需做大量软硬件实验的需要而编写的,供学生编程用。完成本实验指导中的实验,可使学生基本掌握8086/8088的结构原理、接口技术、程序设计技巧。手册中详细叙述了各实验的目的、内容,列出了接线图、程序框图和实验步骤。 主要学习内容为80X86语言实验环境配置、汇编源语言格式、输出字符、循环结构、子程序调用,以及加减乘除等指令操作、通用接口芯片的接口编程与使用。所有实验都是相互独立的,次序上也没有固定的先后关系,在使用本书进行教学时,教师可根据教学要求,选择相应实验。学习结束后,要求学生能够独立编写出综合加减乘除等指令,以及循环结构、子程序调用等程序控制程序、看懂一般接口芯片电路图。

目录 实验一清零程序 (4) 实验二拆字程序 (6) 实验三数据区移动 (8) 实验四多分支程序设计 (10) 实验五多字节减法运算 (13) 实验六显示程序 (16) 实验七 8251串口实验 (20) 实验八步进电机控制 (26) 附录一汇编语言的存储模型 (36) 附录二 8279键值显示程序 (37)

实验一清零程序 一、实验目的 掌握8088汇编语言程序设计和调试方法。 二、实验设备 STAR系列实验仪一套、PC机一台。 三、实验内容 把RAM区内4000H-40FFH单元的内容清零。 四、程序框图 五、源程序清单 .MODEL TINY .STACK 100 .DATA .CODE ORG 0100H START: MOV BX,4000H MOV AX,0000H MOV CX,80H L1: MOV [BX],AX INC BX INC BX LOOP L1 JMP $ END START 六、实验步骤

微机原理实验指导书

微型计算机原理与应用实验指导书 上海大学通信学院

2010 年4 月 PC微机原理实验一 一、目的:掌握PC机DEBUG调试程序有关命令的操作及8086各类指令的 功能。 要求:在PC机上完成下列程序的调试运行,并写出运行结果。二、1.DEBUG的基本操作:(详细内容请参阅教材“程序的调试,P173”和“附录F 调试程序DEUBG的使用,P499”) (1)从WINDOWS进入DOS之后,输入命令启动DEBUG: C:>DEBUG 回车 (2)输入R命令,查看和记录CPU各个寄存器的内容: -R回车 看到什么 (3)输入A命令,汇编下面的字符“WINDOWS”显示程序: -A100 ;从偏移地址是0100H处开始写指令 MOV AH,2 MOV DL, 57 ;57H 是“W ”的ASCII码 INT 21 ;INT 21是DOS 功能调用,AH=2代表2号功能 ;这3句合起来的功能是:显示DL中的字符 MOV DL, 49 INT 2 1 MOV DL, 4E INT 21 MOV DL, 44 INT 2 1 MOV DL, 4F INT 2 1 MOV DL, 57 INT 2 1 MOV DL, 53 INT 2 1 INT 3 ;功能是产生一个断点,不要省略 (4)输入U 命令反汇编上面的程序: -U 100 问:这里100代表什么 (5)输入G命令连续运行上面的程序,记录运行结果:

-G=100 ,57,53依次分别改为574F4E57 (6)输入E命令把上面程序中的数据,49,,44,,45:,,45,4C43,4F4D,-E 103 回车(以下同) -E 107 10B-E -E 10F 113-E 117-E 11B-E (7)输入D命令查看程序机器码的存放情况: -D 100 11E ;看从100开始到11E的机器码 (8)输入G命令再连续运行程序,并记录运行结果: -G=100 (9)依次输入下面的T命令(单步执行)和G命令(设置断点并启动运行),记录各 命令的运行结果: -T=100 回车 -G=100 106 回车 -G=100 10A 回车 -G=100 10E 回车 -G=100 11E 回车 注意: 下面第2—第8段程序是7个实用的小程序,若不小心打错指令,可以这样修改: 例如:CS:0100 B300 MOV BL,0 0102 53 PUSH BX 0103 B220 LP1: MOV DL,20 要修改“PUSH BX”,因为这条指令的IP是0102,所以按以下操作: -A 0102 回车,然后把正确的指令打入,“-A ”是汇编指令。 如果要查看0100以后的指令及相应的机器代码,可以 -U 0100 回车,能够看到CS:0100开始的指令及相应的机器代码。“-U ”是反汇编 若发现有误用,用“-A XXXX 回车”,重打这条指令即可 2.编制一个能在CRT上连续显示A,B,C,D······Z大写英文字符的源程序,并在源程序下汇编调试机运行。

微机原理及应用实验(题目)

微机原理及应用实验 实验一开发环境的使用 一、实验目的 掌握伟福开发环境的使用方法,包括源程序的输入、汇编、修改;工作寄存器内容的查看、修改;内部、外部RAM内容的查看、修改;PSW中个状态位的查看;机器码的查看;程序的各种运行方式,如单步执行、连续执行,断点的设置。二、实验内容 在伟福开发环境中编辑、汇编、执行一段汇编语言程序,把单片机片内的 30H~7FH 单元清零。 三、实验设备 PC机一台。 四、实验步骤 用连续或者单步的方式运行程序,检查30H-7FH 执行前后的内容变化。五、实验思考 1.如果需把30H-7FH 的内容改为55H,如何修改程序? 2.如何把128B的用户RAM全部清零? 六、程序清单 文件名称:CLEAR.ASM ORG 0000H CLEAR: MOV R0,#30H ;30H 送R0寄存器 MOV R6,#50H ;50H 送R6寄存器(用作计数器) CLR1: MOV A,#00H ;00 送累加器A MOV @R0,A ;00 送到30H-7FH 单元 INC R0 ;R0 加1 DJNZ R6,CLR1 ;不到50H个字节,继续 WAIT: LJMP WAIT END 实验二数据传送 一、实验目的 掌握MCS-51指令系统中的数据传送类指令的应用,通过实验,切实掌握数据传送类指令的各种不同的寻址方式的应用。 二、实验内容 1.编制一段程序,要求程序中包含7中不同寻址方式。 2.编制一段程序,将片内RAM30H~32H中的数据传送到片内RAM38H~3AH中。 3.编制一段程序,将片内RAM30H~32H中的数据传送到片外RAM1000H~1002H 中。 4.编制一段程序,将片内RAM40H~42H中的数据与片外RAM2000H~2002H中的数据互换。 三、实验设备 PC机一台。

微机原理实验报告

西安交通大学实验报告 课程_微机与接口技术第页共页 系别__生物医学工程_________实验日期:年月日 专业班级_____组别_____交报告日期:年月日 姓名__ 学号__报告退发 ( 订正、重做 ) 同组人_教师审批签字 实验一汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。编程并显示结果: 如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子

程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 99223344H = xxxxxxxxH 四、实验代码及结果 1.1、实验代码: DATA SEGMENT SZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H;存进数组 SHOW DB 'THE MAX IS: ','$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ;把数据的基地址赋给DS MOV DS,AX MOV DX,OFFSET SHOW ;调用DOS显示字符串 MOV AH,09H INT 21H MOV SI ,OFFSET SZ ;数组的偏移地址赋给SI MOV CX,10 ;存进数组的长度给CX MOV DH,80H ;将数组的第一个数写进DH NEXT: MOV BL,[SI] ;将数组的第一个数写进BL CMP DH,BL ;比较DH和BL中数的到校 JAE NEXT1 ;如果DH中的数大于BL中,将跳转到NEXT1 MOV DH,BL ;如果DH中的数小于BL中,将BL中的数赋给DH NEXT1: INC SI ;偏移地址加1 LOOP NEXT;循环,CX自减一直到0,DH中存数组的最大值 ;接下来的程序是将将最大值DH在屏幕上显示输出 MOV BX,02H NEXT2: MOV CL,4 ROL DH,CL ;将DH循环右移四位

微机原理实验指导书

微机原理及应用实验指导书 南京理工大学机械工程学院 2011年10月10日

实验1 基本操作实验 1. 实验目的 (1) 掌握TD-PITC 80X86 微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。 (2) 掌握使用运算类指令编程及调试方法; (3) 掌握运算类指令对各状态标志位的影响及其测试方法; (4) 学习使用软件监视变量的方法。 2. 实验设备 PC机一台,TD-PITC 实验装置一套。 3. 实验内容及步骤 通过对样例程序的操作,学会在TD-PITC境下,如何输入汇编语言程序,如何进行汇编语言源程序的汇编、连接、下载和运行;在调试程序的学习过程中,应学会: ●如何设置断点; ●如何单步运行程序; ●如何连续运行程序; ●怎样查看寄存器的内容; ●怎样修改寄存器的内容; ●怎样查看存储器的内容; ●怎样修改存储器的内容。 3.1 实验内容1――――BCD码转换为二进制数 实验内容: 将四个二位十进制数的BCD 码存放于3500H 起始的内存单元中,将转换的二进制数存入3510H 起始的内存单元中,自行绘制流程图并编写程序。 参考实验程序清单如下: SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: XOR AX, AX MOV CX, 0004H MOV SI, 3500H MOV DI, 3510H A1: MOV AL, [SI] ADD AL, AL MOV BL, AL

ADD AL, AL ADD AL, AL ADD AL, BL INC SI ADD AL, [SI] MOV [DI], AL INC SI INC DI LOOP A1 A2: JMP A2 CODE ENDS END START 实验步骤: 1)运行Wmd86 软件,进入Wmd86 集成开发环境。 2)根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言,如图1-1所示。语言选择后,下次再启动软件,语言环境保持这次的修改不变。在这里,我们选择汇编语言。 图1-1 语言环境选择界面 3)语言选择后,点击新建或按Ctrl+N 组合键来新建一个文档,如图1-2所示。默认文件名为Wmd861。 图1-2 新建文件界面 4)编写实验程序,如图1-3所示,并保存,此时系统会提示输入新的文件名,输完后点击保存。

微机原理及应用实验报告81487

实 验 报 告 课 程 名 称 实 验 名 称 实 验 日 期 学 生 专 业 学 生 学 号 学 生 姓 名 教 师 姓 名 成 绩 南京理工大学机械工程学院 微机原理及应用 实验1 DEBUG 操作实验 实验2 汇编程序设计实验 实验3 8253定时/计数器实验 实验4 8255 并行接口实验 年 月 日 至 年 月 日

实验一DEBUG命令及其操作 一、实验目的 1.熟练掌握debug的常用命令,学会用debug来调试程序。 2.深入了解数据在存储器中的存取方法及堆栈中数据的压入与弹出。 3.掌握各种寻址方法以及简单指令的执行过程。 二、实验要求 1.实验前要作好充分准备,包括汇编程序清单、调试步骤、调试方法以及对程序结果的分析等。 2.本实验要求在PC机上进行。 3.本实验只要求在DEBUG调试状态下进行,包括汇编程序,调试程序,执行程序。三、实验内容 ●实验内容1:学习用DEBUG调试工具进行源程序的输入、汇编、调试和执行。 实验报告要求: 1.写出运行结果; 2.小结debug常用命令及使用体会 答:1.原文已给出(略) 2.a 汇编 d显示内存单元内容 e修改单元内存内容 g执行命令 t单步(或多步)调试 n指定文件路径文件名(含扩展名) u反汇编 r查看寄存器值及修改 l加载程序 w写盘命令 体会:提升学习热情和动手能力有助于理解代码执行过程 ●实验内容2 设AX=3000H,BX=5000H,请编一程序段将AX的内容和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。 实验报告要求: 1.写出完成上述功能的程序段; 2.单步执行,并记录寄存器AX, BX及堆栈指针SP的值 答: A100 Mov ax,3000 ;ax:3000 bx:0000 sp:ffee Mov bx,5000 ;ax:3000 bx:5000 sp:ffee Push ax ;ax:3000 bx:5000 sp:ffec

微机原理实验

实验四:分支、循环程序设计 一. 实验目的 1.学习分支程序、循环结构程序的设计和调试方法; 2.学习子程序的定义和调试方法; 3.掌握分支、循环、子程序等程序的基本结构。 二. 实验设备 TDN 86/51或 TDN 86/88教学实验系统一台 三. 实验内容、步骤及要求 1. 设计一数据块间的搬移程序 数据块搬移的基本原则为: 对于两个分离的数据块,从首地址或从末地址开始传送均可。 对于有部分重叠的情况则: 当源数据块首地址>目的数据块首地址时,从数据块首地址开始传送数据。 当源数据块首地址<目的数据块首地址时,从数据块末地址开始传送数据。 2.求某数据区内负数的个数 设数据区的第一单元存放区内单元数据的个数,从第二单元开始存放数据,在区内最后一个单元存放结果。为统计数据区内负数的个数,需要逐个判断区内的每一个数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得区内所包含负数的个数。 3.学生成绩名次表 将分数为1~100之间的10个成绩存入首址为3000H的单元中,3000H+I表示学号为I的学生成绩。编写程序能在3100H开始的区域排出名次表,3100H+I为学号I的学生名次。 4. 求无符号字节序列中的最大值和最小值 设有一字节序列,其存储首地址为3000H,字节数为08H。利用子程序的方法编程求出该序列中的最大值和最小值。 四. 编程练习 (A) 在3500H单元开始中输入数据:09H(数据个数)12H、80H、78H、C8H、00H、00H、FEH、99H、34H,编写程序使其能分别求出数据区中的正数和负数以及零的个数,正数的个数放在3510H单元中,负数的个数放在3511H单元中,零的个数放在3512H单元中. (B) 有三个8位二进制数连续存放在03200H开始的内存单元中,设它们之中至少有两个数是相同的。编写程序找出与另外两数不同的数,把该数所在的地址(段内偏移地址)送到03204H单元,若三个数都相同则送0FFFFH到03204H单元。 (C) 设数据段SCORE单元开始连续存放着20个学生成绩,编写程序统计其中<60,60~69、70~79、80~89,>90分数段的人数,并把统计结果存放到从TOT开始的数据块中。 (数据为:64H,61H,5DH,55H,52H,51H,44H,45H,47H,48H,4DH,4FH,3CH,3FH,40H,41H,33H,56H,59H,30H). (D) 找出一个数据块中的最大数。数据块从偏移地址3002H开始存放,数据块的长度以16位二进制形式存放在3000H、3001H单元,把找出的最大数放到3100H单元中,并把存放最大值的偏移地址存入3101H和3102H的存储单元中。假设数据块中的数都是8位无符号数。 (E) X的值(字节数)分别由3000H、3001H、3002H单元的数决定,对应的结果Y分别存放在3005H、3006H、3007H单元中,完成下列方程: A (X>0) Y= { 0 (X=0)

微机原理实验报告软件实验1-4

微机原理实验报告 学院:算机科学与软件教育学院 1. 掌握存储器读写方法 2. 了解存储器的块操作方法 二、实验原理 存储器读写和块操作 三、实验设备仪器及材料 计算机,WA VE 6000软件 四、实验过程 S1.asm 代码流程图 data segment Block db 256 dup(55h) data ends code segment assume cs:code, ds:data start proc near mov ax, data mov ds, ax mov bx, offset Block ; 起始地址 mov cx, 256 ; 清256 字节Again: mov [bx], byte ptr 0 inc bx ; 地址+1 Loop Again ; 记数减一jmp $ ;死循环code ends end start

五、实验步骤 (1) 进入Wave6000,输入程序并检查,保存程序。 (2) “编译”程序。 (3) “全速执行”程序。 (4) “暂停”程序运行,在“数据窗口(MEMOREY)”查看0400H起始的单元内容,并记录。 (5) 在指令“jmp $”处设断点。“全速执行”程序。 (6) 在“数据窗口(MEMOREY)”查看0400H起始的单元内容,记录并分析实验结果。 六、实验结果及总结 运行前:运行后: 2、调试:如何将存储器块的内容置成某固定值(例全填充为0FFH)? 总结:通过本实验,我了解到单片机读写存储器的读写方法,同时也了解到单片机编程,调试方法。学会内存的移动方法,也加深对存储器读写的认识。

微机原理实验报告 学院:算机科学与软件教育学院 实验 课程 名 微机原理实验成绩实验 项目名称实验二、二进制到BCD码转换 指导老 师 1. 了解BCD值和ASCII值的区别。 2. 了解如何将BCD值转换成ASCII值。 3. 了解如何查表进行数值转换及快速计算。 二、实验原理 ASCII码表 三、实验设备仪器及材料 计算机,WA VE 6000软件 data segment Result db 3 dup(?) data ends code segment assume cs:code, ds:data start proc near mov ax, data mov ds, ax mov ax, 123 mov cl, 100 div cl mov Result, al ; 除以 100, 得百位数 mov al, ah mov ah, 0 mov cl, 10 div cl mov Result+1, al ; 余数除以 10, 得十位数 mov Result+2, ah ; 余数为个位 数 jmp $ code ends end start 代码流程图

微机原理实验指导书

微型计算机原理与应用 实验指导书 上海大学通信学院 2010 年 4 月

PC微机原理实验一 一、目的:掌握PC机DEBUG调试程序有关命令的操作及8086各类指令的 功能。 二、要求:在PC机上完成下列程序的调试运行,并写出运行结果。1.DEBUG的基本操作:(详细容请参阅教材“4.5程序的调试,P173”和“附 录F调试程序DEUBG的使用,P499”) (1)从WINDOWS进入DOS之后,输入命令启动DEBUG: C:>DEBUG 回车 (2)输入R命令,查看和记录CPU各个寄存器的容: -R回车 看到什么? (3)输入A命令,汇编下面的字符“WINDOWS”显示程序: -A100 ;从偏移地址是0100H处开始写指令 MOV AH,2 MOV DL, 57 ;57H 是“W”的ASCII码 INT 21 ;INT 21是DOS 功能调用,AH=2代表2号功能 ;这3句合起来的功能是:显示DL中的字符 MOV DL, 49 INT 21 MOV DL, 4E INT 21 MOV DL, 44 INT 21 MOV DL, 4F INT 21 MOV DL, 57 INT 21 MOV DL, 53 INT 21 INT 3 ;功能是产生一个断点,不要省略 (4)输入U命令反汇编上面的程序: -U 100 问:这里100代表什么? (5)输入G命令连续运行上面的程序,记录运行结果: -G=100 (6)输入E命令把上面程序中的数据57,49,4E,44,4F,57,53依次分别改为57,45,4C,43,4F,4D,45: -E 103 回车(以下同) -E 107 -E 10B

微机原理实验报告

微 机 原 理 实 验 报 告 班级: 指导老师:学号: 姓名:

实验一两个多位十进制数相加的实验 一、实验目的 学习数据传送和算术运算指令的用法 熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 二、实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。 三、程序框图 图3-1

四、参考程序清单 DATA SEGMENT DATA1 DB 33H,39H,31H,37H,34H;被加数 DATA1END EQU $-1 DATA2 DB 34H,35H,30H,38H,32H;加数 DATA2END EQU $-1 SUM DB 5 DUP(?) DATA ENDS STACK SEGMENT STA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX

MOV SI,OFFSET DATA1END MOV DI,OFFSET DATA2END CALL ADDA MOV AX,4C00H INT 21H ADDA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05H AD1: SUB BYTE PTR [SI],30H SUB BYTE PTR [DI],30H DEC SI DEC DI DEC BX JNZ AD1 MOV SI,DX MOV DI,BP MOV CX,05H CLC AD2: MOV AL,[SI] MOV BL,[DI] ADC AL,BL

微机原理实验程序

实验一两个多位十进制数相减实验 一、实验要求:将两个多位十进制数相减,要求被减数,减数均以ASCII码形式按顺序 存放在以DATAI和DATA2为首的5个内存单元中(低位在前>,结果送回 DATAI处。 二、实验目的:1.学习数据传送和算术运算指令的用法。 2.熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 三、实验步骤:连好实验箱后接通电源,打开上位机软件88TE进入软件调试界面: 点击“文件\打开”文件路径为C: \88TE\cai\asm\Ruanjian\Rjexp1.asm。具体操作如图所示: b5E2RGbCAP

点击编译连接生成可执行的exe文件。 通过单步运行调试程序,打开寄存器查看其变量变化情况。 四、实验程序框图: 五、实验程序:

文件路径为C:\88TE\cai\asm\Ruanjian\Rjexp1.asm DATA SEGMENT DATA1 DB 33H,39H,31H,37H,38H 。第一个数据<作为被减数)DATA2 DB 36H,35H,30H,38H,32H 。第二个数据<作为减数)MES1 DB '-','$' MES2 DB '=','$'p1EanqFDPw Array DATA ENDS STACK SEGMENT STA DB 20 DUP(?> TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX MOV SI,OFFSET DATA1 MOV BX,05 CALL DISPL MOV AH,09H LEA DX,MES1 INT 21H MOV SI,OFFSET DATA2 MOV BX,05 CALL DISPL MOV AH,09H LEA DX,MES2 INT 21H MOV SI,OFFSET DATA1 MOV DI,OFFSET DATA2 CALL SUBA 。减法运算 MOV SI,OFFSET DATA1 MOV BX,05 。显示结果 CALL DISPL MOV DL,0DH MOV AH,02H INT 21H MOV DL,0AH MOV AH,02H INT 21H INT 21H MOV AX,4C00H INT 21H DISPL PROC NEAR 。显示子功能 DSI: MOV AH,02 MOV DL,[SI+BX-1] 。显示字符串中一字符 INT 21H

微机原理实验指导

微机原理实验一简单I/O口扩展实验 一、实验目的 1. 熟悉74LS273、74LS244的应用接口方法。 2. 掌握用锁存器、三态门扩展简单并行输入输出口的方法。 二、实验内容 用逻辑电平开关作为74LS244(U10)的输入,用发光二极管作为74LS273的输 出,编写程序,使得逻辑电平开关的输入状态从发光二极管上显示出来。 三、实验器材 微机、EL型微机教学实验箱 四、实验原理图 4LS273 4 4LS02 S O S I C S U 1 R K1-K8是开关的输出插孔,L1-L8是发光二极管的输入插孔,SI0-SI7是74LS244 的输入插孔,SO0-SO7是74LS273的输出插孔,CSU10\是74LS244的地址译码输入插孔,CSU8\是74LS273译码输入插孔,以上插孔实验时均需连线,原理图中其它已注的和未标注的引脚均以连好或实验不需要。 74LS244

五、实验步骤 1.连线:将74LS244的输入SI0-SI7分别与逻辑电平开关电路的 K1-K8相连,从I/O地址片选信号 CS0\~CS7\中任选一个与 U10的片选信号相连(例如CS0\)。将74LS273(U8或U9)的输出(CS0\~CS7\)分别与发光二极管电路的 L1~L8相连,从I/O地址片选信号CS0\~CS7\中任选一个与U8或U9的片选信号相连。(如CS1\)2.编辑程序,单步运行,调试程序 3.调试通过后,全速运行,观察实验结果 4.编写实验报告 六、编程提示 逻辑电平开关拨上时为5V,拨下时为0V,发光二极管输入‘1’为亮,‘0’为灭。从U10读入的数据后从输出口输出。 七、程序框图

微机原理及应用 上机实验报告2 数据传送

课程名称:_________微机原理及应用___________指导老师:_____钟崴_______成绩:__________________ 实验名称:_________数据传送___________实验类型:________________同组学生姓名:__________ 一、实验目的和要求(必填)二、实验内容和原理(必填) 三、主要仪器设备(必填)四、操作方法和实验步骤 五、实验数据记录和处理六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求(必填) 掌握MCS-51指令系统中的数据传送类指令的应用,通过实验,切实掌握数据传送类指令的各种不同的寻址方式的应用。 二、实验内容和原理(必填) 1.编制一段程序,要求程序中包含7中不同寻址方式。 2.编制一段程序,将片内RAM30H~32H中的数据传送到片内RAM38H~3AH中。 3.编制一段程序,将片内RAM30H~32H中的数据传送到片外RAM1000H~1002H中。 4.编制一段程序,将片内RAM40H~42H中的数据与片外RAM2000H~2002H中的数据互换。 三、主要仪器设备(必填) PC机一台。 四、操作方法和实验步骤 逐段编制程序,汇编无误后,用连续或者单步的方式运行程序,检查程序的运行结果,看是否达到预期的效果。 五、程序清单 1. ORG 0000H CLEAR MOV R0,#30H ;间接寻址 MOV A,#40H ;立即寻址 MOV @R0,A ;间接寻址 MOV A,30H ;直接寻址 MOV DPTR,#0100H ;间接寻址 MOV A,#36H MOVX @DPTR,A MOV R0,#50H ;立即寻址 MOV A,#10 MOVC A,@A+DPTR ;变址寻址 END

中南民族大学 微机原理实验答案

中南民族大学微机原理实验答案 实验一 第二题在debug中实现在屏幕上显示“0123456789” A 100 0100:mov cx,0a Mov dl,30 Mov ah,2 0106: int 21h Inc dl Loop 0106 Int 20h 第三题用int 21h 中的2号功能在屏幕上显示“122333444455555666666777777788888888999999999” a 100 0100: mov cx,9 mov dl,31h 0104: push cx xor cx,cx mov cl,dl sub cl,30h 010c: mov ah,2

int 21h loop 010c inc dl pop cx loop 0100 mov ax,4c00h int 21h int 20h 第四题用九号功能在屏幕上显示‘9876543210’ A 100 0100: db ‘9876543210’ 0106: Mov dx,0100 mov ah,9h int 21h Int 20h 实验二 第三题修改程序,在第一行连续显示4个“Hello,World!”每个以空格分开。 name hello sseg segment stack db 64 dup(0)

sseg ends dseg segment mess db 'hello World!',' ','$' dseg ends cseg segment assume cs:cseg,ds:dseg,ss:sseg,es:dseg main proc far begin:mov ax,dseg mov ds,ax mov es,ax mov ah,9 mov cx,4 s1: mov dx,offset mess int 21h loop s1 mov ax,4c00h int 21h main endp cseg ends end begin 第四题 name hello

微机原理实验程序

硬件实验七 D/A转换实验 (2 锯齿波 --------------- ; 注意:进行本实验前, 请先装载运行 D/A 0V输出 (调基准电压程序Asm88\da_0v.asm ; 使 D/A输出端“ AOUT ” 输出电压为 0V , 再进行本实验。 CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 33F0H DAPORT EQU 0FFE0H H7: MOV DX,DAPORT MOV AL,00H P7: OUT DX,AL INC AL JMP P7 CODE ENDS END H7 串行通信 CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 35C0H ;TX=RX

H11: JMP START Z8251 EQU 0FFE1H D8251 EQU 0FFE0H COM_MOD EQU 04EH COM_COM EQU 25H ZXK EQU 0FFDCH ZWK EQU 0FFDDH LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H BUF DB ?,?,?,?,?,? START: MOV BX,4000H MOV AL,[BX] CMP AL,00H JNZ SR0 SR8251: MOV DX,Z8251 MOV AL,COM_MOD OUT DX,AL MOV AL,COM_COM OUT DX,AL MOV AL,10

微机原理实验指导

实验一 MASM For Windows 的使用及顺序程序设计 一、实验目的 1、熟悉在PC机上建立、汇编、连接、调试和运行8086汇编语言程序的过程。 2、熟悉masm for windows调试环境及DEBUG常用命令的使用 二、实验内容 1.DEBUG常用命令(U、R、D、E、F、T、G、Q)的操作使用 2.编程实现两个16位无符号数的加、减、乘、除运算。 有两个两字节无符号数分别放在存储单元A、B起始的缓冲器中,求其和,结果放在A起始的缓冲区并在屏幕上显示。相加若有进位不存入存储单元。 三、实验设备 PC机一台、masm for windows 汇编语言集成环境 四、实验准备 1) 分析题目,将程序中的原始数据和最终结果的存取方法确定好。 2) 画出流程图。 3) 写出源程序。 4) 对程序中的结果进行分析,并准备好上机调试与用汇编程序及汇编调试的过程。 五、实验步骤 1) 输入源程序。 2) 汇编、连接程序,生成 .EXE文件,执行文件,检查结果。 六、学生实验报告的要求 1) 列出源程序,说明程序的基本结构,包括程序中各部分的功能。 2) 说明程序中各部分所用的算法。

3) 说明主要符号和所用到寄存器的功能。 4) 上机调试过程中遇到的问题是如何解决的。 5) 对调试源程序的结果进行分析。 4) 说明标志位CF、SF和OF的意义。 DEBUG的常用命令 1、R 显示或修改寄存器的内容命令格式:-R 2、 D 显示存储单元的内容命令格式:-D[地址1, 地址2] 3、E修改存储单元的内容 命令格式:-E[地址1, 地址2] 4、U反汇编 命令格式:-U[地址1, 地址2] 5、T单步执行 命令格式:-T 6、G连续执行 命令格式:-G[=起始地址, 结束地址] A小汇编 命令格式:-A 7、Q退出DEBUG,返回DOS 实验一源程序 EXAM1-2 .ASM DATA SEGMENT A D B 34H,18H,2 DUP(0),’$’ B DB 56H,83H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,A MOV BL,B ADD AL,BL

微机原理与应用实验报告

微机原理及应用实验报告 班级:机械1301班 :黄佳清 学号:0801130117 座位号: 中南大学机电工程学院

实验一单片机仿真开发机操作和MCS-51指令系统应用 一.实验目的 1、熟悉MCS-51单片机仿真开发机和开发调试软件的操作使用和调整; 2、学会编写和输入汇编语言源程序、对输入的源程序进行汇编; 3、掌握程序的调试和运行的各种方法。 三.实验容及步骤(完成分值:60分) 本实验秩序运行Keil uVersion2程序,设置为keil为纯软件仿真 1.新建工程项目 2.设置工程文件参数 3.编写新程序事例 4.调试程序直至能够运行出结果。 四.实验程序 AJMP MAIN ORG 0030H MAIN: MOV R0,#20H MOV R2,#0FH MOV A,#00H A1: MOV R0,A INC R0 INC A DJNZ R2,A1 MOV R0,#20H ;暂停,观察并记录! MOV DPTR,#7000H MOV R2,#0FH A2: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R2,A2 MOV R0,#030H ;断点,观察并记录! MOV DPTR,#7000H MOV R2,#0FH A3: MOVX A,DPTR MOVX R0,A INC R0 INC DPTR DJNZ R2,A3 DO: LJMP DO END ;部存储器数据块赋值,搬运数据块到外部存储器,再搬运回部数据存储器。 五、附加题 1.将光标移到想要暂停的地方,MOV R0,#20H所在行,选择“执行到光

2.在MOV R0,#0A0H行设置断点,全速执行,暂停后观察并记录以下单元容 3.

微机原理实验指导书

实验一数据传送 实验目的 : 1、熟悉 8086 指令系统的数据传送指令及 8086 的寻址方式。 2、利用 Turbo Debugger 调试工具来调试汇编语言程序。 实验任务 : 1.通过下述程序段的输入与执行来熟悉 Turbo Debugger 的使用,并通过显示器屏幕观察程序的执行情况。练习程序段如下: MOV BL , 08H MOV CL , BL MOV AX , 03FFH MOV BX , AX MOV DS : [0020H] , BX 2.用以下程序段将一组数据压入( PUSH )堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。压栈程序段如下: MOV AX , 0102H MOV BX , 0304H MOV CX , 0506H MOV DX , 0708H PUSH AX PUSH BX PUSH CX PUSH DX 出栈程序段请自行编写(用不同的出栈顺序)。 3、指出下列指令的错误并加以改正,上机验证之。

(1) MOV [BX] , [SI] (2) MOV AH , BX (3) MOV AX , [SI][DI] (4) MOV BYTE PTR[BX] , 2000H (5) MOV CS , AX (6) MOV DS , 2000H 4、设置各寄存器及存储单元的内容如下: (BX) = 0010H , (SI) = 0001H (10010H) = 12H , (10011H) = 34H , (10012H) = 56H , (10013H) = 78H (10120H) = 0ABH , (10121H) = 0CDH , (10122H) = 0EFH 说明下列各条指令执行完后 AX 寄存器中的内容,并上机验证。 (1) MOV AX , 1200H (2) MOV AX , BX (3) MOV AX , [0120H] (4) MOV AX , [BX] (5) MOV AX , 0110H[BX] (6) MOV AX , [BX][SI] (7) MOV AX , 0110H[BX][SI] 5、将 DS : 1000H 字节存储单元中的内容送到 DS : 2020H 单元中存放。试分别用 8086 的直接寻址、寄存器间接寻址、变址寻址、寄存器相对寻址传送指令编写程序段,并上机验证结果。 6、设 AX 寄存器中的内容为 1111H , BX 寄存器中的内容为 2222H , DS : 0010H 单元中的内容为 3333H 。将 AX 寄存器中的内容与 BX 寄存器中的内容交换, 然后再将 BX 寄存器中的内容与 DS : 0010H 单元中的内容进行交换。试编写程序段,并上机验证结果。

相关主题
文本预览
相关文档 最新文档