电气2009微机原理实验指导书
微机原理实验指导书
实验一初级程序的编写与调试一、实验目的1、熟练掌握的DEBUG常用命令,学会用DEBUG调试程序;2、深入了解数据在存储器中的存取方法,及堆栈中数据的压入与弹出;3、掌握各种寻址方法以及简单指令的执行过程。
二、实验内容1、设堆栈指针SP=2000H,AX=3000H,BX=5000H,请编一程序段将AX的内容和BX的内容进行交换。
请用堆栈作为两寄存器交换内容的中间单元,用DEBUG调试程序进行汇编与调试。
2、设DS=当前段地址,BX=0300H,SI=0002H,请用DEBUG的命令将存储器偏移地址300H—304H连续单元顺序装入0AH、OBH、0CH、0DH、0EH。
在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程。
当每条数据传送完毕时,AX中的内容是什么。
程序清单如下:MOV AX,BXMOV AX,0304HMOV AX,[0304H]MOV AX,[BX]MOV AX,0001[BX]MOV AX,[BX][SI]MOV AX,0001[BX][SI]HLT3、设AX=0002H,编一个程序段将AX的内容乘10,要求用移位的方法完成。
三、实验要求1、实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,对程序结果的分析等。
2、本实验要求在PC机上完成。
3、本实验只要求在DEBUG调试程序状态下进行,包括汇编程序,调试程序,执行程序。
4、编程提示:(1)、实验内容1将两个寄存器内容进行交换时,必须有一个中间寄存器才能进行内容的交换。
如果用堆栈作为中间存储单元,必须遵循先进后出的原则。
(2)、实验内容2[1] 其中数据段寄存器中的段地址为进入DEBUG状态后系统自动分配的段地址。
[2] SI和BX的初值可在DEBUG的状态下,用R命令装入,也可以在程序中用指令来完成。
[3] 用T命令执行程序,可进行单步跟踪执行,每执行一条指令就可以看到各寄存器的状态,也可用R命令直接调出寄存器,来检查各寄存器内容是否正确。
微机原理实验指导书09测控
微机原理实验指导书山东大学威海分校机电信息工程学院2010年9月目录实验一 1)十六进制数变为ASCII码并显示2)查键码并显示其值实验二系统认识实验实验三数制转换实验实验四运算类编程实验实验五综合编程实验(分支程序设计实验、循环程序设计实验、子程序设计实验)实验六静态存储器扩展实验实验七 8259中断控制实验实验八 8254(8253)定时/计数器应用实验实验九 8255并行接口实验实验十 DMA特性及8237应用实验附录1 Wmd86 V5.2联机软件使用说明附录2 系统编程信息实验一 1)十六进制数变为ASCII码并显示内容:两字节16进制数已在内存SOURCE_BUF中,变为ASCII码并显示。
目的:(1)熟悉PC机上 .EXE文件的汇编文件源文件格式。
(2)掌握清屏及置光标位置的方法。
(3)编写十六进制数变ASCII码子程序。
步骤:(1)在PC机上C:\MASM 目录下,将DHEXASC1.ASM拷贝为ABC1.ASM,打开全屏幕编辑器EDIT,打开源程序ABC1.ASM,检查无错。
(2)运行MASM.EXE 文件对 ABC1.ASM进行汇编生成ABC1.OBJ文件。
(3)运行LINK.EXE 文件对 ABC1.OBJ进行连接生成ABC1.EXE文件。
(4)运行ABC1.EXE 应正确显示SOURCE_BUF中内容并返回DOS。
(5)改变SOURCE_BUF中内容和光标位置,重复(1)—(4)步骤。
实验程序如下(DHEXASC1.ASM):DATA SEGMENTSOURCE_BUF DW 1234H ;内存中为34H,12HDEST_BUF DB 0,0,0,0,“H$”;字符串,$结尾DATA ENDSASTACK segment STACKXY_BUF DB 50 DUP(0)ASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:ASTACKSTART: MOV AX,DATA ;数据段段址,等同 MOV AX,SEG DEST_BUFMOV DS,AX ; DS指向数据段LEA SI,SOURCE_BUFLEA DI,DEST_BUFMOV AX,0600H ; AL=0MOV BH,7 ;显示属性,黑底白字不闪MOV CX,0MOV DH,24MOV DL,79INT 10H ;清屏MOV DH,8 ;行MOV DL,20 ;列MOV BH,0 ;0页MOV AH,2INT 10H ;置光标MOV AH,[SI+1] ;取待显数(高字节)MOV AL,AH ;高字节→ ALAND AL,0FH ;低4位CALL far ptr ASCI ;变ASCIIMOV [DI+1],AL ;高字节低4位存MOV AL,AH ;高字节MOV CL,4SHR AL,CLCALL far ptr ASCI ;高字节高4位变ASCIIMOV [DI+0],AL ;高字节高4位存MOV AH,[SI] ;取低字节MOV AL,AHSHR AL,CL ;低字节高4位CALL far ptr ASCI ; 变ASCIIMOV [DI+2],ALMOV AL,AH ;低字节AND AL,0FH ;低字节低4位CALL far ptr ASCIMOV [DI+3],ALMOV DX,DI ;DX指向高字节高4位MOV AH,09HINT 21H ;显示字符串,至 $ 结束MOV AH,02HMOV DL,0AH ;换行INT 21HMOV AH,4CH ;返回DOSINT 21HASCI PROC FAR ;将0~9,A~F变为ASCII码ADD AL,30HCMP AL,3AH ;(AL)-3AHJL AS9 ;小于3AH则去AS9ADD AL,07H ;不小于则为A~F(41H~ 46H)AS9: RETASCI ENDPCODE ENDSEND START练习题:将程序改为,内存中有两个16位无符号数,求它们的差,并显示结果。
微机原理实验指导书
前言《微型计算机原理及应用》是一门实践性很强的专业技术基础课,因此,必须在课堂教学的基础上配以足够的实验或实践性教学环节,以便理论联系实际,使学生能深入理解课堂教学内容,加强学生动手能力,以加深对理论学习的理解和掌握,提高学生分析问题﹑解决问题的能力。
本实验指导书是《微型计算机原理及应用》一书的配套教材。
该实验指导书紧密结合教材内容,使用复旦大学科教仪器厂生产的FD-SJ8088A微机实验系统,合理安排了微机实验。
全书共分二部分。
第一部分汇编语言上机操作及程序调试方法及软件部分实验第二部分FD-SJ8088A微机实验系统介绍及硬件部分实验对于每一个实验都给出了实验目的﹑实验内容﹑预习要求﹑报告要求﹑实验提示﹑思考题。
实验提示部分我们仅给出部分文字提示和参考流程图,以作为学生自己编程时的参考。
我们主张学生在做实验前,必须要充分预习,充分准备,要依靠自己在实验前编出的程序,经过实验调试改正程序,得出正确的结果。
这样做实验,才能真正有收获,才能真正提高分析问题和解决问题的能力。
本实验指导书在编写的过程中,得到了本系的领导和老师的支持﹑指导和帮助,在此表示衷心的谢意。
由于编者水平有限,书中不妥或错误之处在所难免,欢迎大家在使用中提出宝贵意见。
编者2005年8月目录实验须知 (3)第一部分汇编语言上机操作及软件部分实验实验一汇编语言上机环境的熟悉和命令使用 (4)实验二利用D E B U G命令调试程序 (7)实验三利用中断指令进行输入输出程序设计 (9)实验四汇编语言综合编程实验 (11)第二部分硬件部分实验FD88调试软件 (12)实验五简单I/O接口控制实验 (21)实验六 8255 接口控制实验 (21)实验须知一、预习要求1.实验前认真阅读实验教程中有关内容,明确实验目的、内容和实验任务。
2.每次实验前做好充分的预习,对所需预备知识做到心中有数。
3.实验前应编好源程序,并对调试过程、实验结果进行预测。
《微机原理》实验指导书(加硬件)改
微型计算机原理实验指导书襄樊学院物理与电子信息工程系实验要求1.进入实验室前完成的部分1)认真阅读实验指导书,弄懂实验原理和实验内容。
分析实验内容A程序的结构、实现方法。
2)编写实验所要用到的程序,将其放在U盘上。
3)写出预习报告(其中应有实验内容A、B的程序清单)。
2. 进入实验室后完成的部分1)对实验内容A对其进行汇编、链接获得可执行文件。
运行可执行文件,实现实验内容A的要求。
2)对实验内容B的程序进行调试,修改错误,获得要求的结果。
3)保存调试后的程序。
3.实验结束后的部分对实验结果进行分析、总结,写出实验报告。
实验报告内容及格式1.实验目的2.实验设备3.实验内容只做文字叙述,程序部分放在程序清单中。
4.程序清单实验内容B的完整程序。
如果使用了本实验或前面实验中完全相同的子程序,可不列写,只做注明即可。
实验内容A的程序清单放在预习报告中,不再列写。
5.实验步骤6.实验总结主要包括对实验结果、调试过程、错误及产生的原因的分析,以及本次实验的重要收获等。
此项为实验成绩评定的重要依据。
汇编语言程序的上机过程本章内容在实验一~实验六中使用。
1.实验环境在计算机的C盘(也可以是其他盘符)下,有一个MASM50(也可能是其他文件名)文件夹,在这个文件夹下存放着对汇编语言源程序进行汇编、调试所需要的各种文件。
2.建立源程序可以用你熟悉的文本编辑器,如记事本、写字板等来建立一个源程序文件。
但需要注意以下几点:(1)在“我的电脑\工具\文件夹选项\查看\”中将“隐藏已知文件类型的扩展名”上的“√”去掉。
(2)源程序文件的文件名应该是*.asm,如果不是应进行修改。
(3)源程序文件中的字符必须是西文半角字符,不能使用中文全角字符。
(4)不要把数字“0”错写成字符“O”,或者把字符“O”错写成数字“0”。
3. 进入DOS系统在Windows XP的“附件”中有一个“命令提示符”,运行它即可进入DOS系统。
4. 在DOS系统中进入文件夹E:\>CD 文件夹名↙。
微机原理实验指导书
实验一数据传送实验目的:1.熟悉8086指令系统的数据传送指令及8086的寻址方式。
2.利用TurboDebugger调试工具来调试汇编语言程序。
实验任务:1.通过下述程序段的输入和执行来熟悉TurboDebugger的使用,并通过显示器屏幕观察程序的执行情况。
练习程序段如下:MOVBL,08HMOVCL,BLMOVAX,03FFHMOVBX,AXMOVDS:[0020H],BX2.用以下程序段将一组数据压入(PUSH)堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。
压栈程序段如下:MOVAX,0102HMOVBX,0304HMOVCX,0506HMOVDX,0708HPUSHAXPUSHBXPUSHCXPUSHDX出栈程序段请自行编写(用不同的出栈顺序)。
3.指出下列指令的错误并加以改正,上机验证之。
(1)MOV[BX],[SI](2)MOVAH,BX(3)MOVAX,[SI][DI](4)MOVBYTEPTR[BX],2000H(5)MOVCS,AX(6)MOVDS,2000H4.设置各寄存器及存储单元的内容如下:(BX)=0010H,(SI)=0001H(10010H)=12H,(10011H)=34H,(10012H)=56H,(10013H)=78H(10120H)=0ABH,(10121H)=0CDH,(10122H)=0EFH说明下列各条指令执行完后AX寄存器中的内容,并上机验证。
(1)MOVAX,1200H(2)MOVAX,BX(3)MOVAX,[0120H](4)MOVAX,[BX](5)MOVAX,0110H[BX](6)MOVAX,[BX][SI](7)MOVAX,0110H[BX][SI]5.将DS:1000H字节存储单元中的内容送到DS:2020H单元中存放。
试分别用8086的直接寻址、寄存器间接寻址、变址寻址、寄存器相对寻址传送指令编写程序段,并上机验证结果。
微机原理实验指导书 (1)
实验一系统操作及程序调试举例1.实验目的学习并掌握实验系统的基本操作,为以后的实验打下基础。
2.实验设备DICE-8086B实验系统一台3.实验准备工作系统一经连好,检查无误后,就可以通电运行。
系统提供两种启动方式,即:系统自动完成后,显示器上会显示“>”提示符,等待键入操作命令。
4.实验内容及步骤(1)系统操作练习(一)要求:从3500内存单元开始建立0~15共16个数据。
程序流程图如下:实验步骤①输入与修改:在“﹥”提示符下键入A2000,此时显示器上将会显示程序的段地址CS和偏移地址IP(=2000H),接着就可以在光标处输入程序。
注:在输入过程中,若发现本行有错误,则可以按“ ”键删除并重新输入;若回车后系统提示“ERROR!”,则要在原地址指针处重新正确输入。
输入程序后可通过反汇编查看程序。
(U操作)②程序运行:在DICE-8086B实验系统上,程序的运行方式有单步、连续和断点运行几种方式。
可参考(T操作,G操作,GB操作等)③内存单元的修改与显示:用(D操作)可显示内存单元的内容,用(E操作)可修改内存单元的内容。
(分别参考前)。
④运行程序观察从3500H单元开始连续存放的16个数据为多少?任意修改AX的值,再运行程序,显示运行结果是否正确?流程图及参考程序如下:地址机器码助记符注释2000 BF 3500 MOV DI,3500 ;设数据区首址2003 B9 0010 MOV CX,0010 ;字节数送CX2006 B8 0000 MOV AX,00002009 9E SAHF200A 88 05 MOV B[DI],AL ;写入一字节200C 47 INC DI ;修改地址指针200D 40 INC AX ;修改数据200E 27 DAA ;十进制调整200F E2 F9 LOOP 200A ;未填完转移2011 CD 00 INT(2)系统操作练习(二)要求:将内存3500单元开始的0~15共16个数传递到3600单元开始的数据区中。
微机原理实验指导书
微机原理实验指导书实验一数据传送实验目的 :1. 熟悉 8086 指令系统的数据传送指令及 8086 的寻址方式。
2. 利用 Turbo Debugger 调试工具来调试汇编语言程序。
实验任务 :1.通过下述程序段的输入和执行来熟悉Turbo Debugger 的使用,并通过显示器屏幕观察程序的执行情况。
练习程序段如下:MOV BL , 08HMOV CL , BLMOV AX , 03FFHMOV BX , AXMOV DS : [0020H] , BX2.用以下程序段将一组数据压入( PUSH )堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。
压栈程序段如下:MOV AX , 0102HMOV BX , 0304HMOV CX , 0506HMOV DX , 0708HPUSH AXPUSH BXPUSH CXPUSH 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 , 2000H4. 设置各寄存器及存储单元的内容如下:(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 单元中存放。
PLC实验指导书2009版_3
六、实验报告:(在实验四或二中选取一个实验编写实验报告) 1.说明实验方法,写出实验原理,实验目的。 2.画出 FX2N-32MR 型 PLC 的 I/O 接线端子图和相关电路图。 3.写出实验 PLC 梯形图。 4.写出实验调试步骤和过程。 5.写出验证运行结果和 PLC 运行现象。 6.分析实验成功经验或不成功的因素。
四、实验要求:
1. 按实验要求分配 PLC 的 I/O 地址。
2. 按实验内容设计实验梯形图和指令语句表。
3.在四节传送带模拟控制模型上实现实验内容提出的要求。
五、实验步骤:
1.设计实验方法。
2.分配 PLC 控制器 I/O 端口,画出 I/O 端口接线图和相关电路图。
11
3.设计 PLC 程序。 4.联接 PLC 接线,接通 PLC 电源,下载 PLC 程序。 5.调试程序,修改程序,直到实现实验要求,记录实验结果。 六、实验报告: 1.说明实验方法,写出实验原理,实验目的。 2.画出 FX2N-32MR 型 PLC 的 I/O 接线端子图和相关电路图。 3.写出实验 PLC 梯形图。 4.写出实验调试步骤和过程。 5.写出验证运行结果和 PLC 运行现象。 6.分析实验成功经验或不成功的因素。
4
实验 3 PLC 高级指令实验 一、实验目的:
1. 进一步熟悉编程软件的使用方法。 2. 了解 FX 系列 PLC 字元件和高级模块功能。 3. 掌握 FX 系列 PLC 的高级指令的使用和编程方法。 二、实验装置: 1. QSPLC 系列可编程控制模拟实验台之开关量输入/输出模块。 2. FX2N-32MR 型可编程序控制器。 三、实验内容: 1. 比较传送与数据变换指令。 2. 算术运算与逻辑运算指令。 3. 循环移位与移位指令。 4. 数据处理指令。 四、编程要求: 1. 数据变换操作。 在 X0~X3 作为 BCD 码个位输入,X10~X17 作为 BCD 码的十位和百位输入,将他 们结合为 3 位 BCD 码,结果放在字存储单元中,再将 BCD 码变换成二进制数放在字 存储单元中。 2. 算术运算操作。 已知z0 = 0时w0 = 10;z1 = 10时w1 = 100,w、z为线性函数,试用PLC计算当z = 515 时所对应的w值。将z放在字存储单元中,计算结果w放在字存储单元中。 3. 时种控制指令。 将 PLC 的实时时钟设置为做实验时上课打铃时间。 4. 编制一个自动控制程序,要求能实现按上课作息时间,输出打铃信号,每次 打铃时间 30 秒(用一个指示灯代替电铃,调试时可适当缩小作息时间间隔)。 五、实验步骤:(按每个实验要求分别进行) 1. 设计实验方法。 2. 分配 PLC 控制器 I/O 端口,画出 I/O 端口接线图和相关电路图。 3. 设计 PLC 程序。 4. 联接 PLC 接线,接通 PLC 电源,下载 PLC 程序。 5. 调试程序,实现实验要求结果。
微机原理实验指导书
微机原理及程序设计实验指导书班级:姓名:学号:指导老师:完成日期:微机原理实验实验要求及运行环境交打印版实验报告,实验要求:实验成绩百分制(总分100分)实验预习(30分)实验过程(40分)提前预习,标好程序注释,修改好程序;10分个人按要求独立完成,填好实验结果,按时交实验报告20分不做与本实验无关的事(如玩游戏、聊天、打电话、听音乐等)10分不得缺席,实验签名,不代他人签名10分带走自己的垃圾,保持实验室卫生,电脑设备桌椅摆设整齐,保管好个人物品5分按秩序进出实验室,不拥挤,注意安全,爱护设备,保证设备完好5分实验结果,实验中经老师检查过10分实验报告(30分)报告按统一格式要求填写,包括:课程名称、姓名、学号、班级任课老师等5分实验报告包括实验目的、实验内容、程序框图、程序清单、实验要求5分读懂程序加注释(每句注释10+分段注释5)(手写)15分程序修改,实验要求的完成及结果5分2、实验运行环境在电脑中装ASM Masm for windows 集成实验环境2008。
双击图标打开ASM MasM for windows 集成实验环境运行工作界面,输入实验程序代码,调试、改错、保存、运行、查看结果,进行记录。
运行结果显示:实验一两个多位十进制数相加的实验一、实验目的1、学习数据传送和算术运算指令的用法。
2、熟悉在PC机上建立、汇编、链接、调试和运行8088汇编语言程序的过程。
二、实验内容将两个多位十进制数相加。
要求被加数均以ASCII码形式各自顺序存放在以DA TA1和DA TA2为首的5个内存单元中(低位在前),结果送回DATA1处。
三、程序框图四、程序清单CRLF MACRO ;宏定义,宏名:CRLFMOV DL, 0DH ;把0DH给DLMOV AH, 02H ; 把02H给AHINT 21H ;系统功能调用——实现回车功能MOV DL, 0AH ;把0AH给DLMOV AH, 02H ; 把02H给AHINT 21H ;系统功能调用——实现换行功能ENDM ;宏定义结束——本段实现回车换行功能DATA SEGMENT;数据段定义,段名DA TADATA1 DB 33H, 39H, 31H, 37H, 34H(, 3);变量DA TA1中装入加数DATA2 DB 36H, 35H, 30H, 38H, 32H;变量DATA2中装入被加数DATA ENDS;数据段定义结束——本段实现了两个数据的定义STACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACK, ES:DATASTART: MOV AX, DATAMOV DS, AXMOV AX, STACKMOV SS, AXMOV AX, TOPMOV SP, AXMOV SI, OFFSET DA TA2MOV BX, 05 ;06CALL DISPLCRLFMOV SI, OFFSET DA TA1MOV BX, 05 ;06CALL DISPLCRLFMOV DI, OFFSET DATA2CALL ADDAMOV SI, OFFSET DA TA1MOV BX , 05 ;06 |CALL DISPLCRLFMOV AX, 4C00HINT 21HDISPL PROC NEARDS1: MOV AH, 02MOV DL, [SI+BX-1]INT 21HDEC BX ;BX-1JNZ DS1 ;相等则转移RETDISPL ENDPADDA PROC NEARMOV DX, SIMOV BP, DIMOV BX, 05 ;06 | 07AD1: SUB BYTE PTR [SI+BX-1] , 30HSUB BYTE PTR [DI+BX-1] , 30HDEC BXJNZ AD1MOV SI, DXMOV DI, BPMOV CX, 05 ;06CLCAD2: MOV AL, [SI]MOV BL, [DI]ADC AL, BLAAAMOV [SI] , ALINC SIINC DILOOP AD2MOV SI, DXMOV DI, BPMOV BX, 05AD3: ADD BYTE PTR [SI+BX-1], 30HADD BYTE PTR [DI+BX-1], 30HDEC BXJNZ AD3RETADDA ENDPCODE ENDSEND START五、实验要求1.读懂源程序,写出源程序注释。
微机原理实验指导书(注释版修正版)-1
微机原理实验指导书(版本0.1)余有灵副教授控制科学与工程系2007年11月13日说明本实验指导书是依据西安唐都科教仪器公司的产品手册编制,在实验中心相关领导和实验工作人员的帮助下完成的,在此表示感谢。
实验一 显示程序实验1. 实验目的(1) 掌握在PC 机上以十六进制形式显示数据的方法。
(2) 掌握部分DOS 功能调用使用方法。
(3) 熟悉Tddebug 调试环境和Turbo Debugger 的使用。
2. 实验设备PC 微机一台。
3. 实验内容及说明一般来说,有很多程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。
本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS 功能调用完成一些提示信息的显示。
实验中可使用DOS 功能调用(INT 21H )。
(1) 显示单个字符输出 入口:AH=02H 调用参数:DL=输出字符 (2) 显示字符串 入口:AH=09H 调用参数:DS:DX=串地址,’$(3) 键盘输入并回显 入口:AH=01H 返回参数:AL=输出字符 (4) 返回DOS 系统入口:AH=4CH调用参数:AL=返回码4. 实验步骤(1) 运行Tddebug 软件,选择Edit 菜单,根据实验内容的描述编写实验程序,本实验显示部分参考实验流程如图2-1-1示。
(2) 使用Compile 菜单中的Compile 和Link 对实验程序进行汇编、连接。
(3) 使用Rmrun 菜单中的Run ,运行程序,观察运行结果。
(4) 使用Rmrun 菜单中的Debug ,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容。
(5) 更改数据区中的数据,考察程序的正确性。
图1 显示程序实验流程图5. 参考程序清单;显示程序实验STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENT MES DB 'Press any key to exit!',0AH,0DH,0AH,0DH,'$' MES1 DB 'Show a as hex:',0AH,0DH,'$' SD DB'a'16位段模式DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AXMOV ;显示退出提示MOV AH,09HINT 21HMOV DX,OFFSET MES1 ;show messageMOV AH,09HINT 21HMOV SI,OFFSET SDMOV AL,DS:[SI]AND AL,0F0H;取高4位SHR AL,4CMP AL,0AH ;是否是A 以上的数JB C2ADD AL,07H C2:ADD AL,30HMOV DL,AL ;show characterMOV AH,02HINT 21HMOV AL,DS:[SI]AND AL,0FH ;取低4位CMP AL,0AHJB C3ADD AL,07H C3:ADD AL,30HMOV DL,AL ;show characterMOV AH,02HINT 21HKEY:MOV AH,1 ;判断是否有按键按下?INT 16HJZ KEY C2也是一个标号,可以用跳转循环指令直接跳到这个标号所在的代码行执行MOV AX,4C00H ;go back to dosINT 21HCODE ENDSEND START。
微机原理实验指导书(注释版修正版)-4-1
微机原理实验指导书(版本0.1)余有灵副教授控制科学与工程系2007年12月11日说明本实验指导书是依据西安唐都科教仪器公司的产品手册编制,在实验中心相关领导和实验工作人员的帮助下完成的,在此表示感谢。
实验4-1 8255并口控制器应用实验1.实验目的(1)掌握8255的工作方式及应用编程。
(2)掌握8255的典型应用电路接法。
2.实验设备PC微机一台、TD-PIT+ 实验系统一套。
3.实验内容(1)基本输入输出实验。
编写程序,使8255的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就改变。
(2)流水灯显示实验。
编写程序,使8255的A口和B口均为输出,实现16位数据灯的相对循环显示。
4.实验原理并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V式0--基本输入/1--选通输入/出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图4-1-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图4-1-2所示。
图4-1-1 8255的内部结构及引脚8255基本用法:首先片选8255,且WR=1和A1A0=11,把数据D7~D0写入8255的控制寄存器,初始化工作方式和ABC口的IO模式其次,A1A0=xx(00~10),选定某个端口(A~C),如果WR=1,则数据D7~D0输出到该端口,如果RD=1则该端口的数据输入到总线D7~D0(a)工作方式控制字(b)C口按位置位/复位控制字图4-1-2 8255控制字格式5.实验说明及步骤(1)基本输入输出实验本实验使8255端口A工作在方式0B0用一组开关信号接入端口B,端口A输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-E地址 内容表
例如:-E 2000:0100 F3 “XYZ” 8D
其中F3,“X”“Y”“Z”和8D各占一个字节,用这五个字节代替原内存
单元2000:0100到0104的内容,“X”“Y”“Z”将分别按它们的ASCII码值
代入。
逐个单元相继地修改:
-E地址
例如:-E 100
18E4:0100 89.78
1.在数据段中定义以上的字符串; 2.利用DOS功能调用输出字符串 四.实验报告 编写实验内容1的实验程序并记录实验结果。
实验二 分支程序的设计
一、实验目的 1.熟练掌握编写汇编语言源程序的基本方法和基本框架; 2.学会编写分支程序设计的方法;
3.学会使用DOS中断方式输出字符串;
二、实验内容 1.假设有一组数据:5,-4,0,3,100,-51,请编一程序,判
3.熟悉汇编过程中一些常见出错信息。 二.实验内容
1.定义字符串‘Welcome To our SCHOOL’,将其中的英文的大写 字母转换为小写字母,并统计其中转换了的字母个数。
2.将转换后的字符串在屏幕上显示出来,并分行显示字母的个数。 三.实验提示
1.在数据段中定义以上字符串; 2.根据大小写字母之间的ASCII码差值,进行转换; 3.利用DOS功能调用输出字符串和字母个数; 四.实验报告: 1.画出程序流程图, 2.写出实验内容正确的源程序清单和执行结果。
四、实验报告要求 写出实验内容正确的源程序清单和执行结果。
实验五 混合程序的设计
一、实验目的 1.掌握多种程序设计的方法;
2.熟悉输入输出的调用过程; 3.灵活的实现方法和数据处理技术。
二、实验内容 在屏幕上输入一个小于65535的数值,按“+”后,再输入一个数
值,按“=”后,现实两数的和。 要求: (1)输入数据提示:INPUT A DICEMAL NUMBER<65536: (2)输入“+”后显示:INPUT ONE ANOTHER DICEMAL NUMBER<65536: (3)输入“=”后显示运算的结果。
断:每个数是否大于0?等于0?还是小于0,并输出其判断结果。 即:当x>0时,在屏幕上显示y=1; 当x=0时,在屏幕上显示y=0; 当x<0时,在屏幕上显示y=-1;
三、编程提示 1.首先将原始数据(5,-4,0,3,100,-51)装人存储单元中,
在数据段中进行定义。 2.将判断结果以字符串的形式存放在数据区中,以便在显示输出
三.实验提示 (1)可以使用通用寄存器也可以使用存储单元保存加数和被加数。 (2)利用1号调用输入数据,利用2号功能显示数据。 (3)可以循环,也可以不循环
四、实验报告要求 写出实验内容正确的源程序清单和执行结果。
附件:DEBUG调试程序
DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设 置断点等方式为汇编语言程序员提供了非常有效的调试手段。 1、DEBUG程序的启动
《微机原理与程序设计》
实验指导书
实验一:熟悉汇编语言程序的开发环境 实验二:分支程序的设计 试验三:循环程序的设计 试验四:子程序设计 实验五:混合程序设计 实验指导老师:于仲安、张振利
自动化与电气工程实验中心 2011.10.15
实验一 熟悉汇编语言程序开发环境
一.实验目的
1.熟悉在汇编语言程序的编辑、汇编、连接、调试和运行的过程; 2.熟悉汇编过程中一些常见出错信息; 3.掌握简单的DEBUG调试命令。 二.实验内容 1. 编写一个简单的汇编语言程序,要求程序运行后在平屏幕上显示 字符串: my name is ××× 其中×××为你自己的名字的汉语拼音,在数据段中定义。 2. 用DEBUG命令进行调试,掌握简单的命令调试程序 三、编程提示
OV DN EI NG ZR AC PE CY-PONZDINV ⑻ 退出DEBUG命令Q,该命令格式为 -Q 它退出DEBUG程序,返回DOS,但该命令本身并不把在内存中的 文件存盘,如需存盘,应在执行Q 命令前先执行写命令W。
DI
符号Sign(负/正)
NG
PL
零Zero(是/否)
ZR
NZ
辅助进位Auxiliary
AC
NA
Carry(是/否)
奇偶Parity(偶/奇)
PE
PO
进位Carry(是/否)
CY
NC
显示和修改某个指定寄存器内容,格式为:
-R 寄存器名 例如打入:-R AX 系统将响应如下: AX F1F4 : 表示AX当前内容为F1F4,此时若不对其作修改,可按ENTER键, 否则,打入修改后内容,如: -R BX BX 0369 :059F 则BX内容由0369改为059F 显示和修改标志位状态,命令格式为: -R F 系统将给出响应,如 OV DN EI NG ZR AC PE CY这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键 入顺序任意。如
实验四 子程序的设计
一、实验目的 1.掌握子程序设计的方法和编程技术; 2.熟悉输入输出的调用过程; 3.掌握子程序中参数传递的方法。
二、实验内容
十进制数转换为十六进制:运行程序,提示输入一个小于65535的十 进制数,输入后按回车键确定,换行输出相应的十六进制数。
要求: (1)输入数据提示:INPUT A DICEMAL NUMBER<65536 end with enter: (2)出错提示,当输入的数据不在0-9之间,出现错误提示:INPUT IS ERROR! (3)可以循环多次转换,当不需要转换时,按空格键退出。 (4)信息的提示和输入数据、转换后的数据等都要分行显示。
三.实验提示 (1)根据要求,可以设计三个子程序,其一为数据输入,转换为相应
的二进制数;其二为将转换后的数据以十六进制形式输出;其三为换行 和回车的输出。
(2)子程序设计时参数的传递,我们可以利用较简单的寄存器传递参 数。
(3)提示信息的定义和输出,09H功能调用。 (4)子程序的调用和返回。 (5)字符输入输出的DOS功能的调用,输入01H、输出02H。 (6)为了实现多次转换,必须实现程序的循环执行。
此命令是将原100号单元的内容89改为78。78是程序员键入的。
⑺ 检查和修改寄存器内容的命令R,它有三种方式:
显示CPU内部所有寄存器内容和标志位状态:
-R
R命令显示中标志位状态的含义如下表所示:
标志名
置位
复位
溢出Overflow(是/否)
OV
NV
方向Direction(减量/增量) DN
UP
中断Interrupt(允许/屏蔽) EI
该命令从指定地址起执行一条指令后停下来,显示寄存器内容和 状态值。
多条指令追踪:-T[=地址][值] 该命令从指定地址起执行n条命令后停下来,n由[值]确定。
⑸ 显示内存单元内容的命令D,格式为:-D[地址]或-D[范围]
⑹ 修改内存单元内容的命令E,它有两种格式:
用给定的内容代替指定范围的单元内容:
在DOS提示符下,可键入命令:
C>DEBUG[E:][path][文件名][ 参数1][参数2] 其中文件名是被调试文件的名称,它须是执行文件(EXE),两个 参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后, 出现提示符“一”,此时,可键入所需的DEBUG命令。 在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件 装入内存。用户可以通过DEBUG的命令对指定文件进行修改、显示和 执行。如果没有文件名,则是以当前内存的内容工作,或者用命名命令 和装入命令把需要的文件装入内存,然后再用DEBUG的命令进行修 改、显示和执行。 2、DEBUG的主要命令 ⑴ 汇编命令A,格式为:-A[地址] 该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码 相继存放在从指定地址开始的存储器中。 ⑵ 反汇编命令U,有两种格式:-U[地址] 该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一 个U命令的最后一条指令的下一个单元开始显示32个字节。 -U范围 该命令对指定范围的内存单元进行反汇编,例如: -U 04BA:0100 0108 ⑶ 运行命令G,格式为: -G [=地址1][地址2[地址3。。。]] 其中地址1规定了运行起始地址,后面的若干地址均为断点地址。 ⑷ 追踪命令T,有两种格式: 逐条指令追踪:-T[=地址]
时调用。 3.其中判断部分可采用CMP指令,得到一个分支结构,对应输
出“y=0”,“y=+1”,“y=-1”之一。 4.程序中存在一个循环结构,循环6次,调用6次分支结构后结
束。
四、实验报告要求 按要求编写出原程序并记录实验结果。
实验三 循环程序的设计
一.实验目的 1.掌握循环程序设计的方法和编程技术; 2.熟悉输入输出的调用过程;