1、微机原理实验指导书加硬件改实验要求1.进入实验室前完成的部分1)认真阅读实验指导书,弄懂实验原理和实验内容。分析实验内容A程序的结构、实现方法。2)编写实验所要用到的程序,将其放在U盘上。3)写出预习报告(其中应有实验内容A、B的程序清单)。2. 进入实验室后完成的部分1)对实验内容A对其进行汇编、链接获得可执行文件。运行可执行文件,实现实验内容A的要求。2)对实验内容B的程序进行调试,修改错误,获得要求的结果。3)保存调试后的程序。3.实验结束后的部分对实验结果进行分析、总结,写出实验报告。实验报告内容及格式1.实验目的2.实验设备3.实验内容只做文字叙述,程序部分放在程序清单中。4.程序清
2、单实验内容B的完整程序。如果使用了本实验或前面实验中完全相同的子程序,可不列写,只做注明即可。实验内容A的程序清单放在预习报告中,不再列写。5.实验步骤6.实验总结主要包括对实验结果、调试过程、错误及产生的原因的分析,以及本次实验的重要收获等。此项为实验成绩评定的重要依据。汇编语言程序的上机过程本章内容在实验一实验六中使用。1.实验环境在计算机的C盘(也可以是其他盘符)下,有一个MASM50(也可能是其他文件名)文件夹,在这个文件夹下存放着对汇编语言源程序进行汇编、调试所需要的各种文件。2.建立源程序可以用你熟悉的文本编辑器,如记事本、写字板等来建立一个源程序文件。但需要注意以下几点:(1)在
3、“我的电脑工具文件夹选项查看”中将“隐藏已知文件类型的扩展名”上的“”去掉。(2)源程序文件的文件名应该是*.asm,如果不是应进行修改。(3)源程序文件中的字符必须是西文半角字符,不能使用中文全角字符。(4)不要把数字“0”错写成字符“O”,或者把字符“O”错写成数字“0”。3. 进入DOS系统在Windows XP的“附件”中有一个“命令提示符”,运行它即可进入DOS系统。4. 在DOS系统中进入文件夹E:CD 文件夹名。5.汇编源程序假设在E盘下的WJYL文件夹中已建立了一个DEMO1.ASM的源程序文件,可以执行以下命令:E:WJYLC:MASM50MASM DEMO1然后将看到:Mi
4、crosoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved. Object filename DEMO1.OBJ: (若同意以文件名DEMO1.OBJ生成则回车)Source listing NUL.LST: (若不需要生成列表文件则回车)Cross-reference NUL.CRF: (若不需要生成交叉索引文件则回车)DEMO1.ASM(56): error A2105: Expected: instruction or directive
5、 (源程序的第56行有一个错误) 50864 + 415600 Bytes symbol space free 0 Warning Errors (0个警告错误) 1 Severe Errors (一个致命错误)在文本编辑器中修改这个错误后再进行汇编:E:WJYLC:MASM50MASM5MASM DEMO1Microsoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.Object filename DEMO1.OBJ: Source lis
6、ting NUL.LST: Cross-reference NUL.CRF: 50864 + 415600 Bytes symbol space free 0 Warning Errors 0 Severe Errors汇编完成,获得了DEMO1.OBJ文件。如果这个软件是由多个源程序文件组成,则需要分别对每个源程序文件进行汇编。6.链接目标文件在获得*.OBJ目标文件后,还需要对其进行链接定传统后才能运行。E:WJYLC:MASM50LINK DEMO1Microsoft (R) Overlay Linker Version 3.60Copyright (C) Microsoft Corp
7、1983-1987. All rights reserved.Run File DEMO1.EXE: (若同意以文件名DEMO1.EXE生成则回车)List File NUL.MAP: (若不需要生成列表文件则回车)Libraries .LIB: (无特殊库文件要求则回车)这时就获得了一个可执行文件DEMO1.EXE。如果这个软件是由多个源程序文件组成,就需要链接多个OBJ。可以进行如下操作:E:WJYLC:MASM50LINK DEMO1+ DEMO 2+ DEMO 3+7.运行文件 E: WJYLDEMO1.EXE就可以运行这个文件了。众友微机原理实验箱使用说明本将内容在实验七实验八中使用
8、。1.使用前须知通电后,显示屏上稳定显示时应显示信息“Connect or not(Y/N)?”,接键盘时这时按下Y键即进入联机模式,显示“NOW COM IS STANDBY!”,按下N键即进入单机模式,单机模式的操作及显示类似于在计算机上运行DEBUG时的情况。如果不按键,那么在延时约5秒后自动进入联机模式。联机模式:该模式下实验箱通过串口和PC机相连,不需要配标准键盘;该模式下INT 21H的显示和键盘功能调用无效,显示时直接将要显示的ASCII字符往88H地址端口送就可以了。单机模式:该模式下的操作与在PC机上操作DEBUG时的用法是一样的,不同的是我们的程序在执行时如果碰到段地址改变
9、的,会连续执行两条指令。由于显示屏大小有限,所以在操作时,如果操作的指令要显示的东西太长,最好指定范围。特别说明:在全速运行程序后,要再次下载程序或调试程序,必须重新启动系统。2.软件说明 本系统软件应该运行在Win98以及Win98以上操作系统。本系统软件是通过PC机串行口向微机接口实验箱上的8250串口通信芯片发送控制指令,从而控制该芯片直接对该实验箱执行一系列的操作。如:下载执行文件、断点设置、单步执行、全速运行、运行到指定地址、运行到光标处、设置PC值等。如果要和下位机进行通讯,则在使用本软件之前,用户应该将本实验系统配套的串行通讯电缆分别插在该实验箱以及PC微机的串口上,这样才可以实
10、现PC与实验箱之间的串口通讯。如果没有连接下位机则只能进行上位机的软件仿真。3.软件安装 在使用软件前,用户按照安装普通软件的步骤,将微机接口实验箱的软件安装在PC机上。4.进入系统打开PC机运行该软件。首先会弹出如下图2-1所示的联机界面:图2-1如果本实验系统配套的串行通讯电缆已经连在该实验箱与PC微机的串口上,并且实验箱的电源已经打开。当检查到通信端口正确时,则进入到联机状态,端口选择为2-1中所示。如果检查串口没有连通,系统提示用户是否进行连接。当点击取消按钮或者是ESC键时,系统则进入到上位机软件仿真状态。5.主要功能进入到系统的主界面如图2-2所示:图2-25.1 文本编辑 新建/
11、打开(Ctrl+N/Ctrl+O) 点击主菜单上的文件/新建(或者文件/打开),便可以打开一个空白文档或者存在的文档(.asm为扩展名的文件)。用户可以在文档区中进行文件的编辑。 剪切(Ctrl+X) 要剪切文本以便可以将它移动到其他位置,请选定文本,然后单击主菜单上的编辑/剪切或者工具栏上的剪切按钮。 复制(Ctrl+C) 要复制文本以便可以将它粘贴到其他位置,请选定文本,然后单击主菜单上的编辑/复制 (或者工具栏上的复制按钮)。 粘贴(Ctrl+V) 要粘贴剪切或复制的文本,请将光标置于要粘贴文本的位置,然后单击主菜单上的编辑/ 粘贴 或者工具栏上的粘贴按钮。 删除(Delete) 要删除
12、文字,请先选定它,然后单击主菜单上的编辑/ 删除 (或者工具栏上的删除按钮)。 保存/另存为(Ctrl+S) 点击主菜单上的文件/保存(或者文件/另存为),打开了文件保存对话框,将文件保存为以.asm为扩展名的文件。5.2 编译连接装载文件 文件进行调试之前,首先进行装载,其中装载的是一个可执行文件(.exe)文件,所以在文件装载之前先进行编译连接。 编译连接选项 编译连接选项是一个可选的选择项,它用来选择所使用的编译器、连接器、调试器。在这里,采用的是系统默认的值,用户可以根据情况来选择相应的编译连接器。建议用户把编译器、连接器和调试器放到“C:masm50”目录下面。 编译/编译连接 根据
13、用户选择的编译连接器对用户编写的程序进行编译连接,如果用户没有对文件进行存储,系统提示用户首先进行存储。如果用户程序是正确的,则生成相应的程序文件(.exe为后缀),如果用户程序中有错误,则在信息框中显示错误信息。 编译、连接、装载(Ctrl+F9) 根据用户选择的编译连接器对用户编写的程序进行编译连接,如果用户没有对文件进行存储,系统提示用户首先进行存储。如果用户程序是正确的,则生成相应的程序文件(.exe为后缀),并把该文件下载到下位机,如果用户程序中有错误,则在信息框中显示错误信息。 加载可执行文件(F3) 要把执行文件下载到下位机,单击主菜单上的编译/ 加载可执行文件 (或者工具栏上的
14、加载可执行文件按钮)。如果加载不成功,则进入到上位机软件仿真。5.3 调试点击主菜单上的“调试”进入程序调试。主要有以下几种方法: 全速运行(F9) 运行到指定地址 运行至光标处(F4) T单步(F10) T跟踪(F11) P单步(CtrlF10) P跟踪(CtrlF11) 复位(CtrlF2) 设置PC 设置取消断点3.4 视图程序在调试的过程中,我们可以通过查看寄存器中的内容、程序数据区中的内容,并且可以读写IO端口。 寄存器窗口 单击主菜单上的视图/寄存器窗口,显示寄存器中的内容的变化,如下图2-3所示:图2-3 程序数据区 单击主菜单上的视图/程序数据区,则显示下载执行文件的执行代码,
15、以二进制形式表示,如下图2-4所示:图2-4 I/O端口控制 单击主菜单上的视图/ I/O端口控制,则弹出图2-5所示的界面:图2-5我们可以选择读端口或者写端口,在端口地址中输入想要读写的端口地址。当用户进行读端口时,在端口值框中显示该端口地址对应的端口值,如果进行写端口,那么把端口值的内容写入到该端口地址中。3.5 浏览 浏览选项下面包括了三部分的内容。 查看调试信息当用户选中了记录调试信息选项时,每次的调试信息都会相应的保存在同名的以.txt为后缀的文件中。供用户查看调试的信息。 删除调试信息用户可以把所选中的调试信息删除掉,当用户选中删除调试信息选项时,系统弹出一个文件打开对话框,用户
16、选择所要删除的文件,系统把该文件删除掉。 记录调试信息这是一个可选的选项。系统默认的是被选择的,当记录调试信息被选择时,系统把调试的信息保存在相应的文件中,供用户进行信息的查看;当记录调试信息没有选中时,调试信息则不进行保存。5.6 MS_DOS当用户点击MS_DOS菜单选项时,弹出如图2-6所示的界面:图2-6用户在点击MSDOS时,首先要确定程序已经装载到下位机中。用户在命令参数编辑框中输入用户命令,则执行结果显示到上面的屏幕中。5.7 逻辑示波器点击主菜单上的视图/示波器功能,系统开始对通道1和通道2进行波形采样。弹出波形界面如图2-7所示。图 2-7当用户进行示波器功能时,点击开始按钮
17、,系统弹出对话框如下图2-8所示:图2-8用户可以选择所要打开的通道,但两个通道不能同时打开。在此用户可以进行X轴、Y轴调节波形。实验一 DOS输入输出功能的使用实验目的:1.掌握8086汇编语言程序的汇编、链接、运行的方法。2.掌握用软中断调用DOS输入输出功能的方法。3.掌握将二进制数转换成十进制数的编程方法。实验设备:计算机一台。预装Windows XP、宏汇编MASM5。实验内容A:编写能够实现以下要求的汇编语言程序,并上机实现。1.用DB定义一个字符串,以“$”作为结束符。用将以下方法该字符串输出到屏幕上。MOV DX,字符串首地址 MOV AH,9 INT 21H2.将字符串的长度
18、转换成十进制,用以下方法该字符串输出到屏幕上。 MOV DL,字符ASCII码MOV AH,2 INT 21H3.用以下方法从键盘输入字符,并将其存入到内存中,直到输入“$”为止。形成一个以“$”结尾的字符串。再将这个字符串输出到屏幕。 MOV AH,1 INT 21H输入的字符在AL中。实验内容B:编写能够实现以下要求的汇编语言程序,并上机实现。1.将你名字的汉语拼音、学号等输出到屏幕上,注意应各占一行,即每输出一项,在其后还应输出回车和换行符。预习要求:1.预习汇编语言程序上机的步骤,掌握汇编语言程序上机的过程。2.阅读实验内容A的参考源程序,对其结构以及实现方法进行分析,在理解的基础上掌
19、握编程方法。3.根据要求,编写实验内容B的源程序。4.编辑建立实验内容A和实验内容B的源程序文件,存入U盘保存。5.写出预习报告,报告中应有实验内容B的源程序清单。实验步骤:1.编辑建立实验内容A的源程序,对其进行汇编、链接获得可执行文件。运行可执行文件,实现实验内容A的要求。2.参考实验内容A的源程序,编辑建立实验内容B的源程序,对其进行汇编、链接获得可执行文件。如果在汇编、链接过程中有错误产生,则根据提示信息逐一修改错误,直到无错误产生。运行可执行文件,实现实验内容B的要求。重要提示:1.源程序文件名应为*.ASM。2.源程序文件中的字符必须是西文半角字符,不能使用中文全角字符。3.在源程
20、序文件中不要把数字“0”错写成字符“O”,或者把字符“O”错写成数字“0”。4.实验内容A的第3步,要求操作者输入若干字符,并以$结束。在输入$后,你会看到2行相同的字符,第1行的最后有$,这是DOS系统产生的;第2行的没有$,这是程序产生的。5.实验内容B,可以通过添加:String3 db 姓名内容,$String4 db 学号内容,$来实现。6.实验内容A中其他不用的指令可以删除。实验内容A参考程序: name demo1data segmentstring1 db 1234567890abcdefg,$ ;准备显示的字符串count db $-string1-1 ;上面字符串的长度st
21、ring2 db 100 dup(?) ;准备放输入字符串的空间data endsstack segment para stack stack db 100 dup(100)stack endscode segmentstart proc far assume cs:code, SS:STACK,ds:databegin: push ds mov ax,0 push ax mov ax,data mov ds,ax lea dx,string1 ;输出字符串 mov ah,9 int 21h ;输出回车和换行符,以实现另起一行 mov dl,0dh ;输出回车命令 mov ah,2 int 2
22、1h mov dl,0ah ;输出换行命令 mov ah,2 int 21h mov al,count ;将字符串长度转换成3位十进制数输出 mov ah,0 ;高8位补0 mov cl,100 div cl ;除以100获得百位数 push ax ;暂存结果和余数 mov dl,al add dl,30h ;换成ASCII码 mov ah,2 ;输出字符到屏幕 int 21h pop ax ;恢复结果和余数 mov al,ah ;余数作为被除数 mov ah,0 mov cl,10 div cl ;除以10获得十位数 push ax mov dl,al add dl,30h mov ah,2
23、 int 21h pop ax mov dl,ah add dl,30h mov ah,2 int 21h mov dl,0dh ;输出回车命令 mov ah,2 int 21h mov dl,0ah ;输出换行命令 mov ah,2 int 21h lea bx,string2 ;将输入的字符从string2开始存放lp1: mov ah,1 int 21h mov bx,al inc bx cmp al,$ ;收到$停止 jne lp1 mov dl,0dh ;输出回车命令 mov ah,2 int 21h mov dl,0ah ;输出换行命令 mov ah,2 int 21h lea d
24、x,string2 ;输出由键盘输入的字符串 mov ah,9 int 21h ret start endpcode ends end begin实验二 4位BCD码加法实验目的:1.掌握BCD码加法的编程方法。2.掌握串操作指令的使用方法。3.掌握简单循环结构编程方法。实验设备:计算机一台。预装Windows XP、宏汇编MASM5。实验内容A:编写能够实现以下要求的汇编语言程序,并上机实现。1.编写一个4位BCD码加法程序,并将结果输出到屏幕上。2.给出两个4位BCD码加数,手工计算出结果,再用本程序获得结果,对照二者是否相同。注意数的高、低位在内存中的放置规则。实验内容B:编写能够实现以
25、下要求的汇编语言程序,并上机实现。1.将参考程序中输出到屏幕部分修改成循环结构。预习要求:1.阅读实验内容A的参考源程序,对其结构以及实现方法进行分析,在理解的基础上掌握编程方法。2.根据要求,编写实验内容B的源程序。3.编辑建立实验内容A和实验内容B的源程序文件,存入U盘保存。4.写出预习报告,报告中应有实验内容B的源程序清单。实验步骤:1.编辑建立实验内容A的源程序,对其进行汇编、链接获得可执行文件。运行可执行文件,实现实验内容A的要求。2.参考实验内容A的源程序,编辑建立实验内容B的源程序,对其进行汇编、链接获得可执行文件。如果在汇编、链接过程中有错误产生,则根据提示信息逐一修改错误,直
26、到无错误产生。运行可执行文件,实现实验内容B的要求。重要提示:1.注意参加运算的数的高位低位的放置规则。2.参加运算的2个数的位数必须相同。3.对于实验内容B,以SI为源操作数,每循环一次SI加1。4.循环结构所用到的计数单元,不能与循环结构中所用到的单元冲突。实验内容A参考程序: NAME demo2DATA SEGMENTSTRI1 DB 1,7,5,2 ;第1个加数,注意低位在前STRI2 DB 3,8,1,4 ;第2个加数,注意应与第1个加数位数相同COUNT EQU $-STRI2 ;加数的位数DATA ENDSSTACK SEGMENT PARA STACK STACK DB 10
27、0 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,SS:STACK,DS:DATA,ES:DATASTART PROC FAR PUSH DS MOV AX,0 PUSH AXGO: MOV AX,DATA MOV DS,AX ;设置源串段基址 MOV ES,AX ;设置目的串段基址 MOV SI,OFFSET STRI1 ;设置源串首地址 MOV DI,OFFSET STRI2 ;设置目的串首地址 MOV CX,COUNT ;设置串长度 ; CLC ;为多字节加法预清进位标志CYCLE: MOV AL,SI ADC AL,DI AAA MOV DI,
28、AL INC SI INC DI LOOP CYCLE MOV SI,OFFSET STRI2 MOV DL,SI+3 ;输出千位 ADD DL,30H MOV AH,2 INT 21H MOV DL,SI+2 ;输出百位 ADD DL,30H MOV AH,2 INT 21H MOV DL,SI+1 ;输出十位 ADD DL,30H MOV AH,2 INT 21H MOV DL,SI+0 ;输出个位 ADD DL,30H MOV AH,2 INT 21H RET START ENDPCODE ENDSEND START实验三 4字节乘法及循环结构实验目的:1.掌握顺序向下编程方法。2.掌握
29、4字节乘法编程处理方法。3.掌握循环结构编程方法。4.掌握多模块汇编、链接、运行的方法。实验设备:计算机一台。预装Windows XP、宏汇编MASM5。实验内容A:编写能够实现以下要求的汇编语言程序,并上机实现。1.编写一个4字节乘法程序,并将结果以十六进制数形式输出到屏幕上。2.给出两个4字节的乘数,用Winsows中的计算器(科学型)算出十六进制结果,再用本程序获得结果,对照二者是否相同。注意数的高、低位在内存中的放置规则。实验内容B:编写能够实现以下要求的汇编语言程序,并上机实现。1. 一个较大的汇编语言程序常需要做成多个模块,然后链接起来。这需要用到以下两条伪指令。使本模块中的符号可被其它模块使用: PUBLIC 符号在本模块中使用其它模块中的符号: EXTRN 符号:类型(类型为BYTE、WORD、NEAR、FAR等)将两个模块分别汇编,然后键接起来即可。各模块的汇编同单独程序的汇编,链接时用LINK 模块1+模块2+。将十六进制数转换成ASCII码子程序单独做成一个模块,然后与主模块链接起来。运行应该能够获得与实验内容A同样的结果。2.分析实验内容B程序有哪些变化,总结出分模块编程的方法。预习要求:1.阅读实验内容A的参考源程序,对其结构以及实现方法进行分析,在理解的基础上掌握编程方法。2.根据要求,编写实验内容B的源程序。3
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1