微机原理实验一
- 格式:pdf
- 大小:990.27 KB
- 文档页数:7
第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)学习微机中断处理在接口技术中的应用。
实验一两个多位十进制数相减实验一. 实验要求将两个多位十进制数相减,要求被减数,减数均以ASCII码形式按顺序存放在以DA TAI和DATA2为首的5个内存单元中(低位在前),结果送回DATAI处。
二、实验目的1.学习数据传送和算术运算指令的用法。
2.熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。
DA TA SEGMENTDA TA1 DB 33H,39H,31H,37H,38H ;第一个数据(作为被减数)DA TA2 DB 36H,35H,30H,38H,32H ;第二个数据(作为减数)MES1 DB '-','$'MES2 DB '=','$'DA TA ENDSSTACK SEGMENT ;堆栈段STA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACK,ES:DA TASTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DA TA1MOV BX,05CALL DISPL ;显示被减数MOV AH,09HLEA DX,MES1INT 21HMOV SI,OFFSET DATA2MOV BX,05 ;显示减数CALL DISPLMOV AH,09HLEA DX,MES2INT 21HMOV SI,OFFSET DA TA1MOV DI,OFFSET DATA2CALL SUBA ;减法运算MOV SI,OFFSET DATA1MOV BX,05 ;显示结果CALL DISPLMOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HINT 21HMOV AX,4C00HINT 21HDISPL PROC NEAR ;显示子功能DSI: MOV AH,02MOV DL,[SI+BX-1] ;显示字符串中一字符INT 21HDEC BX ;修改偏移量JNZ DSIRETDISPL ENDPSUBA PROC NEARMOV DX,SIMOV BP,DIMOV BX,05SU1: SUB BYTE PTR[SI+BX-1],30HSUB BYTE PTR[DI+BX-1],30HDEC BX ;将ASCII 码表示的数字串JNZ SU1 ;转化为十六进制的数字串MOV SI,DXMOV DI,BPMOV CX,05 ;包括进位,共5位CLC ;清进单位SU2: MOV AL,[SI]MOV BL,[DI]SBB AL,BL ;带进位相减AAS ;非组合BCD码的减法调整MOV [SI],AL ;结果送被减数区INC SIINC DI ;指向下一位LOOP SU2 ;循环MOV SI,DXMOV DI,BPMOV BX,05SU3: ADD BYTE PTR [SI+BX-1],30HADD BYTE PTR [DI+BX-1],30HDEC BX ;十六进制的数字串转化ASCII码表示的数字串JNZ SU3RETSUBA ENDPCODE ENDSEND START实验二两个数相乘的实验一.实验要求实现十进制数的乘法,被乘数和乘数均以ASCII码形式存放在内存中,算式结果在屏幕上显示出来。
微机原理实验报告概述:微机原理是计算机科学与技术专业中的一门重要课程,通过实验学习,可以加深对计算机内部运行原理的理解,提高软硬件的开发和调试能力。
本实验报告将介绍我对微机原理实验的学习和思考。
实验一:二进制转换实验在这个实验中,我首先了解了二进制数的概念以及其和十进制数的转换方法。
通过实际操作,我加深了对计算机内部数据表示方式的理解。
这对于后续学习计算机系统结构和编程语言至关重要。
实验二:逻辑门电路实验逻辑门电路是计算机硬件的基础组成部分,通过实验,我学会了使用逻辑门芯片构建各种逻辑电路,并能够通过真值表分析和验证逻辑电路的正确性。
这对于理解计算机内部的数据处理和控制逻辑有着直接的帮助。
实验三:运算器设计实验在这个实验中,我通过学习和设计算术逻辑单元(ALU),了解了计算机的算术操作过程,并能够通过运算器实现基本算术运算。
这对于理解计算机内部数据的处理和计算机指令的执行有着重要的意义。
实验四:存储器与外设实验存储器是计算机系统的重要组成部分,通过实验,我深入了解了存储器的类型、组织结构和访问方式,并通过外设与存储器的交互,实践了计算机系统的输入和输出过程。
实验五:微处理器实验微处理器是计算机系统中最核心的部件,通过实验,我学习了微处理器的基本运行原理,能够通过汇编语言编写程序,并通过微处理器执行程序实现特定的功能。
这个实验为我今后学习计算机体系结构和操作系统打下了坚实的基础。
实验总结:通过这几个实验,我深入了解了微机原理课程的实践内容和相关知识。
实验的过程中,我不仅学会了使用仪器设备和工具,还培养了自己的动手能力和团队合作精神。
通过不断的实践,我对计算机内部结构和运行原理有了更深刻的理解,也提高了我的问题解决能力和创新思维。
未来展望:微机原理实验的学习只是计算机科学与技术专业中的一小部分。
我希望在今后的学习过程中能加深对计算机体系结构、操作系统、编程语言等方面的学习,并不断深入钻研,成为一名优秀的计算机科学与技术专业人才。
微机原理实验一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______。
微型计算机原理与接口技术软件实验报告(一)班级:学号:姓名:2012.11一、实验题目1、学习并掌握IDE86集成开发环境的使用;2、参考书例4-8,以单步形式观察程序的执行过程;3、修改该程序,求出10个数中的最大值和最小值。
以单步形式观察如何求出最大值、最小值。
二、实验目的1、熟悉IDE86集成开发环境的使用。
2、通过编程、上机调试,进一步理解汇编语言的设计思路与执行过程。
3、锻炼动手编程,独立思考的能力。
三、实验内容3.1题目2设计思路及流程图3.1.1设计思路为实现求和的功能,首先将十个数存入内存中,设定AX为计算结果存储单元,CX为计数器,随后建立循环,将每个数依次加到AX上,直至CX=O,最后将AX中存储的结果移动到SUM存储单元中,结束程序。
3.1.2程序流程图题目2的程序流程图如图1所示:图1题目2的程序流程图3.2题目3设计思路及流程图3.2.1设计思路为实现求取最大值最小值的功能,首先将十个数存入内存中,设定CX为计数器,将第一个数分别存入到MAX与M1N储存单元中,随后建立循环,将每个数依次与MAX(MIN)相比较,如果有大于(小于)MAX(MIN)中的,移入相应存储单元,直至CX=0。
最后将MAX和MIN中存储的数据打印在屏幕上,返回DoS系统,结束程序。
3.2.2程序流程图题目3的程序流程图如图2所示:图2题目3的程序流程图4.1题目2源程序DATA SEGMENT ;定义数据段TAB1E DB12H,23H,34h,45h,56h ;10个加数DB67H,78H z89H z9AH z0FDHSUM DW?DATA ENDSCODE SEGMENT ;定义代码段ASSUMECS:CoDE,DS:DATA,ES:DATASTART: MOVAX z DATAMOVDS,AX ;初始化DSMOVES,AX ;初始化ES1EASUAB1E ;SI指向TAB1EMOVCX,10 ;循环计数器XORAX z AX ;AX为中间结果NEXT: ADDA1z[SI] ;把一个数加到A1中ADCAH z O ;若有进位,则加到AH中INCSI ;指向下一个数1OOPNEXT ;若未加完,继续循环MOVSUM Z AX ;若结束,存结果于SUMH1T ;结束CODE ENDS ;代码段结束END START ;汇编结束DATA SEGMENT ;定义数据段TAB1E DB12H,23H,34h,45h,56h;十个待比较数DB67H,78H,89H,9AH,0FDHMAX DB?MIN DB?A DB,MaxOS ;屏幕提示字符串B DBoDH,0AH「Min:,SDATA ENDSCODE SEGMENT;定义代码段ASSUMECS:CoDE,DS:DATA,ES:DATASTART: MOVAX z DATAMOVDS,A× ;初始化DSMOVES,AX ;初始化ES1EASIJAB1E ;SI指向TAB1EMOVCX z IO ;循环计数器XORAX z AX ;清空AXC1D ;清方向标志DF1ODSB ;A1存入一个8位数MOVMAX z A1 ;将该数送MAXMOVMIN Z A1 ;将该数送MINDECCX ;计数器减一NEXT: 1ODSB ;取下一个数CMPA1Z MAX ;与MAX比较JA1ARGERCMPA1Z MIN JBSMA11ERJMPGOON1ARGER:M0VMAX,A1JMPGOONSM A11ER:MOVMIN z A1GO ON:1OOPNEXT1EADX,AMOVAH z09HINT21HMOVA1z MAXCA11DISP1AY1EADX,BMOVAH z09HINT21HMOVA1z MINCA11DISP1AYMOVAH z4CHINT21H DISP1AYPROCPUSHBXPUSHCX ;若大于转1ARGER;否则与MIN比较;若小于转SMA11ER ;否则转GOON;A1的值存入MAX;转到GOON;A1的值存入MIN;CX-1,若CXWO转NEXT ;获取A的首地址;调用字符串显示功能;MAX值存入A1;调用显示子程序;获取B的首地址;调用字符串显示功能;MIN值存入A1;调用显示子程序;调用返回DoS功能;十六进制显示子程序;保持BX内容;保持CX内容MOVBH z A1MOV CH,2 ;设置循环计数器ROT: MOV C1,4 ;移位次数RO1 BX z C1MOV A1B1AND A1z OFH ;清空A1高四位ADD A1,30H ;0-9转换ASCII码CMP A1z3AHJ1 PRITADD A1,7H ;A-F转换ASCII码PRIT: MOV D1,A1MOV AH,2 ;调用字符显不功能INT 21HDEC CH ;计数器-1JNZ ROT ;CHW0,继续循环POPCX 丁恢复CX内容POPBX 丁恢复BX内容RET ;返回D ISP1AYENDPCODEENDS ;代码段结束END START ;结束五、实验运行结果5.1题目2运行结果前五个数运算结束后寄存器状态:图3 其中ax 值为图4前五个数计算后AX 的值故此时前五个数之和为0104Ho 前八个数运算结束后寄存器状态:×0000图6前八个数计算后AX 的值故此时前八个数之和为026CH o 全部运算结束后,ax 的值为:图7计算结束后AX 的值故十个数的和为0403H 。
微机原理实验报告实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在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. 学习微机的基本操作方法。
实验仪器和设备:
1. 微机主机。
2. 显示器。
3. 键盘。
4. 鼠标。
实验步骤:
1. 打开微机主机电源,启动计算机。
2. 通过鼠标和键盘操作,进入操作系统界面。
3. 了解微机的基本组成结构和工作原理。
4. 学习并掌握微机的基本操作方法。
实验注意事项:
1. 在操作微机时,要注意避免静电干扰,避免损坏微机设备。
2. 操作过程中要注意操作方法,避免误操作导致系统崩溃。
3. 学习微机原理时,要认真听讲,理解每个步骤的操作原理。
4. 实验结束后,要及时关闭微机电源,做好设备的保养工作。
实验总结:
通过本次实验,我对微机的基本组成结构和工作原理有了更深入的了解,掌握了微机的基本操作方法。
这对我今后的学习和工作都有很大的帮助。
同时,我也意识到了学习微机原理的重要性,希望在今后的学习中能够更加努力,不断提高自己的专业技能。
结语:
微机原理实验一是我们学习过程中的重要一环,通过实际操作,我们更深入地了解了微机的组成结构和工作原理,也掌握了微机的基本操作方法。
希望大家能够认真对待实验,加强对微机原理的学习,为以后的学习和工作打下坚实的基础。
微机原理上机实验报告实验一基本输入/输出实验:本实验使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实验现象:灯泡如流水般从左至右依次流动发光,并始终保持在同一时间只有一个灯亮着。
微机原理与接口技术实验报告实验一,微机原理实验。
1. 实验目的。
本实验旨在通过对微机原理的实验,加深学生对微机原理相关知识的理解,提高学生的动手能力和实验技能。
2. 实验内容。
本实验主要包括微机原理的基本知识、微处理器的结构和功能、微机系统的总线结构、存储器与I/O接口。
3. 实验步骤。
(1)了解微机原理的基本知识,包括微处理器的分类、功能和工作原理。
(2)学习微机系统的总线结构,掌握总线的分类、功能和工作原理。
(3)了解存储器与I/O接口的基本概念和工作原理。
(4)进行实际操作,通过实验板进行微机原理实验,加深对微机原理知识的理解。
4. 实验结果。
通过本次实验,我深刻理解了微机原理的基本知识,掌握了微处理器的结构和功能,了解了微机系统的总线结构,以及存储器与I/O接口的工作原理。
通过实际操作,我对微机原理有了更深入的认识,提高了自己的动手能力和实验技能。
实验二,接口技术实验。
1. 实验目的。
本实验旨在通过对接口技术的实验,加深学生对接口技术相关知识的理解,提高学生的动手能力和实验技能。
2. 实验内容。
本实验主要包括接口技术的基本知识、接口电路的设计与调试、接口技术在实际应用中的作用。
3. 实验步骤。
(1)了解接口技术的基本知识,包括接口的分类、功能和设计原则。
(2)学习接口电路的设计与调试,掌握接口电路设计的基本方法和调试技巧。
(3)了解接口技术在实际应用中的作用,包括各种接口的应用场景和实际案例。
(4)进行实际操作,通过实验板进行接口技术实验,加深对接口技术知识的理解。
4. 实验结果。
通过本次实验,我深刻理解了接口技术的基本知识,掌握了接口电路的设计与调试方法,了解了接口技术在实际应用中的作用。
通过实际操作,我对接口技术有了更深入的认识,提高了自己的动手能力和实验技能。
总结。
通过微机原理与接口技术的实验,我对微机原理和接口技术有了更深入的理解,提高了自己的动手能力和实验技能。
希望通过今后的学习和实践,能够更加深入地掌握微机原理与接口技术的知识,为将来的工作和研究打下坚实的基础。
试验一存储器读写实验一、存储器读写实验目的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、掌握直流电机的驱动原理。
实验一汇编语言程序设计上机实验的基本过程——PB14000521 王艳红〇、实验目的和要求:1.熟悉汇编语言程序设计上机实验的计算机软硬件平台。
2.熟悉汇编语言程序设计上机实验的过程。
3.熟练掌握汇编语言源程序的编辑及对其汇编、连接、运行的过程。
4.熟练掌握使用DEBUG调试和运行程序的方法(“工欲善其事,必先利其器!“)。
一、实验内容和过程注:由于实验内容有两个题目,为了写实验报告时思路的连贯性,对于实验内容和过程两个题目分开写。
1.0 实验内容原题1.请先充分分析和理解课件的源程序,然后输入、编辑该程序,并完成对其汇编、连接、运行等操作过程。
再用调试程序debug来查看、记录(建议使用表格形式)和分析CS、IP、DS、ES、SS、SP以及AX、DX等程序中所使用到的和自己感兴趣的寄存器(例如标志寄存器),在该程序执行前、执行过程、执行结束(出现有“Program terminatednormally”提示信息)返回DOS等各个步骤的状态值,亲历查验程序运行的各个环节的状态(包括查看数据段、堆栈段的存储内容),全面分析和充分理解汇编语言源程序的组成,以及DOS系统平台调用执行程序的过程(包括返回DOS状态的操作原理)。
1.1 程序的算法思想a.例题中程序的主要功能是在DOS界面输出字符串“This is a sample program.”,并自动换行。
b.程序中定义了三个段DATA、STACK和CODE。
DATA中以DA1为偏移地址的名定义了一个字符串“This is a sample program.”和三个字符,其中0DH是CR(即回车)的ASCII码,0AH是LF(即换行)的ASCII码,$是后续显示字符串功能的结束字符串标志。
STACK中定义了一个栈,这个栈内定义了100个字节的空间,但是没有放入具体内容。
CODE中定义了一个MAIN过程,MAIN过程中的FAR说明了是段间调用,ASSUME指明了段寄存器与段基址的对应关系。
在此处即为CS对应CODE,DS对应DATA,SS对应STACK。
START标志着汇编程序的一个标号,定义了程序的入口。
接着的两行代码MOV AX,STACKMOV SS,AX是将STACK段基址送给SS,之所以分为两步是因为不能在两个段寄存器之间直接传送数据,接下来的PUSH DS是将DS的值放到栈中暂时保存下来,因为下面字符串输出的时候需要改变DS的值,下面两行代码MOV AX,0PUSH AX将0000H压入栈中,这是因为在子过程结束后,执行RET返回命令后,因为是远调用,会先从栈中弹出两个字节为IP赋值,然后弹出两个字节为CS赋值以便返回主程序。
我们知道,在AH=9时,INT21的功能是显示字符串,串地址为DS:DX,‘$’为结束符。
所以下面的四行代码MOV AX,DATAMOV DS,AXMOV AH,9MOV DX ,OFFSET DA1是在为字符串输出做准备。
将字符串段地址DATA赋值给DS,字符串偏移地址DA1赋值给DX,9赋值给AH,则执行INT 21H时,字符串“This is a sample program.”和回车就显示在DOS界面上。
RET返回原地址,MAIN EDNP表示MAIN过程结束。
CODE ENDS 表示CODE段结束。
END START表示汇编源程序结束。
1.2 程序的流程图数数区车换结标识栈栈区节码远调过栈区图一:程序一流程图栈为时值栈为值数区数区调号输从过结义结汇编结2.0 实验内容原题2.请编写一个汇编源程序,实现从键盘输入的小写字母用大写字母在屏幕上显示出来。
提示:键盘输入单个字符并回显使用1号DOS功能调用,出口参数在AL寄存器。
屏幕显示输出单个字符使用2号DOS功能调用,入口参数送DL寄存器。
(本题的目的就是让上机实验者亲历使用和体验一下DOS功能调用,来为下一次的实验热身。
)要求:* 在程序运行时,先输入的小写字母在随后“自动”显示大写字母时仍在屏幕上。
* 至少能正确实现一个英文字母大小写的转换且能正常返回DOS即可,而不论转换字母的个数和转换方式。
* 类同第1题的要求,使用调试程序debug来分析自编的该程序2.1 程序的算法思想a.本题中所做程序主要功能是在DOS界面显示说明语句:“Please input a smallword:”并且将一个从键盘输入的小写字母转换成大写字母显示在DOS界面。
b.程序中定义了三个段:DATA、STACK和CODE。
DATA段定义了一个字符串Please input a small word。
STACK段定义了一个长度为100字节的栈。
CODE为代码段。
其中包含一个远调用过程MAIN,其段寄存器与段基址的对应关系为CS:CODE,DS:DATA,SS:STACK。
START开始之后开始第一条可执行语句。
这一部分的主要功能是将DS的段基址和0000H压入栈,将DS:DX赋值为DATA:DA1,使用9号DOS功能输出字符串:“Please input a small word:”,使用1号DOS功能从键盘获得一个小写字母,将其ASCII码减32得到相应的大写字母的ASCII码,并利用2号DOS功能输出到DOS界面。
过程结束前,用RET返回主程序,然后依次结束过程,结束CODE 段定义,结束汇编源程序。
2.2 程序的流程图2.3 程序的清单(源程序)数数区输车换结标识栈栈区节码远调过栈区栈为时值栈为时值数区数区调号输图二:程序二流程图调号从键盘获写应写码参数调号从输写从过结义结汇编结二、实验思考的回答1. 汇编程序的任务是什么?汇编程序对源文件进行两遍扫视的过程是什么?答:汇编程序的任务是把汇编语言源程序模块转换为二进制的目标模块,其汇编过程包括语法检查并指出错误(如非法格式,未定义符号等),能按用户要求自动分配存储区(程序区、数据区、堆栈区),自动把各种进制数转换成二进制数,以及计算表达式值等,以最终生成目标目标文件和辅助信息文件(即列表文件和交叉引用文件)。
汇编程序把源程序文件转换为目标文件的过程需要对源文件进行两遍扫视。
第一遍扫视(PASS1)要处理伪指令,确定源程序每一行的偏移地址,扫视后应提供一张符号表(或称标识符表),它把源程序所定义符号的偏移地址记录下来。
其主要任务是(1)语法检查(2)确定每一行源程序的段内偏移地址,并记录员程序定义的符号的偏移地址,形成一张“符号表”。
图三:第一遍扫视主要流程第二遍扫视(PASS2)产生机器指令代码、确定数据等,产生相应的OBJ、LST和CREF文件。
图四:第二遍扫视主要流程2. 如何解决变量和标号的“向前引用”问题?地址“浮动”意味着什么?答:在汇编语言的操作数字段中出现变量或标号时,若该变量或符号尚未定义,则称为“前向引用”。
因为指令长度与操作数类型有关,而操作数类型则与有关变量或标号的类型有关。
在向后引用时,这些都是确定值,但向前引用时就会发生困难了。
例如汇编程序MASM在翻译"JMP NEXT"指令时,若NEXT未定义(前向引用),MASM不知道NEXT与JMP的距离,此时,MASM默认其缺省属性NEAR而假定它们在同一段,且假定其距离大于-128~+127。但是MASM的假定有时不符合程序的实际情况,则将会产生错误的机器码,为了避免这种情况,在编写程序时,如果有前向引用,应指明引用的属性(距离)。由于物理零地址区是由系统占用的,因而用户程序的各段都起始于某个非零地址。
亦即段起始地址要在零地址的基础上“浮动”一个值,而此值要在连接时才能确定。
所以变量和标号都是浮动地址,如果指令的操作数字段涉及到变量或标号,那么由汇编程序确定的指令字中的值即为浮动值,此即所谓的“浮动地址”。
在LST文件中,浮动地址以R标记(Relocation)。
事实上就一个程序模块本身来说,“浮动地址”并无实质影响。
若是出现多个程序模块相连接的情况,当连接程序把几个模块中的某些段连接在一起形成一个段时,地址的浮动就会直接影响机器指令代码,此时连接程序就非常有必要或说是必须要修改各个模块程序中标以R的地址值,以得到正确的机器指令。
3.指令的物理地址是如何构成的?答:指令的物理地址是在连接过程中确定的。
连接程序LINK把目标模块OBJ文件(一个或多个)中的各段连接成一个整体即“EXE文件”。
汇编得到的OBJ文件虽然已是源程序对应的二进制机器码,但该文件不能直接运行,因为OBJ文件中的各段是独立的,它们的起始地址均被设为0,各段没有形成一个整体。这就需要连接程序LINK来将OBJ文件中的各段连接成一个整体即“EXE文件”。
连接程序LINK对所有OBJ模块扫描两遍。
第一遍扫描对所有段分配段地址,并建立一张“外部符号表”(又称“全局符号表”),记录外部符号(相对自身模块而言,在另外源程序模块中定义的标号、过程名、变量名等符号)的地址和属性。第二遍扫描确定与外部符号有关的机器指令,并创建“文件头”文件头包含操作系统把EXE文件从磁盘调入内存所需的信息)。由此所有指令的物理地址就被确定。
4.连接程序的主要工作是什么?答:1)找到要连接的所有目标模块;2)为所有要连接的目标模块中的所有段分配存储单元,即确定所有段地址值;3)确定所有汇编程序所不能确定的偏移地址值(包括浮动地址及外部符号所对应的地址);4)构成装入模块,并把它装入存储器5.使用Debug进行程序调试有哪些收获?答: DEBUG在程序调试的过程中有强大的功能,由于其功能的全面,可以方便地分步对代码进行调整,可以清楚地看到每一步寄存器以及标志位的状态。
例如-D,-R,-G,-T,-U都是本次实验过程中常用的调试功能。
如果汇编程序存在问题的话,能非常方便快捷地找到汇编程序的问题所在。
由于本次试验较为简单,所以并没有用其来发现一些错误,只是利用debug的功能更深入的对程序运行过程进行了了解。
而关于利用debug来发现问题,解决问题的技巧等方面,还需后续做了更多的实验再来总结。
三、实验心得本次实验是微机原理这门课的第一次上机实验,上机之前就比较激动,因为本身也是特别喜欢这门课,终于可以把学到的知识通过实践来自己操作。
而实验课上,老师的风趣幽默和博闻强识更加深了我对上机课的喜爱。
因此,实验课结束后更激动。
在本节实验课上,我课前认真预习实验讲义,在上机实验课上熟悉了汇编语言程序设计上机实验的计算机软硬件平台,熟悉了汇编语言程序设计上机实验的过程,掌握了汇编语言源程序的编辑及对其汇编、连接、运行的过程,并且学会了使用DEBUG调试和运行程序的方法。
并且自己写了一个汇编的小程序,非常有成就感。
在此过程中遇到的两个还没解决的小问题是关于DOSBox窗口的问题,第一是怎么能将DOSBox窗口放大而字体不放大,第二是怎样可以实现DOSBox窗口中的翻页问题。