微机原理实验报告
微机原理实验报告清零程序
竭诚为您提供优质文档/双击可除微机原理实验报告清零程序篇一:微机原理实验报告微机原理与应用课程实验报告实验分工:报告人同组人实验时间:20XX.12.10课程设计一、题目要求(1)在数据段首址为0100h开始的内存区1按从大到小的顺序顺次存入二进制数15~0共16个字节的数据;(2)将上述源区内容传送到目的内存区2(首址为1100h)中;(3)检验上述传送过程是否正确,如有错误,在紧跟内存区2后的第一个字节开始写入AscII码“eRRoR”,否则写入“oK”。
(4)用冒泡法将上述内存区2的数据,按从小到大的次序重新排列,排列后存放在内存区3(开始地址为2100h)。
(5)将上述内存区2和内存区3的第100个数据分别乘以2,并转为bcD码,保存在各自存储区的末尾。
再将上述两个bcD码相乘,其结果保存在内存区1的末尾处。
二、实验程序框图三、程序代码codesegmentassumecs:codeDATA1db16dup(?)DATA2dbeRRoRDATA3dboK;在数据段首址为0100h开始的内存区1按从大到小的顺序顺次存入二进制数15~0共16个字节的数据start:movax,0100h;规定目标程序存放单元的偏移量movds,ax;数据段地址moves,axmovsi,offsetDATA1;偏移地址movcx,0010h;循环次数movbx,0100hmoval,ofhs1:movcs:[si],almov[bx],cs:[si]incsiincbxdecalloops1nop;将内存区1数据搬移到内存区2中movcx,16movsi,0100hmovbx,1100hs2:moval,[si]mov[bx],alincbxloops2nop;对比内存区1的数据与内存区2的数据是否相同mov cx,16movsi,0100hmovbx,1100hcomp:movax,[si]movdx,[bx]cmpax,dxjneerroincsiincbxloopcomp;数据如果都相同,说明上述传输过程正确movsi,offsetDATA3movdi,1110hmovbl,0movcx,2enteroK:movbl,cs:[si]mov[di],blincsiincdiloopenteroKnopjmps3;如果有一个数据不相同,说明上述传输过程不正确err:movsi,offsetDATA2movdi,1110hmovbl,0movcx,5entereRR:movbl,cs:[si]mov[di],blincdiloopentereRR;将内存区2数据搬移到内存区3中s3:movsi,1100hmovcx,0010hmovbx,2100hmoval,0movcx,16fil:moval,[si]mov[bx],alincsiincbxloopfilnop;用冒泡法将内存区3的数据按从小到大重新排列s4: movbl,0movcx,16movsi,2110hdecsideccxagain:moval,[si]cmpal,[si-1]jaenextxchgal,[si-1]mov[si],almovbl,1next:decsiloopagaincmpbl,0jnestart1nopmovsi,1109hmoval,[si]movcl,2mulcl;结果在al中movdx,0movbx,10divbxshlal,4addal,dl;把二进制数转换成bcD码mov[1112h],almovsi,2109hmoval,[si]movcl,2mulcl;结果在al中movdx,0movbx,10divbxshlal,4addal,dl;把二进制数转换成bcD码mov[2110h],al;两个bcD码相乘,其结果保存在内存区1的末尾处。
微机原理实验报告册(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)学习微机中断处理在接口技术中的应用。
微机原理实验报告
结
论
结果记录:
教 师 批 阅
1.实验态度(含预习) (认真、 较认真、 一般、 较差、很差) ;占 30% 2.实验操作能力及完成情况 (好、 较好、 一般、 较差、 很差) ;占 30% 3.实验结果记录及分析 (正确、 比较正确、 一般、 较差、 很差) ;占 30% 4.报告工整度 (好、 较好、 一般、 较差、 很差) ;占 10%
P3.2
(INT0) 发 生 中 断 后 ,
;开关置 0 立即置 1,观察到的现象是
P3.3(INT1) 立 即 中 断 ; 观 察 到 的 现 象 。 。
3)在 SETB PX1 前加分号,观察到的现象是
3.设 P3.3(INT1)优先中断,观察两个中断顺序不同的结果有什么不同。 实验程序:
六、心得体会
1) 开关置 0 不动观察到的现象是 是 。这是因为 2)将程序中的 CLR 是 这是因为
;开关置 0 立即置 1,观察到的现象 。
1) 在 是 2) 在 是
P3.3
(INT1) 发 生 中 断 后 ,
P3.2(INT0) 立 即 中 断 ; 观 察 到 的 现 象 。
IT1 改为 SETB IT1 再运行。开关置 0 不动观察到的现象 。 。
评定等级(或分数) :[
Hale Waihona Puke ]
微机原理实验一报告
微机原理实验一1.DEBUG 的基本操作:(1)从WINDOWS 进入DOS 之后,输入命令启动DEBUG:C:>DEBUG 回车(2)输入R 命令,查看和记录CPU 各个寄存器的内容:-R 回车看到什么?AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=0100 NV UP EI PL NZ NA PO NC 16D3:0100 0000 ADD [BX+SI],AL DS:0000=CD(3)输入 A 命令,汇编下面的字符“WINDOWS”显示程序(DEBUG 调试环境中,默认为十六进制,因此源程序中十六进制数后面不写H):-A 100 ;从偏移地址是0100H 处开始写指令MOV AH,2MOV DL, 57 ;57H 是“W”的ASCII 码INT 21 ;INT 21 是DOS 功能调用,AH=2 代表2 号功;能。
这3 句合起来的功能是:显示DL 中的字符MOV DL, 49INT 21MOV DL, 4EINT 21MOV DL, 44INT 21MOV DL, 4FINT 21MOV DL, 57INT 21MOV DL, 53INT 21INT 3 ;功能是产生一个断点,不要省略(4)输入U 命令反汇编上面的程序:-U 100问:这里100代表什么?反汇编从0100开始(5)输入G命令连续运行上面的程序,记录运行结果:-G=100AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=0100 NV UP EI PL NZ NA PO NC 16D3:0100 B402 MOV AH,02(6)输入E命令把上面程序中的数据57,49,4E,44,4F,57,53依次分别改为57,45,4C,43,4F,4D,45:-E 103 回车(以下同)-E 107-E 10B-E 10F-E 113-E 117-E 11B(7)输入D命令查看程序机器码的存放情况:-D 100 11E ;看从100开始到11E的机器码(8)输入G命令再连续运行程序,并记录运行结果:-G=100WELCOMEAX=0245 BX=0000 CX=0000 DX=0045 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=011E NV UP EI PL NZ NA PO NC 16D3:011E CC INT 3(9)依次输入下面的T命令(单步执行)和G命令(设置断点并启动运行),记录各命令的运行结果:-T=100 回车-G=100 106 回车-G=100 10A 回车-G=100 10E 回车-G=100 11E 回车T=100AX=0245 BX=0000 CX=0000 DX=0045 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=0102 NV UP EI PL NZ NA PO NC 16D3:0102 B257 MOV DL,57-g=100 106W-g=100 10aWE-g=100 10eWEL-g=100 11eWELCOME2.一字节十六进制数转换为ASCII码(只考虑大写字母)用E命令在DS:1000单元中存放十六进制数5A,用A命令从CS:0100单元开始存放下面程序的机器码,并调试运行(DEBUG调试环境中,源程序中十六进制数后面不写H):CS:0100 8D360010 LEA SI,[1000] ;将EA=1000送入SI中0104 8D3E2010 LEA DI,[1020] ;将EA=1020送入DI中0108 8A04 MOV AL,[SI] ;(AL)←((SI))010A 240F MOV BL,AL ;将AL中的一个字送入BL010C 240F AND AL,0F ;(AL)←(AL)^(01H)010E E80E00 CALL 011F ;调用EA=011F中的指令0111 80E30 AND BL,F0 ;(BL)←(BL)^(F0H)0114 B90400 MOV CX,4 ;将立即数4送入CX中0117 D2EB SHR BL,CL ;将BL中的内容左移CL;中指出的位数,且每次移位最低位补0 0119 88D8 MOV AL,BL ;将BL中的一个字送入AL011B E80100 CALL 011F ;调用EA=011F中的指令011E F4 RET :返回指令011F 3C09 CMP AL,09 ;(AL)-09,根据结果设置标志位0121 7602 JBE 0125 ;执行EA=0125的指令0123 0407 ADD AL,07 ;(AL)←(AL)+07H0125 0430 ADD AL,30 ;(AL)←(AL)+30H0127 8805 MOV [DI],AL ;(AL)送入EA=(DI)的单元中0129 47 INC DI ;(DI)←(DI)+1012A C3 RET ;返回指令运行结果:1)写出执行上述程序的命令行-G=1002)程序执行后,[1020]=_____41_____,[1021]=___35______。
微机原理实验报告_2
实验一汇编语言的编译、链接和调试一、实验目的1、学会使用masm对汇编源程序进行编译、链接、调试、运行。
2、掌握汇编语言的程序格式。
3、巩固所学的汇编语言指令。
二、实验环境1、硬件:PC 微机2、软件:宏汇编MASM 软件三、实验原理1、汇编语言程序的上机与处理过程2、汇编语言的程序格式(1)汇编程序一般由若干段组成,每个段都有一个名字,以SEGMENT作为段的开始,以ENDS作为段的结束,这两者前要冠以相同的名字作为段名。
(2)代码段和堆栈段必不可少,数据段和附加段可根据需要设置。
堆栈段的SEGMENT之后有关键字STACK。
代码段中有伪指令ASSUME告诉汇编程序,在各种指令执行时所要访问的各段寄存器将分别对应哪一段。
(3)源程序的每一段是由若干行汇编语句组成,每一行只有一条语句,且不能超过128个字符,但一条语句允许有后续行,最后均以回车结束。
(4)整个源程序必须以END语句结束,它通知汇编程序停止汇编。
四、实验内容进入DOS环境中相应的目录下。
如汇编软件的文件来为:D:\MASM,则对应的操作为(1)选择windows的“开始”→“程序”→“附件”→“命令提示符”(2)在DOS命令提示符下输入如下命令(其中带下划线部分为输入内容)。
C:\Documents and Settings\new>D:D:\>CD MASMD:\MASM>EDIT TEXT.ASM进入编辑程序,在其环境下输入编好的源程序,然后在盘上生成一个扩展名为.asm的文件。
程序示例DATA SEGMENTDA1 DB 10H,20H,30H,40HDA2 DB 0F0H,0B0H,0A0H,90HDA3 DB 00H,00H,00H,00HDATA ENDSSTACK1 SEGMENT PARA STACKDB 10 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATAMOV DS,AXMOV AL,[DA1]ADD AL,[DA2]MOV [DA3],ALMOV AL,[DA1+1]ADC AL,[DA2+1]MOV [DA3+1],ALMOV AL,[DA1+2]ADC AL,[DA2+2]MOV [DA3+2],ALMOV AL,[DA1+3]ADC AL,[DA2+3]MOV [DA3+3],ALCODE ENDSEND START3. 用宏汇编程序MASM,将扩展名为.ASM的源程序汇编成目标程序,即生成盘上扩展名为.OBJ的文件。
微机原理实验报告V1.1_20080315_
实验一拆字程序
一、实验目的
掌握汇编语言设计和调试方法。
二、实验内容
把4000H单元的内容拆开,高位送4001H低位,低位送4002H低位,4001H、4002H 的高位清零,一般本程序用于把数据送显示缓冲区时用。
三、程序框图
四、试验电路
五、实验步骤
用连续或单步方式运行程序,检查4000H-4002H中内容变化情况。
六、思考
如何用断点方式调试本程序。
七、程序
八、程序调试结果
实验二数据排序实验
一、实验目的
熟悉8088指令系统,掌握程序设计方法。
二、实验内容
编写并调试一个排序子程序,其方法为用冒泡法将RAM中几个单字节无符号的正整数,按从大到小的次序重新排列。
三、程序框图
四、试验电路
五、实验步骤
在4000H-400AH中通过键盘命令输入不等的10个数,运行本实验程序后检查4000H-400AH中内容是否按从大到小排列。
在和PC机联机时,用连续单步方式,可很清楚地看出数据排序时数据移动变化情况。
六、思考
编一程序把4000H-400AH中内容按从小到大排列。
七、程序
八、程序调试结果。
微机原理实验报告
微机原理实验报告实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在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的位置上, 和我们实验预期结果一样。
微机原理实验报告
.昆明理工大学微机原理及程序设计实验指导书段绍米编昆明理工大学信息工程与自动化学院自动化系2013年10月微机原理实验实验要求及运行环境1、实验要求与注意事项:交纸质版实验报告,实验要求: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;数据段定义,段名DATADATA1 DB 33H, 39H, 31H, 37H, 34H;变量DATA1中装入加数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, 05CALL DISPLCRLFMOV SI, OFFSET DA TA1MOV BX, 05CALL DISPLCRLFMOV DI, OFFSET DATA2CALL ADDAMOV SI, OFFSET DA TA1MOV BX, 05CALL DISPLCRLFMOV AX, 4C00HINT 21HDISPL PROC NEARDS1: MOV AH, 02MOV DL, [SI+BX-1]INT 21HDEC BXJNZ DS1RETDISPL ENDPADDA PROC NEARMOV DX, SIMOV BP, DIMOV BX, 05AD1: SUB BYTE PTR [SI+BX-1] , 30HSUB BYTE PTR [DI+BX-1] , 30HDEC BXJNZ AD1MOV SI, DXMOV DI, BPMOV CX, 05CLCAD2: 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.读懂源程序,写出源程序注释。
微机原理实验报告
微机原理实验报告实验⼀DEBUG 调试实验类型:实验课时:指导教师:时间:2013 年⽉⽇课次:第节教学周次:第周实验分室:实验台号:实验员:⼀、实验⽬的1.练习使⽤DEBUG,调试简单汇编程序。
⼆、实验要求1.掌握DEBUG的使⽤,调试程序。
2.读懂程序中各条指令,说明程序功能。
三、实验内容1.启动DEBUG,⽤A命令输⼊并汇编下列程序段。
100 MOV SI,200103 MOV CX,10106 MOV AL,0108 MOV [SI ],AL10A INC SI10B INC AL10D DEC CX10E JNZ 108110 INT 3四、实验结果及分析实验⼆简单汇编语⾔设计实验类型:实验课时:指导教师:时间: 2012 年⽉⽇课次:第节教学周次:第周实验分室:实验台号:实验员:⼀、实验⽬的1.巩固DEBUG及宏汇编的使⽤。
2.加深对指令的理解。
⼆、实验要求1.设堆栈指针SP=2000H,(AX)=3000H,(BX)=5000H。
请编⼀程序将AX的内容和BX的内容进⾏交换。
请⽤堆栈作为两寄存器交换内容的中间存储单元,⽤DEBUG调试程序进⾏汇编与调试。
2.设DS=当前段指地址,(BX)=0300H,(SI)=0002H,请⽤DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装⼊0AH、0BH、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将两个寄存器的内容进⾏交换时,必须有⼀个中间寄存器才能进⾏内容的交换,如果⽤堆栈做为中间存储单元,必须遵循先进后出的原则。
微机原理上机实验报告
微机原理上机实验报告实验一基本输入/输出实验:本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。
用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入/输出功能。
8255基本输入/输出实验参考接线图如图所示。
流程图:操作步骤:按图示连好线路,在TDPIT中输入如下程序,编译、连接、运行。
DATA SEGMENTCS0 EQU 300OHMY8255_A EQU CS0+00HMY8255_B EQU CS0+01HMY8255_C EQU CS0+02HMY8255_MODE EQU CS0+03HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV DX,3003HMOV AL,10000010BOUT DX,ALTEST_IT:MOV DX,3001HIN AL,DXMOV DX,3000HOUT DX,ALJMP TEST_ITCODE ENDSEND START实验现象:闭合开关,对应控制灯泡发光。
实验二流水线指示灯显示实验:首先分别将A口和B口写入7FH和FEH,然后分别将该数右移和左移一位,在送到端口上,这样循环下去,从而实现流水灯的显示。
8255流水灯显示实验参考接线图如图所示。
流程图:操作步骤:按图示连好线路,在TDPIT中输入如下程序,编译、连接、运行。
DATA SEGMENTCSO EQU 3000HA EQU CSO+0000HB EQU CSO+0001HC EQU CSO+0002HM EQU CSO+0003HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXXOR AX,AXMOV AL,10000000BMOV DX,MOUT DX,AL;MOV DX,B;IN AL,DXL1:MOV AL,00001000BMOV DX,AOUT DX,ALMOV AL,00000001BMOV DX,BOUT DX,ALMOV CX,00FFHC1: MOV BX,CXMOV CX,0FFFFHD1:LOOP D1MOV CX,BXLOOP C1MOV AL,00000100BMOV DX,AOUT DX,ALMOV AL,00000010BMOV DX,BOUT DX,ALMOV CX,00FFHC2: MOV BX,CXMOV CX,0FFFFHD2:LOOP D2MOV CX,BXLOOP C2MOV AL,00000010BMOV DX,AOUT DX,ALMOV AL,00000100BMOV DX,BOUT DX,ALMOV CX,00FFHC3: MOV BX,CXMOV CX,0FFFFHD3:LOOP D3MOV CX,BXLOOP C3MOV AL,00000001BMOV DX,AOUT DX,ALMOV AL,00001000BMOV DX,BOUT DX,ALMOV CX,00FFHC4: MOV BX,CXMOV CX,0FFFFHD4:LOOP D4MOV CX,BXLOOP C4JMP L1MOV AX,4C00HINT 21HCODE ENDSEND START实验现象:灯泡如流水般从左至右依次流动发光,并始终保持在同一时间只有一个灯亮着。
微机原理实验总结(共5篇)
微机原理实验总结(共5篇)第一篇:微机原理实验总结微机原理实验总结不知不觉,微机原理与接口技术实验课程已经结束了。
回想起来受益匪浅,主要是加深了对计算机的一些硬件情况和运行原理的理解和汇编语言的编写汇编语言,对于学习机电工程的自动控制和计算机都是很重要的,因为它是和机器语言最接近的了,如果用它来编程序的话,会比用其它高级语言要快得多。
本学期我们在老师的带领下,进行了微机原理实验六到十这五组实验。
它们分别是:实验六8255 PA口控制PB口实验目的掌握单片机系统中扩展外围芯片的方法,了解8255 芯片的结构及编程方法。
实验内容用 8255 PA 口作开关量输入口,PB 口作输出口。
实验步骤1、用8 芯线将8 255 PA口接至开关Kl~K8,PB口接至发光二极管L1~L8;2、运行程序 HW06.ASM,拨动开关K1~K8,观察L1~L8发光二极管是否对应点亮。
实验七8255控制交通灯实验目的进一步了解8 255 芯片的结构及编程方法,学习模拟交通控制的实现方法。
实验内容用8255 做输出口,控制六个发光二极管燃灭,模拟交通灯管理。
实验步骤1、用双头线将8 255 PA0~PA2 口接至发光二极管L3~L1,PA3~PA5口接至发光二极管L7~L5;2、执行程序HW07.ASM,初始态为四个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后重复以上过程。
实验八简单I /O口扩展实验目的学习单片机系统中扩展简单I/O 口的方法;学习数据输入输出程序的编制方法。
实验内容利用74LS244 作为输入口,读取开关状态,并将此状态,通过74LS273再驱动发光二极管显示出来。
微机原理实验
微机原理实验一、实验目的。
本实验旨在通过实际操作,加深对微机原理的理解,掌握微机原理的实验技能,提高实际动手能力。
二、实验仪器与设备。
1. PC机一台。
2. 数字示波器一台。
3. 信号发生器一台。
4. 示波器探头若干。
三、实验原理。
微机原理实验是通过对微机原理相关知识的实际操作,来加深对微机原理的理解。
包括微处理器的工作原理、总线的结构和工作原理、存储器的结构和工作原理等内容。
四、实验内容。
1. 实验一,微处理器的工作原理。
通过实际操作,观察微处理器在不同工作状态下的运行情况,了解微处理器的工作原理及其内部结构。
2. 实验二,总线的结构和工作原理。
利用数字示波器和信号发生器,对总线进行测试,观察总线的工作情况,了解总线的结构和工作原理。
3. 实验三,存储器的结构和工作原理。
通过对存储器进行读写操作,观察存储器的存取过程,了解存储器的结构和工作原理。
五、实验步骤。
1. 实验一,微处理器的工作原理。
(1)将微处理器插入主板插槽,并连接电源。
(2)通过示波器观察微处理器在不同工作状态下的波形变化。
(3)记录观察结果并进行分析。
2. 实验二,总线的结构和工作原理。
(1)连接信号发生器和示波器到总线上。
(2)调节信号发生器的频率和幅度,观察示波器上的波形变化。
(3)记录观察结果并进行分析。
3. 实验三,存储器的结构和工作原理。
(1)利用存储器进行读写操作,观察存储器的存取过程。
(2)记录观察结果并进行分析。
六、实验结果与分析。
通过实验操作,得出了微处理器的工作原理、总线的结构和工作原理、存储器的结构和工作原理等方面的实验结果,并进行了相应的分析。
七、实验总结。
通过本次实验,加深了对微机原理相关知识的理解,掌握了微机原理的实验技能,提高了实际动手能力,为今后的学习和工作打下了良好的基础。
八、实验心得。
通过本次实验,我深刻体会到了实际操作的重要性,只有亲自动手去做,才能真正理解和掌握微机原理相关知识。
同时,也感受到了微机原理实验的乐趣,希望通过不断地实验操作,能够进一步提高自己的实验技能和动手能力。
微机原理实习报告(带完全汇编源码)
目录一.实习目的 .................................................. 错误!未定义书签。
二、实习内容及要求...................................... 错误!未定义书签。
三、方案和工作原理说明.............................. 错误!未定义书签。
四、程序流程图 .............................................. 错误!未定义书签。
五、程序源代码及注释.................................. 错误!未定义书签。
六、电路的连接 .............................................. 错误!未定义书签。
七、调试中出现的问题、原因及排除方法.. 错误!未定义书签。
一.实习目的本课程的课程设计是自动化专业学生学习完《微机原理及应用》课程后,进行的一次以汇编语言为主,硬件设计为辅的综合训练。
本课程设计的目的在于加深对微机原理基本知识的理解,掌握汇编语言程序设计的基本方法;掌握运用微机原理开发系统的基本方法。
二.实习内容及要求1.实习内容简易电子琴原理:(1) 蜂鸣器输入不同频率的方波,会发出不同的声音;(2) 通过按键,由单片机控制产生不同频率的方波,从而发出不同的声音。
(3) 通过8255的PA口,使G6区的1~7号键由低到高发出1-7的音阶。
2.设计要求从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:1)掌握汇编语言程序设计的基本方法。
2)进一步理解各种接口电路的应用。
例如8255并行接口。
3)掌握利用PC机扬声器发出不同频率声音的方法。
4)理解12864模块的应用。
(此为创新添加部分)三、方案和工作原理说明1.方案基于PC计算机的时钟晶振为1.MHz,利用电脑里面的蜂鸣器发出声音。
(完整word版)微机原理完整实验报告+程序
实验题目8253定时/计数器实验 一、 实验目的与要求: 1. 学会8253芯片和微机接口原理和方法。
2. 掌握8253定时器/计数器的工作方式和编程原理。
二、 实验内容: 1、实验原理 本实验原理图如图 1所示,8253A 的A0、A1接系统地址总线 A0、A1,故8253A 本实验通道2 有四个端口地址,如端口地址表 1所示。
8253A 的片选地址为 48H~ 4FH 。
因此, 仪中的8253A 四个端口地址为 48H 、49H 、4AH 、4BH ,分别对应通道 0、通道1、 和控制字。
采用8253A 通道0,工作在方式3(方波发生器方式),输入时钟CLK0为 输出OUTO 要求为1KHZ 的方波,并要求用接在 GATE0引脚上的导线是接地("0" 甩空("1"电平)来观察GATE 对计数器的控制作用,用示波器观察输出波形。
2、实验线路连接 (1) 8253A 芯片的CLK0引出插孔连分频输出插孔 (2) 8253A 的 GATE0 接+5V 。
实验步骤 (1) 按图1连好实验线路(2) 运行实验程序 1. 按“调试”按钮2. 选“窗口” “进入示波器窗口” ,然后最小化3. 按“运行按钮”4.将模拟示波器窗口打开,选择“串行口 2”,再按 Ctrl + F2按钮即可看到波形 显示“ 8253-1 ”用示波器测量8253A 的OUT2输出插孔,方波输出,幅值0〜4V 三、实验代码: 1MHZ ,电平)或 3、 CODE SEGMENT ASSUME CS:CODE TCONTRO EQU 004BH TCON2 EQU 004AH CONT PORT EQU 00DFH DATA PORT EQU 00DEH DATA1 EQU 0500H START: JMP TCONT TCONT: CALL FORMATCALL LEDDIS P MOV DX,TCONTRO1MHZ 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一次实验报告
1)从键盘输入一个2位无符号的16进制数(00H~FFH),然后在显示器上同时以二进制和十进制形式显示出来。
例如:
Please input N(00H-FFH): 9B
N = 9B h = 10011011B = 155
代码如下:
aa segment stack
dw 32 dup(0)
aa ends
bb segment
ZFB db
'0000$0001$0010$0011$0100$0101$0110$0111$1000$1001$1010$1011$1100$110 1$1110$1111$'
input db 'please input N(00h~ffh):$'
N db 0
M DB 0
q db 0
bb ends
cc segment
main proc far
assumess:aa,cs:cc,ds:bb
push ds
subax,ax
push ax
movax,bb
movds,ax
movdx,offset input 提示信息
mov ah,9
int 21h
mov ah,1 ;输入并回显字符
int 21h
movn,AL
mov ah,1 ;输入并回显字符
int 21h
mov M,AL
mov ah,2 ;换行
mov dl,0ah
int 21h
mov ah,2
mov dl,0dh
int 21h
moval,n ;输出二进制数
mov BL,0 ;后面利用bl的值判断是否终止循环
ns0: cmpal,'A'
jb ns1 ;判断是数字还是字母
sub n,7h
cmpal,'a' ;判断是小写字母还是大写字母
jb ns1
sub n,20h
ns1: incbl
movdl,n
sub dl,30h
addq,dl
movcl,dl
shl Dl,2
addDl,cl
mov Dh,0
add Dx,offsetzfb ;显示对应二进制数
mov ah,9
int 21h
cmp bl,2h ;当bl大于等于二时终止循环
jnb ns2
shl q,4
moval,m
movn,al
jmp ns0
ns2:
movdl,'b'
mov ah,2
int 21h
mov dl,'='
mov ah,2
int 21h
moval,q ;输出十进制数mov cl,10
mov ah,0
div cl
add ah,30h
movm,ah
mov ah,0
div cl
add ah,30h
movn,ah
mov ah,0
div cl
add ah,30h
movq,ah
movdl,q
mov ah,2
int 21h
movdl,n
mov ah,2
int 21h
movdl,m
mov ah,2
int 21h
ret
main endp
cc ends
end main
2)键盘输入一个无符号的十进制数(0~255),得到其实际数值后保存到bl中,然后在显示器上同时以二进制和十六进制显示出来。
例如:
Please input N(0-255): 180
N = 180 = B4H = 10110100B
代码如下:
aa segment stack
dw 32 dup(?)
aa ends
bb segment
S1 DB 0ah,0dh,'Please input N(0-255):$'
S2 DB 0ah,0dh,'$'
TEMP DB
OUTPUT DB 5,0,5 dup('$')
OUTPUT2 DB 10,0,10 dup('$')
OUTPUT10 DB 4,0,4 dup('$')
IBUF db 5,0,5 DUP(?)
bb ends
code segment
mainproc far
assumess:aa,ds:bb,cs:code
push ds
subax,ax
push ax
movax,bb
movds,ax
MOV AH,9 ;printf("Please input N(0-255):\n)
MOV DX,OFFSET S1
INT 21H
MOV AH,10 ;scanf("%s",&D)
MOV DX,OFFSET IBUF
INT 21H
MOV CL,IBUF+1
MOV CH,0
MOV BX,CX
MOV IBUF[BX+2],'='
MOV IBUF[BX+3],'$'
MOV AH,9
MOV DX,OFFSET S2
INT 21H
MOV DX,OFFSET IBUF+2
INT 21H
MOV SI,OFFSET IBUF+2
MOV AX,0
AGAIN: MOV DX,10 ;(a0*10+a1)*10+a2······获得实际值AND BYTE PTR[SI],0FH
MUL DX
ADD AL,[SI]
MOV AH,0
INC SI
LOOP AGAIN
MOV BL,AL
MOV TEMP,BL
MOV CL,4
SHL AX,CL
CMP AH,9 ;判断是否为字母
JB DIGITAL1
ADD AH,7H
DIGITAL1: ADD AH,30H
SHR AL,CL
CMP AL,9
JB DIGITAL2
ADD AL,7H
DIGITAL2: ADD AL,30H
MOV BX,OFFSET OUTPUT ;将输出存到output
MOV [BX],AH
MOV [BX+1],AL
MOV [BX+2],'H'
MOV [BX+3],'='
MOV AH,9
MOV DX,OFFSET OUTPUT
INT 21H
MOV CL,8 ;输出二进制数
MOV BX,0
MOV AL,TEMP
BEGIN: MOV AH,0
SHL AX,1
ADD AH,30H
MOV OUTPUT2[BX],AH
INC BX
LOOP BEGIN
MOV CL,'B'
MOV OUTPUT2[BX],CL
MOV DX,OFFSET OUTPUT2
MOV AH,9
INT 21H
ret
mainendP
code ends
end main
3)输入一个十进制的个位数,求出这个数的平方值,显示其十进制结果,要求有如下提示信息。
Please input a number :
The result is :
例如please input a number: 8
the result is: 64
代码如下:
aa segment stack
dw 32 dup(?)
aa ends
bb segment
inputdb 'please input a number:$'
INF db'the result is:$'
PFB db '0$ 1$ 4$ 9$ 16$25$36$49$64$81$'
ndb 0
bb ends
cc segment
mainproc far
assumess:aa,ds:bb,cs:cc
push ds
subax,ax
push ax
movax,bb
movds,ax
mov ah,2
mov dl,0ah
int 21h
mov ah,2
mov dl,0dh
int 21h
movdx,offset input ; printf("please input a number:") mov ah,9
int 21h
mov ah,1
int 21h
movn,al
mov ah,2
mov dl,0ah
int 21h
mov ah,2
mov dl,0dh
int 21h
mov ah,9
movdx,offset INF
int 21h
sub n,30h
movdl,n
shl n,1
adddl,n
mov dh,0
add dx,offset PFB ;查表
mov ah,9
int 21h
ret
mainendp
cc ends
end main。