微机原理全部实验
微机原理综合实验报告

微机原理综合实验报告目录一.8255并行口实验二.8259中断实验(一)三.8253定时/计数器实验四.A/D转换实验五.步进电机实验六.综合实验:十字路口交通灯实验七.实验体会四.8255并行口实验1.实验目的:(1)学习利用并行接口芯片8255构成并行接口电路的基本方法(2)熟悉掌握并行接口芯片8255的基本性能及在时间应用中的硬件连接、初始化编程方法2.实验内容:编写程序,使8255的PB口为输出口,PA口为输入口,从PA口将K0~K7作为一个字节读入,在从PB口输出这一反码字节。
3.实验程序:CODE SEGMENTASSUME CS:CODESTART:MOV DX,21BH ;8255初始化命令字MOV AL,90HOUT DX,ALBG: MOV DX,218H ;从PA口读入数据IN AL,DXXOR AL,FFH ;求反MOV DX,219HOUT DX,AL ;从PB口输出JMP BGCODE ENDSEND START4.实验框图5. 实验电路图6.实验方法说明通过8255控制字设定PA口为输入口,PB口为数据输出口,读取PA口的数值并通过求反指令将数据取反后,经由PB口输出。
8259中断实验(一)1.实验目的:(1)了解PC机的中断结构及8259中断控制器的初始化(2)熟悉8259中断控制器的工作原理和硬件连线方法(3)了解8259的应用和硬件编程方法了解8259中断屏蔽2.实验内容:编写中断实验程序,主程序使8255的PB口为输出口,输出0FFH,L0~L7指示灯全亮,中断服务程序从PB口输出0FFH,L0~L3亮,L4~L7灭,并延时一段时间后返回主程序。
3.实验程序INT0 EQU 220hINT1 EQU 221hP8255B EQU 219HP8255K EQU 21BHSTACK SEGMENTSTA DB 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART:CLIMOV AX,TOPMOV SP,AXPUSH DSMOV AX,0000H ;定义IRQ0中断MOV DS,AXMOV AX,OFFSET IRQ0ADD AX,0000HMOV SI,20HMOV [SI],AXMOV AX,CSMOV SI,22HMOV [SI],AXPOP DSMOV AL,13H ;对8259进行初始化ICW1MOV DX,INT0OUT DX,ALMOV AL,8 ;对8259进行初始化ICW2 MOV DX,INT1OUT DX,ALMOV CX,0FFFFHLOOP $MOV AL,9 ;对8259进行初始化ICW4 MOV DX,INT1OUT DX,ALMOV CX,0FFFFHLOOP $MOV DX,INT1MOV AL,0FEH ;对8259进行初始化OCW1OUT DX,ALMOV CX,0FFFFHLOOP $MOV DX,INT0 ;对8259进行初始化OCW2,普通EOI返回MOV AL,20HOUT DX,ALMOV CX,0FFFFHLOOP $STIMOV DX,P8255K ;对8255进行初始化MOV AL,90HOUT DX,ALDSP: MOV AL,0FFHMOV DX,P8255BOUT DX,ALJMP DSPIRQ0: STIMOV CX,0FFFFHLOOP $MOV AL,0FHMOV DX,P8255BOUT DX,ALMOV DX,INT0MOV AL,20HOUT DX,ALMOV CX,0FFFFHLOOP $MOV CX,0FFFFHLOOP $IRETCODE ENDSEND START4.实验框图5. 实验电路图6. 实验方法说明主程序使8255输出高电平,实现L0~L7指示灯全亮。
微机原理实验报告册(3篇)

第1篇一、实验目的1. 理解和掌握微机的基本组成和工作原理;2. 熟悉微机硬件设备和实验仪器的使用方法;3. 提高动手实践能力,培养解决实际问题的能力;4. 深入理解微机原理课程内容,为后续课程学习奠定基础。
二、实验内容1. 微机系统认识实验2. 微机硬件组成实验3. 微机指令系统实验4. 微机寻址方式实验5. 微机程序设计实验6. 微机接口技术实验三、实验仪器与设备1. 微机原理实验箱2. 示波器3. 数字万用表4. 计算机一台5. 实验指导书四、实验步骤与内容1. 微机系统认识实验(1)观察实验箱的结构,了解各个模块的功能;(2)熟悉实验箱的电源、复位、运行等按钮的使用方法;(3)学习微机系统的工作流程,包括加电、复位、启动等过程;(4)观察微机系统启动后的运行状态,了解各个模块的协同工作。
2. 微机硬件组成实验(1)观察实验箱的CPU、内存、I/O接口等硬件模块;(2)学习CPU的内部结构,包括寄存器、控制单元、运算单元等;(3)学习内存的存储原理,了解ROM、RAM等存储器的特点;(4)学习I/O接口的工作原理,了解中断、DMA等传输方式。
3. 微机指令系统实验(1)学习微机指令系统的基本格式,包括操作码、地址码等;(2)掌握微机指令系统的寻址方式,包括立即寻址、直接寻址、间接寻址等;(3)编写简单的汇编语言程序,实现加、减、乘、除等运算;(4)学习微机中断处理过程,了解中断向量表、中断服务程序等概念。
4. 微机寻址方式实验(1)学习微机寻址方式的基本概念,包括直接寻址、间接寻址、寄存器寻址等;(2)编写程序,实现不同寻址方式下的数据访问;(3)观察不同寻址方式对程序执行速度的影响。
5. 微机程序设计实验(1)学习汇编语言程序设计的基本方法,包括数据定义、指令编写、程序结构等;(2)编写简单的程序,实现数据交换、排序等操作;(3)学习微机程序的调试方法,包括单步执行、断点设置等。
6. 微机接口技术实验(1)学习微机接口技术的基本概念,包括并行接口、串行接口等;(2)观察实验箱中的并行接口、串行接口等模块,了解其工作原理;(3)编写程序,实现数据在并行接口、串行接口之间的传输;(4)学习微机中断处理在接口技术中的应用。
微机原理综合实验报告

滨江学院微机原理综合实验实验报告学生姓名学号专业信息工程班级2016级二O一八年十二月三十日微机原理综合实验实验一利用DEBUG调试程序调试程序段1、实验目的1)熟悉DEBUG有关命令的使用方法。
2)利用DEBUG掌握有关指令的功能。
3)利用DEBUG运行简单的程序段。
2、实验内容1)进入和退出DEBUG程序。
2)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。
对于U命令、N命令、W命令等,也应试一下。
3)利用DEBUG,验证乘法、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。
3、实验准备1)仔细阅读有关DEBUG命令的内容,对有关命令,都要事先准备好使用的例子。
2)作为例子,准备用A命令,输入在显示器上显示字符“S”的系统调用程序段。
3)阅读将AX左移9位的程序段。
4、实验步骤1)在DOS提示符下,进入DEBUG程序。
2)在DOS目录下启动DEBUG。
3)详细记录每一步所用的命令,以及查看结果的方法和具体结果。
5、实验报告要求1)如何启动和退出DEBUG程序。
2)整理每个DEBUG命令使用的方法,实际示例及执行结果。
3)启动DEBUG后,要装入某一个.EXE文件,应通过什么方法实现?实验结果:实验二分支程序实验1、实验目的1)掌握分支程序的设计方法。
2)掌握利用DEBUG修改参数、检查结果的方法。
3)掌握汇编语言源程序的编辑、汇编、连接及调试过程。
2、实验内容1)编写一个程序,显示AL寄存器中的两位十六进制数2)编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z 或a-z字符,均显示“c”;若是回车字符<CR>(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。
3、实验准备1)编写实验内容要求的两个程序。
2)写出调试以上程序,即修改程序参数,检查结果的操作方法。
3)熟悉源程序汇编、连接命令的使用方法即要回答的内容。
微机原理实验报告

校区实验报告课程名称____________________________ 专业班级_____________________________ 学生及学号____________________________指导教师____________________________实验地点————————————————2015 ~2016 学年第二学期《微机原理与接口技术》实验一(1)实验名称存贮器部数据传送姓名系院专业电子信息类班级学号实验日期2016.6.14 指导教师成绩一、实验目的和要求1、初步掌握星研集成环境工具软件的使用方法。
2、掌握存储器部不同位置间数据传送的方法。
3、认真预习本节实验容,尝试自行编写程序,填写实验报告。
二、实验容(包括实验步骤和代码)1、编写源程序,要求将数据段中3000H~30FFH 单元的容传送给6000H~60FFH 单元中。
2、编译、连接所编写的源程序。
3、执行程序前,利用存贮器窗口将DS:3000H~300FH 中的数据改为11、22、33、44、55、66、77、88、99、AA、BB、CC、DD、EE、FF、00,存贮器窗口支持数据的直接修改功能,在相对应的地址中直接输入数据即可。
4、进入调试状态后,分别以“全速运行”、“全速断点”、“单步”、“单步进入”等方式运行程序,同时在工作区窗口的CommonRegister 视图中查看本程序所使用的寄存器(CX、DI、SI)容的变化。
5、在如下图所示的存贮器窗口中检查程序运行结果是否正确。
程序如下:.MODEL TINY ;memory mode : tiny.STACK 100 ;堆栈.CODE ;开始程序段START: MOV AX,DATAMOV DS,AXMOV ES,AXNOPMOV CX,100HMOV SI,3000HMOV DI,6000HCLDREPE MOVSBMOV CX,100HMOV SI,3000HMOV DI,6000HREPE CMPSBJNE ERRORTRUE: JMP $ERROR: JMP $END START三、实验结果及其分析1、通过该实验,成功地将数据段中3000H~30FFH 单元的容传送到了6000H~60FFH 单元中。
微机原理实验报告

目录软件实验部分:实验一清零程序实验二拆字程序实验三拼字程序实验四数据区传送子程序实验五数据排序实验实验六查找相同数个数实验七无符号双字节快速乘法子程序实验八多分支程序实验九脉冲计数(定时/计数器实验)实验十电脑时钟(定时器、中断综合实验)硬件实验部分:实验一 P1口亮灯实验实验二 P1口转弯灯实验实验三 P3.3口输入,P1口输出实验四工业顺序控制实验五继电器控制实验六 8255控制交通灯实验七 LED16×16点阵显示实验实验八串并转换实验实验九 A/D转换实验实验十 D/A转换实验十一电子音响实验十二步进电机控制实验十三 8032串行口应用实验㈠——双机通信实验十四小直流电机调速实验软件实验部分本节共编了十个软件实验,通过这些实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。
本节提供的软件实验,涉及外部数据存储器扩展寻址操作,因此需按下图连接实验线路。
1.将存储器单元的D0—D7总线接口用8芯扁平线与数据总线单元D0—D7的任一接口相连,存储器单元的A0—A7地址接口与地址总线单元(低8)A0—A7的任一接口相连,存储器单元的A8—A12地址接口与地址总线单元(高8)A8—A12的任一接口相连。
注意外部扩充的数据区的有效范围。
2.存储器单元的WE/PGM插孔与六位LED左下方的IOWE插孔相连。
3.存储器单元的OE插孔与六位LED左下方的IORD插孔相连。
4.存储器单元的CS1插孔与六位LED右下方的IOWE插孔相连。
实验一清零程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容把2000H-20FFH的内容清零三、程序框图四、实验步骤用连续或单步方式运行程序,检查2000-20FF中执行程序前后的内容变化。
五、思考假使把2000H-20FFH中的内容改成FF,如何修改程序。
微机原理实验报告

微机原理实验报告实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。
二、实验内容将两个多位十进制数相加, 要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1.DATA2为首的5个内存单元中(低位在前), 结果送回DATA1处。
三、程序框图图3-1四、参考程序清单程序名: XIANGJ.ASMDATA SEGMENTDATA1 DB 33H,39H,31H,37H,34H;被加数DATA1END EQU $-1DATA2 DB 34H,35H,30H,38H,32H;加数DATA2END EQU $-1SUM DB 5 DUP(?) DATA ENDSSTACK SEGMENTSTA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA1ENDMOV DI,OFFSET DATA2ENDCALL ADDAMOV AX,4C00HINT 21HADDA PROC N EARMOV DX,SIMOV BP,DIMOV BX,05HAD1: SUB BYTE PTR [SI],30HSUB BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05HCLCAD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BLAAAMOV [SI],ALDEC SIDEC DILOOP A D2MOV SI,DXMOV DI,BPMOV BX,05HAD3: ADD BYTE PTR [SI],30HADD BYTE PTR [DI],30H DEC SIDEC DIDEC BXJNZ AD3RETADDA ENDPCODE ENDSEND START五: 结果分析这次试验依次将相加数和被相加数存入AL, BL, 依次从低位向高位相加, 然后把结果放在内存中, 根据程序走向, 相加的结果依次放在内存地址DS:0000到DS:0004的位置上, 和我们实验预期结果一样。
微机原理(单片机汇编)实验报告
软件实验报告软件实验一一、实验目的1.熟悉软件实验的基本步骤和汇编程序的调试方法;2.了解内存块的移动方法;3.了解将十六进制数转换成ASCII值的方法。
二、实验原理用MOV和MOVX指令可以进行数据的赋值和移动,用循环可以完成大量数据的复制。
三、实验内容及步骤1、软件设置为模拟调试状态,在所建的Project文件中添加例程1的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。
打开CPU窗口,观察CPU窗口各寄存器的变化。
打开View菜单中的Memory Window,可以观察内部RAM、外部RAM的数据和程序存储器中的程序。
在Address窗口输入X:8000H后回车,观察8000H-800FF起始的256个字节单元的内容。
2、新建一个Project文件,添加例程2的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。
打开View菜单中的Memory Window,在Address 窗口的Memory#1输入X:3000H后回车,点击运行按钮后, 在Memory#2输入X:4000H后回车,观察外部RAM3000H和4000H中的内容。
3、添加将片内30H-3FH单元的内容复制片外片外1030H~103FH中的源程序,编译运行,观察比较30-3FH单元中的内容和片外1030H-103FH中的内容。
4、添加将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中的源程序,编译运行,观察结果。
5、添加求内部RAM 30H—37H单元中8个无符号数的算术和的源程序,8个无符号数设定为25H,36H,4AH,65H,7FH,82H,9BH,1DH,观察39H,38H中的数字是否分别为02H,C3H。
四、实验结果1.步骤1的结果为8000H-80FFH的内容都为1.2.步骤2的结果为3000H起始的256个字节存储块与4000H起始的256个字节存储块各单元内数据对应相同。
(完整word版)微机原理完整实验报告+程序
实验题目8253定时/计数器实验一、实验目的与要求:1。
学会8253芯片和微机接口原理和方法。
2. 掌握8253定时器/计数器的工作方式和编程原理。
二、实验内容:1、实验原理本实验原理图如图1所示,8253A的A0、A1接系统地址总线A0、A1,故8253A 有四个端口地址,如端口地址表1所示.8253A的片选地址为48H~ 4FH。
因此,本实验仪中的8253A四个端口地址为48H、49H、4AH、4BH,分别对应通道0、通道1、通道2和控制字.采用8253A通道0,工作在方式3(方波发生器方式),输入时钟CLK0 为1MHZ, 输出OUTO 要求为1KHZ的方波,并要求用接在GATE0引脚上的导线是接地(”0"电平)或甩空(”1"电平)来观察GATE对计数器的控制作用,用示波器观察输出波形。
2、实验线路连接(1) 8253A芯片的CLK0引出插孔连分频输出插孔1MHZ。
(2) 8253A的GATE0接+5V.3、实验步骤(1) 按图1连好实验线路(2)运行实验程序1.按“调试”按钮2。
选“窗口”“进入示波器窗口",然后最小化3。
按“运行按钮”4.将模拟示波器窗口打开,选择“串行口2",再按ctrl+F2 按钮即可看到波形图1显示“8253-1”用示波器测量8253A的OUT2输出插孔,应有频率为1KHZ的方波输出,幅值0~4V三、实验代码:CODE SEGMENTASSUME CS:CODETCONTRO EQU 004BHTCON2 EQU 004AHCONTPORT EQU 00DFHDATAPORT EQU 00DEHDATA1 EQU 0500HSTART: JMP TCONTTCONT:CALL FORMATCALL LEDDISPMOV DX,TCONTROMOV AL,0B6H ;要使用方式2,0B6H要改为0B4HOUT DX,ALMOV DX,TCON2MOV AL,00 ;输入频率(即时间常数)OUT DX,AL ;要修改频率,只需更改送给AL的值(注意先送低8位,MOV AL,10H ;后送高8位)OUT DX,ALHLTLEDDISP:MOV AL,90H ;显示数据方式命令字送8279控制字MOV DX,CONTPORT ;8279命令状态口OUT DX,ALMOV BYTE PTR DS:[0600H],00 ;置显示位数初值为0 LED1: CMP BYTE PTR DS:[0600H],07H ;判断显示位数满8为否?JA LED2 ;满8位转子程序返回MOV BL,DS:[0600H] ;未满8位从数据区取数MOV BH,0HMOV AL,CS:[BX+DATA1]MOV DX,DATAPORT ;8279数据口OUT DX,ALADD BYTE PTR DS:[0600H],01H ;显示位数加1JNZ LED1LED2: RET ;子程序返回FORMAT: MOV BX,0 ;显示8253———1 MOV WORD PTR DS:[BX+0500H],4006HADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2MOV WORD PTR DS:[BX+0500H],6D4FHADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BHRETCODE ENDSEND START四、思考题若改用方式2,并改变时间常数,如何编写程序。
微机原理实验
试验一存储器读写实验一、存储器读写实验目的1、熟悉静态RAM的使用方法,掌握8088微机系统扩展RAM的方法。
2、掌握静态RAM读写数据编程方法。
二、实验内容对指定地址区间的RAM(2000H~27FDH)先进行写数据55AAH,然后将其内容读出再写到3000H~33FEH中。
三、实验步骤(运行实验程序)1、运行实验程序;2、稍后按RESET键退出,用存贮器读方法检查2000H~27FDH中的内容和3000~33FF中的内容应都是55AA。
四、实验程序CODE SEGMENTASSUME CS:CODESTART: MOV AX,0HMOV DS,AXMOV BX,2000HMOV AX,55AAHMOV CX,03FFHRAMW1: MOV DS:[BX],AXADD BX,0002HLOOP RAMW1MOV AX,2000HMOV SI,AXMOV AX,3000HMOV DI,AXMOV CX,03FFHCLDREP MOVSBRAMW2: JMP RAMW2CODE ENDSEND START实验二继电器控制实验一、实验目的:掌握用继电器控制的基本方法和编程。
二、实验内容1、利用8255A PB0输出高低电平,控制继电器的开合,以实现对外部装置的控制。
2、硬件线路原理如图5-23所示3、实验预备知识:现代自动化控制设备中都存在一个电子与电气电路的互相联结问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(电动机、电磁铁、电灯等);一方面又要为电子电路的电气提供良好的电隔离,以保护电子电路和人身的安全,电子继电器便能完成这一桥梁作用。
三、连线方法1、8255A的PB0连JIN插孔。
2、将CS-8255连到Y6。
四、实验步骤1、按图连好实验线路图。
2、运行实验程序,继电器应循环吸合,L-13和L-14交替亮灭。
五、硬件线路接线图六、试验程序CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0063HIOCPT EQU 0061HSTART: MOV AL,80HMOV DX,IOCONPTOUT DX,ALNOPNOPNOPIOLED1: MOV DX,IOCPTIODE2: MOV AL,01HOUT DX,ALCALL DELAYMOV AL,00HOUT DX,ALCALL DELAYJMP IODE2DELAY: MOV CX,0FFFFHDELY: LOOP DELYRETCODE ENDSEND START实验三小直流电机调速实验一、实验目的1、掌握直流电机的驱动原理。
微机原理实验
微机原理实验第二部分实验内容《微机原理与应用》包括6个实验,其中前3个是软件编程,在PC机上完成,后3个是硬件实验,在TDN-MD实验箱上完成。
实验一顺序程序设计与调试一、实验目的1.熟悉汇编语言上机过程和上机步骤。
2.掌握汇编语言程序书写格式。
3.掌握顺序程序的设计与调试方法。
4.掌握汇编语言程序运行结果的观察方法。
二、实验设备PC机一台(安装汇编软件)。
三、实验内容分析并对比以下各程序段运行的结果。
1.两种加法指令比较(1) STCMOV AL,50HMOV BL,60HADD AL,BL(2)STCMOV AL,50HMOV BL,60HADC AL,BL2.两种加1指令比较(1) MOV AL,0FFHINC AL(2) MOV AL,0FFHADD AL,13.两种乘法指令比较(1) MOV AL,0FFH MOV BL,0FFH MUL BL(2) MOV AL,0FFH MOV BL,0FFH IMUL BL4.逻辑指令比较(1) MOV AL,55H AND AL,0FH (2) MOV AL,55H OR AL,0FH (3) MOV AL,55H XOR AL,0FH (4) MOV AL,55H TEST AL,0FH 5.移位指令比较(1) MOV AL,55H SHL AL,1(2) MOV AL,55H SHR AL, 1 (3) MOV AL,55H SAR AL, 1(4) STCMOV AL,55H ROL AL, 1 (5) STCMOV AL,55H ROR AL, 1 (6) STCMOV AL,55HRCL AL, 1(7) STCMOV AL,55HRCR AL, 1四、选作题在数据段中定义变量X、Y、Z、RESULT,计算X+Y-Z,结果存入数据段中的单元中。
其中X、Y、Z均为32位带符号数。
五、实验要求1.按汇编语言格式书写程序,在debug下进行调试、记录每组指令的运行情况,并进行分析与对比。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成绩:计算机原理实验室实验报告
课程:微机原理与接口技术
**:***
专业:测控技术与仪器
学号:*********
日期:2014年12月
太原工业学院
电子工程系
二.理论分析或算法分析
文字描述以及算法流程图(文字主要描述基本要求和扩展要求的算法流程区别)
基础要求:
1)实现两位十进制和的输出
利用了除法DIV,将商放在AL,余数放AH。
除以10后可将AL和AH中小于10的数单独输出
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)
图一:2+3=5 图二:扩展一
思考问题的个人想法,以及算法设想.
1)从键盘中输入和从屏幕上输出的都是字符,和计算用的数据时间相差‘0’即30H。
所以一个数从屏幕上输出时将+30H。
输入时转换成数字-30H
五.结论
完成了本次实验要求的输入输出.实验内容。
实现了控制台的输入输出,实现了两位十进制和的输出。
实验二:分支程序实验
实验环境PC机+Win 2003+emu8086+proteus仿真器实验日期2014-12- 一.实验内容
1.实现控制台输入输出
实现两位十进制数猜数字游戏(基本要求:输入两位数和预设数值比较,对于输出>小于输出<等于输出=并退出)
2.扩展要求
1)每次输出都换行
2)显示远大于>>(大于两倍)和远小于<<(小于二分之一)
二.理论分析或算法分析
文字描述以及算法流程图(文字主要描述基本要求和扩展要求的算法流程区别)
扩展要求:
1)在输出的变量里增加13,10.回车和换行。
2)增加变量s4 db '>>n',13,10,'$' s5 db '<<n',13,10,'$'。
判断输入的大小时,在JA时继续判断,AL*2和N比较,即左移一位和N比较。
如果还是Jbe跳转到J3。
否则将DX的偏移地址改为S4。
同理在得到远小于。
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)
基础要求源代码:
每次换行输入:
实现远小于:
实现远大于:
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)
图一:基本要求图二:扩展要求
五.结论
完成了本次实验要求的.实验内容。
学会了实现控制台输入输出
实现两位十进制数猜数字游戏(基本要求:输入两位数和预设数值比较,对于输出>小于输<等于输出=并退出)每次输出都换行显示远大于>>(大于两倍)和远小于<<(小于二分之一)
实验三:循环程序实验
实验环境PC机+Win 2003+emu8086+proteus仿真器实验日期2012/11/6
一.实验内容
1.实现内存数据访问,用两种方法对五个字从大到小排序二.扩展要求五.用冒泡法时快排
二.理论分析或算法分析
直接选择排序:
内部循环:每一次寻找找出最小的那个数放入AL中。
假设第一个数就是最小的。
一次和后面的几个数进行比较,修正AL中的数,使每
外层循环:初始化BL。
初始化比较两个数的指针。
当BL=0时,提前退出循环。
次最小的都放在AL中。
外部循环:内部循环第一次结束后,将移动指向首地址的指针,后移2个字节。
再继续内部循环。
循环初始次数:CX=LENGTH-1
冒泡排序:
内部循环:相邻的两个数进行比较。
如果前面的数大于后面的数将交换,否则继续下一次的比较,记录下内部循环一轮技术后,交换的次数BL。
图一:直接选择排序图二:冒泡排序
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等
基本要求源代码:冒泡排序关键代码:
直接排序出现的问题:在该排序中每次都将最小的放在了DL中。
必须有MOV [SI],DL,不然将造成数据丢失,执行结果出现错误。
冒泡排序:初始内存中的数据为A DW '5','7','1','2','9' ,执行后,CX=1时提前退出。
实现了快速排序。
思考内容:冒泡排序之所以能实现快速排序,是每一次排序都将最大或最小的放在最后或最前,并且有个来统计交换的次数,一旦交换的次数为0时直接退出循环。
五.结论:
完成了本次实验要求的实验内容。
学会了实现内存数据访问,用两种方法实现对五个字从大到小排序。
实验四:子程序及中断实验
实验环境PC机+Win 2003+emu8086+proteus仿真器实验日期
一.实验内容
1.实现子程序和中断服务子程序的设计;
2.编写子程序设置40H中断为自定义中断服务子程序;
3.编写中断服务子程序实现AX=AX+BX;
4.编写主程序调用子程序和中断。
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)执行前:
执行后:
五.结论
本次实验实现子程序和中断服务子程序的设计,编写子程序设置40H中断为自定义中断服务子程序,编写中断服务子程序实现AX=AX+BX,编写主程序调用子程序和中断,加深了对知识的理解。
实验五:存储器访问实验
实验环境PC机+Win 2003+emu8086+proteus仿真器实验日期
一.实验内容
3.实现存储器串操作访问
4.编程实现安全的串拷贝功能
扩展要求:
1.源串和目的串有重叠的处理方法
二.理论分析或算法分析
文字描述以及算法流程图(文字主要描述基本要求和扩展要求的算法流程区别)
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)执行前变量STR1,STR2.STR3的内存图:执行后:
五.结论:
完成了本次实验要求的实验内容。
学会了实现存储器串操作访问,编程实现安全的串拷贝功能。
实验六:8255交通灯实验
实验环境PC机+Win 2003+emu8086+proteus仿真器实验日期
一.实验内容
1.使用IO方式实现十字路口交通灯控制
2.分别实现南北向和东西向绿灯等时和不等时的控制
二.扩展要求
1.如何实现丁字路口交通灯
思考内容:
1.交通灯状态与IO的关系
2.IO端口的寻址方式。