微机原理实验指导书
微机原理实验指导书
编写 辛光红
理工分院
1
微机原理实验指导书
目 录
实验一 熟悉汇编语言上机环境及基本操作 实验二 利用DEBUG命令调试程序 实验三 实验四 实验五 实验六 实验七 实验八
汇编语言程序设计综合实验(一) 汇编语言程序设计综合实验(二) 8253电子音调实验 8251串行收发实验 8255键盘扫描实验 D/A转换(0832)实验 2
微机原理实验指导书
软件实验
实验一 熟悉汇编语言上机环境及基本操作
一、 实验目的及要求
1. 学会使用EDIT、TASM、TLINK、DEBUG等程序工具。
2. 熟悉DOS的常用命令及8086汇编语言源程序的一般结构。
3. 熟练掌握在计算机上建立、汇编、链接、调试及运行程序的方法。
二、 实验环境
PC一台、MS-DOS
三、 实验内容及步骤
1. 汇编语言的上机步骤(操作仅为演示,根据计算机实际情况操作)
先熟悉下DOS的常用命令:
(一)DIR命令:显示当前目录下的文件和目录
格式为:Dir
(1)D:\\BIN>DIR .exe(显示BIN文件中的EXE文件) 切换磁盘逻辑地址:
例:(1)A:\\>D:\\ ↙(从A盘切换到D盘) D:\\>
(2)D:\\>C:\\ (从D盘切换到C盘)
(二)CD命令 :改变当前工作目录
格式为
(1)切换到BIN文件下
注意:实验中BIN文件在D盘下面
(三)CD.. 返回上级目录
格式为
(1)从BIN文件下返回到C盘
注意:实验中BIN文件在D盘下面
(四)MD命令:建立一个新的目录 格式为 md ** (**代表文件名,包括后缀,若无后缀默认为建立文件夹)
3
微机原理实验指导书
(五)DEL命令:删除文件 格式为 del **
(六)RD命令:删除命令,要求要删除的目录下午任何目录或文件 格式为 rd your_name (七)COPY命令:拷贝命令
格式为:
(1) copy abc01.asm abc01.org(将文件abc01.asm复制为abc01.org)
(2) copy 123.asm D:\\BIN(将文件123.asm复制到D盘下BIN文件夹内) 注意:必须在文件所在目录下才能对文件进行COPY操作 要建立和运行汇编语言程序,应该在d: \\BIN目录下有如下文件:
TD.EXE ;编辑程序 RTM.EXE;
TASM.EXE ;汇编程序 TLINK.EXE ;链接程序 DEBUG.EXE ;调试程序
步骤:D:\\CD BIN;(进入到BIN文件内(建议在D盘下BIN内做)
D:\\BIN>EDIT ; (F2是保存,F10是退出,ALT选择MEUE) D:\\BIN>TASM CX.ASM D:\\BIN>DIR CX
D:\\BIN>TLINK CX.OBJ D:\\BIN> CX.EXE
以下是每一步的具体说明:
2. 用EDIT命令建立汇编语言源程序文件(扩展名为ASM)
在DOS状态下,调用EDIT编辑程序建立文件名为CZ.ASM的汇编源程序。可打入命令:D:\\>EDIT ( 每个命令后面应输入回车,以下均如此),就可以进入编辑软件,然后输入程序文件名(如**.ASM),在文本中输入源程序,输入完毕后,保存源程序,设源文件名为CX.ASM,退出EDIT,进入DOS状态。
3. 用TASM命令产生目标文件(OBJ文件)
调用TASM汇编程序对源文件进行汇编,可打入命令:
d:\\ BIN>TASM CX.ASM↙(.ASM可省略) 其中,TASM的参数包括:
/zi 生成全部调试信息 /zd 生成部分调试信息
汇编过程的错误分警告错误(Warning Errors)和严重错误(Severe Errors)两种。其中警告错误是指汇编程序认为的一般性错误;严重错误是指汇编程序认为无法进行正确汇编的错误,并给出错误的个数、错误的性质以及错误指令所在行号。这时,用户可以再调用编辑程序EDIT,对源程序修改后再进行汇编,直到汇编通过,最后得到没有语法错误的OBJ文件。
4. 用TLINK命令产生可执行文件(EXE文件)
经汇编以后产生的目标程序文件OBJ文件并不是可执行程序文件,必须经过链接以后,
4
微机原理实验指导书
才能成为可执行文件即EXE文件。调用TLINK实现链接,可打入命令:
d: \\BIN>TLINK CX.OBJ↙(.OBJ可省略)
其中,TLINK的参数包括: /v 把调试信息链接到可执行文件中 /t 用细小模式,生成com文件 /m 生成映像文件
5. 程序的执行
建立了可执行文件EXE后,就可以执行程序了,此时只要打入文件名即可,仍以CX为例, 打入命令:
d: \\BIN>CX↙(.EXE可省略)执行该程序。
下面我们通过上机操作来了解汇编语言程序的一般结构:
源程序CX.asm是一个字符比较程序,当两个字符相同时,显示YES;不相同时,显示NO。 参考代码: (;后面是注释部分可以省略) DATA SEGMENT D1 DB 'A' ;D1单元存入字符A D2 DB 'B' ;D2单元存入字符B
RES1 DB 'YES','$' ;RES1单元存入结果提示字符串YES RES2 DB 'NO','$' ;RES2单元存入结果提示字符串NO DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX
MOV AL,D1 ;取字符1送至AL MOV BL,D2 ;取字符2送至BL CMP AL,BL ;比较两个字符
JNE NEXT1 ;不同,转NEXT1,跳转指令 LEA DX,RES1 ;相同,‘YES’ DX JMP NEXT2
NEXT1: LEA DX,RES2 ;‘NO’ DX NEXT2: MOV AH,09H ;字符串输出显示 INT 21H MOV AH,4CH ;返回DOS INT 21H CODE ENDS END START
注意:代码中加粗倾斜部分是汇编语言的通用模版
CODE(代码段) DATA(数据段)
5