微机实验报告实验二汇总
实验名称实验二分支与循环程序设计实验_________________________ 指导教师_______________________专业班级___________ 姓名____________ 学号__________联系电话_____________一、任务要求1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM 单元,请按要求编写程序。
|X2 Y = <X/2 当X A40当20cX <40X 当X乞202.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过PO、P1、P2端口输出(以压缩BCD码的形式)。
P3.0为低电平时开始计时,为高电平时停止计时。
设计1s延时子程序(延时误差小于10us,晶振频率12MHZ。
提高部分(选做):a. 实现4位十进制加、减1计数,千位、百位由P1 口输出;十位、个位由P2 口输出。
利用P3.7状态选择加、减计数方式。
b.利用P3 口低四位状态控制开始和停止计数,控制方式自定。
二、设计思路1.任务一:先判断输入自变量的正负性。
如果是负数则直接归到取反区间;如果是正数,则与20,40进行大小比较,即和20,40分别做减法,然后根据比较结果归到各个区间。
2.任务二:先设置好进位计数器数值,再将R3 R4和P0、P1、P2、P3清零。
开始先判断控制位P3.0是否为0,当P3.0=1时原地踏步重复判断,当P3.0=0时开始计时。
计时开始,进行秒钟B计数,计数后R0减一,每次计数完成用BCD码子程序转换,然后由P2输出秒钟,判断计数后R0值是否为0,若R0的值不为0,就跳转回秒钟继续计数,若R0的值为0,就把R0和P2进行清零后,开始分钟计数部分。
同理,每次分钟计数完之后用BCD码子程序转换,然后由P1输出分钟,判断计数后R1值是否为0,若R1的值不为0,就跳转回秒钟继续计数,若R1的值为0,就把R1和P1清零后开始时钟计数部分。
时钟计数完后同样用BCD码子程序转换,然后判断计数后的R2的值是否为0,若不为0,就跳转回秒钟计数,若R2为0,就吧R2和P0清零后直接跳出计数部分,从判断P3.0部分再开始.每两次计数输出之间穿插一个1s的延时程序。
就可以达到时钟的功能。
3.力口、减1计数程序:将十进制数的千位数和百位数存于P1,将十进制数的十位数和个位数存放于P2,P3.0至P3.3全为低电平则开始计数,否则停止计数。
P3.7为选择加一或减一的计数方式的控制位,P3.7为0时加1计数,P3.7为1时减1计数;R3, R4, R5为计数中的延时程序指定循环次数。
三、资源分配1.任务一:2000H: 输入的自变量2001H :若XW 20,则为取反结果若20vXV 40,则为X除以二的整数部分若X>40,则为平方后的低八位2002H :若20VXV 40,则为X除以二的余数部分若X>40,则为平方后的高八位DPTR :数据指针2.任务二:R0 、R1、R2:秒、分、时进位计数器B:秒钟计数R3:分钟计数R4:时钟计数P0:时钟输出P1 :分钟输出P2:秒钟输出P3:电子钟开关控制3.力口、减1计数程序:P1:十进制数的千位数和百位数P2:十进制数的十位数和个位数P3.0-P3.3 :是否进行计数的4个控制位P3.7 :选择加一或减一的计数方式的控制位R3, R4, R5:计数中的延时程序指定循环次数。
四、流程图1.任务一:EDNYA=20?NC\=0?A=40?NCY=O?Yu DPTR—AA取反INC DPTRa I)PTR~AINC DPTR aDP I R^BCED2.任务二:ORG 0000H五、源代码1. 任务一: File n ame: l.asmDescriptio n: 多分支程序设计 Date: 2014/10/8Desig ned by: LXQ Source used: 2000H: 输入的自变量2001H:若X 20,则为取反结果若20 V XV 40,则为X 除以二的整数部分 若X > 40,则为平方后的低八位2002H :若20V XV 40,则为X 除以二的余数部分若X > 40,则为平方后的高八位 DPTR:数据指针LJMP MAINORG 0100H MAIN: MOV A,#25MOV B,#00HMOV DPTR,#2000HMOVX @DPTR,AJNB ACC.7,COMP1SJMP LOOP1 COMP1: CJNE A,#20,COMP2SJMP LOOP1 COMP2: JC LOOP1CJNE A,#4O,COMP3SJMP LOOP3 COMP3: JC LOOP2SJMP LOOP3LOOP1: CPL ASJMP STORELOOP2: MOV B,#02HDIV AB;SJMP STORELOOP3: MOV B,AMUL ABSJMP STORESTORE: INC DPTRMOVX @DPTR,AINC DPTRMOV A,BMOVX @DPTR,ASJMP $高位和低位依次存入片外原地踏步RAM;输入自变量;B清零;设置数据指针;存入片外RAM;判断符号位;负数则取反;A工20H时跳转到COMP2;A=20H时取反;CY=1时取反;A工40H时跳转到COMP3;A=40H时平方;CY=1时除以二;CY=0时平方;取反操作;跳转存储指令除以二;跳转存储指令;平方;跳转存储指令;设置数据指针MOV P1,A 输出分钟END2.任务二:ORG 0000HLJMP MAINORG 0100HMAIN: MOV R0,#60MOV R1,#60MOV R2,#24 ; 时针、分针、秒针计数器赋初值MOV R3,#0HMOV R4,#0H ; 时钟、分钟赋初值MOV P0,#0HMOV P1,#0HMOV P2,#0HMOV P3,#0HSTART: JB P3.O,STOP ;若P3.0为高电平则停止计时ACALL DLYMOV A,BADD A,#01HDA AMOV B,A ; 秒钟计时MOV P2,A ;输出秒钟DJNZ R0,START ;R0-1, 不等于零则跳到START继续循环MOV B,#0HMOV P2,#0HMOV A,R3ADD A,#01HDA AMOV R3,A ; 分钟计时MOV P1,A 输出分钟《微机实验》报告MOV R0,#60 ; 计数器归位DJNZ RESTART ;R1-1, 不等于零则跳到START!续循环MOV B,#0HMOV R3,#0HMOV P1,#0HMOV A,R4ADD A,#01HDA AMOV R4,A ; 时钟计时MOV P0,A ;输出时钟MOV R1,#60 ;计数器归位DJNZ R2,START ;R2-1, 不等于零则跳到START!续循环SJMP MAINSTOP: SJMP $ ;原地踏步DLY: MOV R5,#46 延时1s,误1us ; 延时1s,误差1usDLY:DELAY: MOV 72H,#100LOOP3: MOV 71H,#100LOOP1: MOV 70H,#47LOOP0: DJNZ 70H,L OOP0NOPDJNZ 71H, LOOP1MOV 70H,#46LOOP2: DJNZ 70H, LOOP2NOPDJNZ 72H,L OOP3MOV 70H,#48LOOP4: DJNZ 70H, LOOP4RETMOV P1,A 输出分钟MOV R7,AEND 3.力口、减1计数程序: ORG 0000H LJMP MAIN MAIN: MOV P1,#00H MOV P2,#00H MOV P3,#7FH START: JB P3.0,START JB P3.1,START JB P3.2,START JB P3.3,START LJMP DELAYDELAY: MOV R7,#24 DEL1: MOV R6,#61 DEL2: MOV R5,#170 DEL3: NOP NOPDJNZ R5,DEL3 DJNZ R6,DEL2 DJNZ R7,DEL1 JB P3.7 ,DOWN LJMP UP DOWN: CLR CORG 0100H ;P1端口置零 ;P2端口置零 ;P3 端口置 #7FH;判断是否开始计时;跳转到延时子程序;延时1秒;P3.7为0时,力口 1计数;P3.7为1时,减1计数MOV A,P2SUBB A,#01H MOV R1,A ANL A,#0FHMOV A,R1ANL A,#0F0HMOV R1,AMOV A,P1SUBB A,#00HMOV R0,AANL A,#0FHMOV R6,AMOV A,R0ANL A,#0F0HMOV R0,ACJNE R7,#0F H, LOOP1MOV R7,#09HLOOP1: CJNE R1,#0F 0H, LOOP2MOV R1,#90HLOOP2: CJNE R6,#0F H, LOOP3MOV R6,#09HLOOP3: CJNE R0,#0F0 H,L OOP4MOV R0,#90HLOOP4:MOV A,R1ADD A,R7 DA AMOV P2,AMOV A,R0ADD A,R6DA AMOV P1,ALJMP START ; 减1计数子程序UP: MOV A,P2ADD A,#01H UP: MOV A,P2DA AMOV P2,AMOV A,P1ADDC A,#00HDA AMOV P1,ALJMP START ;加1计数子程序END六、程序测试方法与结果1.任务一:⑴取X=10,则结果应为F5H,即(2000H)=0AH, (2001H)=F5H,(2002H)=00H。
编译结果如下:⑶取X=60,则结果应为3600,即(2000H)=3CH, (2001H)=10H,(2002H)=0EH。
编译结果如下:Memory 1Address:|X5565HX:0x002000 :3C100E0000000000000000000000000000 X:0x002033i00000000oa00ao oa00000000000000OQ00⑵取X=25,则结果应为0CH 即(2000H)=19H,(2001H)=0CH,(2002H)=01H。
编译结果如下:X:0x002000:X:0x002033:X:0x002066:OA F5 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00X:0x002000: 19 0C 01 00 00 00 00 00 00 00 00 00 00 00 00 00 X:0x002033: 00 0000 00 00 00 00 00 00 00 00 00 00 00 00 oa X:0x002066: 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00X:0x002066;000000000000co0G000000000000000000综上可得程序功能正确,运行成功。
微机原理实验报告2
广东工业大学实验报告信息工程学院通信工程专业班成绩评定_______ 学号姓名(合作者_ _号____) 教师签名实验3题目显示程序设计实验第9 周星期二第5-8节显示程序实验设计1一.实验目的1,学习显示器I/O程序设计方法;2,了解系统功能中断的设计方法;3,了解键盘光标键是如何公职;二.实验内容和要求1,用键盘上的上下左右键控制光标的移动.2,按行号*列号的形式给方块字符(ACS2码为0BDH)在屏幕上定位,按上下左右光标键使光标在屏幕上移动,光标的移动由方块字符组成的图形而在屏幕上保留下轨迹.三.实验主要仪器设备和材料计算机四.实验方法,步骤及结构测试1,源程序如下:TITLE DRA W---Program to draw on screen withread_c equ 0key_rom equ 16hup equ 48hdown equ 50hright equ 4dhlift equ 4bhblock equ 0dbhesc1 equ 1bhvideo segment at 0b800h ;define extra segwd_buff label wordv_buff db 25*80*2 dup(?)video endspro_nam segment ;define code segmentMain proc farAssume cs:pro_nam,es:videoStart:push ds ;set up stack for returnsub ax,axpush axmov ax,videomov es,axmov cx,80*25 ;clear screen by writing zeros to it mov bx,0Clear:mov es:[wd_buff+bx],0700hinc bxinc bxLoop clearmov ch,12d ;set screen pointer to center of screenmov cl,40dGet_char:mov ah,read_cint key_romcmp al,esc1jz exitmov al,ahcmp al,upjnz not_updec chNot_up:cmp al,downjnz not_downinc chNot_down:cmp al,rightjnz not_rightinc clNot_right:cmp al,liftjnz lite_itdec clLite_it:mov al,160dmul chmov bl,clrol bl,1mov bh,0add bx,axmov al,blockmov es:[v_buff+bx],aljmp get_charExit:retMain endpPro_nam endsEnd start五,实验报告要求1,显示器是如何定义窗口的大小的?显示器根据数据显示的单元数,v_buff d b 25*80*2 dup(?)定义窗口大小的.2,在文本方式下,什么是属性值?block equ 0dbh是定义的属性值,v_buff+bx+1,是放每个单元(一共25*80个)属性值的地方,即每个单元的高字节。
微机原理实验报告册(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)学习微机中断处理在接口技术中的应用。
微机实验二实验报告
广东技术师范学院实验报告学院:自动化专业:电气工程及其自动化(低压电力智能控制)班级:11低电成绩:姓名:曹睿学号:2011104743018 组别:组员:实验地点:教学楼703 实验日期:2012.04.11 指导教师签名:实验二项目名称:输入输出程序的编制一、实验目的与要求了解DOS的中断调用,实现数据的输入与输出,熟悉高级汇编调试工具Visualmasm的使用。
二、实验类型验证型实验三、实验原理及说明利用DOS中断调用中的1号,2号和9号调用功能实现数据的输入与输出,同时通过本程序的调试了解汇编软件的使用。
1号调用:键盘输入字符入口参数:无出口参数:输入字符的ASCII码在AL寄存器中。
2号调用:显示器输出入口参数:要输出的字符的ASCII码放在DL寄存器中出口参数:无9号调用:显示器输出字符串入口参数:DS:DX中存放输出字符串缓冲区的首地址,字符串要求用字符”$”结束。
出口参数:无四、实验主要仪器设备和材料预习情况操作情况考勤情况数据处理情况序号名称主要用途1 电脑调试程序五、实验内容和步骤1、写一段程序,输出一个字符串“Visualmasm!”步骤:在记事本里输入以下程序,把文件命名为zp1.asm:DATA SEGMENTSTRING DB'Visualmasm!$'DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, ES:DATASTART:MOV AX,DATAMOV DS, AXMOV ES, AXMOV AH,09HLEA DX,STRINGINT 21HMOV AH,4CHINT 21HCODE ENDSEND START打开命令提示符,生成zp1.obj文件,接着生成zp1.exe文件,输入td zp1.exe,就可以在TD里查看输入的程序。
点击数据区,右键点击GOTO,输入5B72:0000,可以看到Visualmasm的ASCII码,56 69 73 75 61 6C 6D 61。
微机实验报告2--周
《微机原理与应用》实验报告
实验序号:实验二实验项目名称:熟悉调试程序DEBUG
学号姓名专业、班
实验地点实1_314 指导教师周明实验时间2013-10-29
一、实验目的及要求
1、熟悉dos常用指令:dir,cd,path,copy,cls,exit,help等。
2、熟悉调试程序DEBUG
3、掌握常用DEBUG命令:
-A 汇编-U 反汇编
-T 单步执行-G 断点执行
-D 数据显示-R 寄存器
4、通过简单程序练习,熟悉程序格式
5、单步运行程序,通过观察窗口观察指令对寄存器中数据的影响
二、实验设备(环境)及要求
PC机一台。
三、实验内容与步骤
1进入dos界面,在运行界面输入cmd,然后输入debug:
输入指令r:
输入指令?:
输入指令-u
输入汇编指令,并开始编译
输入显示指令-d和进行单步执行-t:
求1到100累加,总和超过1000就停止的数:所以结果为(040B)h。
单步执行并显示:
四、实验结果与数据处理
五、分析与讨论
六、教师评语
成绩
签名:
日期:。
微机原理的实验报告
一、实验目的1. 理解微机的基本组成和各部件的功能;2. 掌握微机的工作原理和指令系统;3. 熟悉汇编语言程序设计的基本方法;4. 提高动手能力和实际操作技能。
二、实验内容1. 微机系统组成实验(1)实验目的:了解微机的基本组成和各部件的功能。
(2)实验内容:观察并记录微机系统的各个部件,如CPU、内存、硬盘、主板等,并了解它们的功能。
(3)实验步骤:①观察微机系统各个部件的连接情况;②了解各个部件的功能和作用;③分析微机系统的整体结构。
2. 微机工作原理实验(1)实验目的:掌握微机的工作原理。
(2)实验内容:观察并记录微机工作过程中的各个阶段,如指令的取指、译码、执行等。
(3)实验步骤:①观察微机工作过程中的各个阶段;②了解各个阶段的功能和作用;③分析微机工作原理。
3. 指令系统实验(1)实验目的:熟悉汇编语言指令系统。
(2)实验内容:学习汇编语言的基本指令,如数据传送指令、算术运算指令、逻辑运算指令等。
(3)实验步骤:①学习汇编语言的基本指令;②编写简单的汇编语言程序,实现数据传送、算术运算、逻辑运算等功能;③调试程序,观察程序运行结果。
4. 汇编语言程序设计实验(1)实验目的:提高汇编语言程序设计能力。
(2)实验内容:编写一个汇编语言程序,实现以下功能:①计算两个数的和;②判断一个数是否为偶数;③输出程序运行结果。
(3)实验步骤:①编写汇编语言程序,实现上述功能;②调试程序,观察程序运行结果;③分析程序运行过程,确保程序正确性。
三、实验结果与分析1. 微机系统组成实验:通过观察和记录微机系统的各个部件,了解了微机的基本组成和各部件的功能。
2. 微机工作原理实验:通过观察微机工作过程中的各个阶段,掌握了微机的工作原理。
3. 指令系统实验:通过学习汇编语言的基本指令,熟悉了汇编语言指令系统。
4. 汇编语言程序设计实验:通过编写汇编语言程序,提高了汇编语言程序设计能力。
四、实验心得通过本次微机原理实验,我对微机的基本组成、工作原理和指令系统有了更深入的了解。
微机原理与接口技术实验报告
微机原理与接口技术实验报告实验目的:本次实验旨在熟悉并掌握微机原理与接口技术的相关知识,通过实例操作和分析实验数据,加深对微机原理与接口技术的理解。
一、实验器材与软件1. 硬件器材:计算机主机、外设设备2. 软件工具:操作系统、编程软件二、实验步骤及结果分析1. 实验1:计算机开机自检在实验中,通过开机启动计算机,观察计算机进行自检的过程。
根据显示屏上的自检信息,可以判断计算机硬件的工作状态。
2. 实验2:串口通信测试在本实验中,通过串口通信实现计算机与外设设备之间的数据传输。
首先,将串口接口连接到计算机主机,然后进行相应的设置,包括波特率、数据位、停止位和校验位等。
在实验中,通过编写相应的程序,实现计算机与外设设备之间的数据交互。
通过观察实验结果,判断串口通信是否正常。
3. 实验3:并口通信测试本实验旨在通过并行口通信实现计算机与外设设备之间的数据传输。
首先,将并行口接口连接到计算机主机。
然后,根据实验要求进行相应的设置,包括数据总线的宽度、传输模式等。
通过编写程序,实现计算机与外设设备之间的数据交互。
观察实验结果,判断并口通信是否正常。
4. 实验4:USB接口测试在本实验中,通过USB接口实现计算机与外设设备之间的数据传输。
首先,将USB接口连接到计算机主机。
然后,在计算机中安装相应的驱动程序。
通过编写程序,实现计算机与外设设备之间的数据交互。
观察实验结果,判断USB接口是否正常工作。
5. 实验5:网络接口测试本实验旨在通过网络接口实现计算机之间的数据传输。
首先,将计算机连接到局域网中的其他计算机。
然后,进行相应的设置,包括IP地址、子网掩码等。
通过编写程序,实现计算机之间的数据交互。
观察实验结果,判断网络接口是否正常工作。
三、实验总结通过本次实验,我对微机原理与接口技术有了更深入的了解,掌握了串口、并口、USB接口和网络接口等常用接口的使用方法。
通过实验的操作和分析,我对接口通信的原理和实现方式有了更详细的了解,对计算机与外设设备之间的数据传输有了更清楚的认识。
微机保护 功能实验报告
微机保护功能实验报告引言随着计算机应用的普及和发展,我们越来越依赖于计算机进行工作和生活。
然而,计算机作为一种电子设备,也存在各种潜在的风险,如病毒和黑客攻击等。
为了保护计算机的安全和正常运行,我们进行了一系列微机保护功能的实验。
本报告旨在总结和分享这些实验的过程和结果。
实验目的1. 了解计算机系统的基本架构和工作原理;2. 学习常见的微机保护功能并掌握其原理和使用方法;3. 分析和评估各类微机保护功能的效果和局限性。
实验内容实验一:防病毒程序的安装和使用1. 了解病毒的分类和感染方式;2. 下载并安装主流的防病毒软件;3. 进行病毒扫描并清除感染的文件。
实验二:防火墙的配置和使用1. 了解防火墙的原理和分类;2. 配置操作系统内置的防火墙或使用第三方防火墙软件;3. 模拟攻击并测试防火墙的效果。
实验三:网络安全认证1. 学习网络安全认证的概念和原理;2. 配置和使用无线网络的加密认证功能;3. 进行无线网络攻击和抵抗的测试。
实验四:数据备份与恢复1. 了解数据备份和恢复的方法和工具;2. 配置自动或手动定期备份重要数据;3. 模拟数据丢失并进行恢复操作。
实验五:密码管理与安全使用习惯1. 学习创建强密码的原则和方法;2. 应用密码管理工具进行账户和密码的管理;3. 养成良好的密码安全使用习惯。
实验结果通过以上实验,我们获得了以下结果和收获:1. 防病毒程序的安装和使用可以有效提升计算机的安全性,及时清除病毒并保护系统;2. 配置和使用防火墙可以阻止外部攻击并控制程序的网络访问权限;3. 网络安全认证可以保护无线网络的安全,防止未经授权的设备接入;4. 数据备份与恢复是防止数据丢失的重要手段,及时备份可以最大程度减少数据损失;5. 密码管理和安全使用习惯是保护个人账户安全的基础,创建强密码和定期更换密码是必要的。
实验总结通过完成以上实验,我们深入了解了计算机保护功能的原理和使用方法。
同时,我们也发现了一些局限性,如病毒无法完全杜绝、防火墙可能导致误拦截、密码管理仍然面临被猜测等。
微机实验报告二
微机实验报告一、实验题目1、求1到100 的累加和,并用十进制形式将结果显示在屏幕上。
要求实现数据显示,并返回DOS状态。
2、将存储器中的十个字节型十六进制有符号数按从小到大的顺序排序并按十六进制显示出来。
56H、0ffH、78H、82H、12H、0、95H、58H、0bcH、34H二、实验目的1、会用汇编语言进行简单的程序编写,熟悉汇编语言的编程结构,熟悉汇编指令,会用指令实现数字的运算。
2、会将二进制形式存储的数字按照要求的进制显示输出。
三、实验内容1、求1到100 的累加和,并用十进制形式将结果显示在屏幕上。
要求实现数据显示,并返回DOS状态。
○1求和○2转换成10进制○3转换成ASCII码显示2、将存储器中的十个字节型十六进制有符号数按从小到大的顺序排序并按十六进制显示出来。
56H、0ffH、78H、82H、12H、0、95H、58H、0bcH、34H○1排序○2转成与16进制相对应的字符的ASCII码进行显示。
1、文字叙述设计思路程序一:首先我们设置一个在1到100的计数器,因为循环往往会采用CX,则由此我们采用loop指令,那么CX就是自动减一,所以我们用CX作为计数器,同时用AX作为累加器,AX=AX+CX循环100次即可求的累加和。
然后显示,汇编语言中存储器是按照二进制形式存储的,如果要显示,只能是显示字符,所以我们需要将计算出的结果每一位进行分离,并且表示成字符形式,然后输出相应的字符即可。
分离的方法:将AX/10进行字除法4次,则DX存储余数,AX存放商值,DL+30H即将数字转成字符的ASCII码。
最后将上面得到的字符显示出来。
程序二:第一先对10个数进行排序,排序的方法可以采用选择法,然后要实现十六进制输出,则必须先将数字转换成相应的字符形式,然后再显示出来,由于数字如果多了,分别将每一位转成十六进制字符太麻烦,所以我们采用了一个字符表,只需要将分离出来的数据当成位移量即可。
微机原理及应用实验报告
微机原理及应用实验报告微机原理及应用实验报告1. 引言微机原理及应用是计算机科学与技术专业的一门重要课程,通过该课程的学习和实验,我们可以深入了解微机的基本原理和应用技术。
本文将对我们进行的微机原理及应用实验进行详细报告,包括实验目的、实验内容、实验步骤、实验结果及分析等。
2. 实验目的本次实验的目的是通过实际操作,加深对微机原理的理解,掌握微机的基本组成和工作原理,以及学习并应用微机的常见应用技术。
3. 实验内容本次实验主要涉及以下内容:- 微机的基本组成和结构- 微机的工作原理- 微机的存储器和输入输出设备- 微机的指令系统和编程技术4. 实验步骤4.1 实验一:微机的基本组成和结构在这个实验中,我们首先学习了微机的基本组成和结构,包括中央处理器、存储器、输入输出设备等。
通过观察实际的微机硬件设备,我们对微机的组成有了更加直观的认识。
4.2 实验二:微机的工作原理在这个实验中,我们学习了微机的工作原理,包括指令的执行过程、中央处理器的工作原理等。
通过实际操作,我们对微机的工作过程有了更加深入的理解。
4.3 实验三:微机的存储器和输入输出设备在这个实验中,我们学习了微机的存储器和输入输出设备的原理和应用。
通过实际操作,我们了解了存储器的读写过程,以及输入输出设备的工作原理。
4.4 实验四:微机的指令系统和编程技术在这个实验中,我们学习了微机的指令系统和编程技术。
通过实际编写和执行简单的汇编语言程序,我们掌握了微机的编程技术,并了解了指令的执行过程。
5. 实验结果及分析通过以上实验,我们对微机的原理和应用有了更加深入的理解。
我们通过实际操作,掌握了微机的基本组成和结构,了解了微机的工作原理,熟悉了微机的存储器和输入输出设备,掌握了微机的指令系统和编程技术。
这些知识和技能对我们今后的学习和工作都具有重要的意义。
6. 总结通过本次微机原理及应用实验,我们深入了解了微机的基本原理和应用技术。
通过实际操作,我们对微机的组成和工作原理有了更加直观和深入的理解,掌握了微机的存储器和输入输出设备的原理和应用,以及微机的指令系统和编程技术。
东南大学微机原理第二次实验报告
《微机实验及课程设计》实验报告实验二汇编语言程序设计姓名:学号:专业:仪器科学与工程学院实验室:计算机硬件技术实验时间: 2014年04月24日报告时间: 2014年05月7日评定成绩:审阅教师:实验目的与内容目的:1)进一步熟悉汇编语言程序的编辑、宏汇编、链接、运行基本概念;2)熟练掌握动态调试程序TD/DEBUG 的常用命令或窗口功能,学会用TD/DEBUG 调试程序,修改数据和寄存器等环境;3)熟悉掌握汇编语言程序的典型数据结构设计、典型程序流控制方法,了解DOS/BIOS 功能调用的基本方法内容:1.从键盘输入任意字符串后,存入自定义存储单元,判断处理后将字符串中小写字母转换为大写字母(其它字符不变),并按原顺序将这些字符在屏幕上显示出来(参考程序P36),并显示字符串“The total number is XXXXX”。
2.从键盘输入一个0~255之间的十进制数,将其转换为16进制数,并在屏幕上显示变换前后的数据(参考程序P38)。
流程图实验源程序实验1data segmentinput db 100,100 dup(?)string1 db 0dh,0ah,'please input your strings',0dh,0ah,'$' string2 db 0dh,0ah,'the string you input are:',0dh,0ah,'$' string3 db 0dh,0ah,'do you want to conyinue(y/n)',0dh,0ah,'$' string4 db 0dh,0ah,'the total number is',0dh,0ah,'$'data endsstacks segment stackdb 256 dup(?)stacks endscode segmentassume cs:code,ds:data,ss:stacksmain proc farstart:mov ax,datamov ds,axmov ax,stacksmov ss,axloop1:mov dx,offset string1mov ah,09hint 21hmov dx,offset inputmov ah,0ahint 21hmov dx,offset string2mov ah,09hint 21hcall dispmov dx,offset string4mov ah,09hint 21hmov cl,input[1]add cl,30hmov dl,clmov ah,02hint 21hmov dx,offset string3mov ah,09hint 21hmov ah,01hint 21hcmp al,'y'jz loop1mov ah,4chint 21hmain endpdisp proc nearxor cx,cxmov cl,input[1]mov si,2again:mov dl,input[si]cmp dl,61h ;判断是否是小写字母jb nextcmp dl,7ahja nextsub dl,20h ;将小写字母转换成大写字母next:mov ah,02hint 21hinc siloop againretdisp endpcode endsend startdata segmentright db 1input db 4,5 dup(0)output db 00hten db 0ahstring1 db 0dh,0ah,'please input your number(0~255)',0dh,0ah,'$'string2 db 0dh,0ah,'The number you input is (00H~FFH)',0dh,0ah,'$' string3 db 0dh,0ah,'Do you want to continue (y/n):',0dh,0ah,'$'string4 db 0dh,0ah,'The number you input is not from 0~255',0dh,0ah,'$' data ends;----------------------------------------------------------------------- stacks segment stackdb 256 dup(0)stacks ends;----------------------------------------------------------------------- code segmentassume cs:code,ds:data,ss:stacksmain proc farstart:mov ax,datamov ds,axmov ax,stacksmov ss,axloop1:mov output,00hmov dx,offset string1mov ah,09hint 21hmov dx,offset inputmov ah,0ahint 21hmov right,1call changecmp right,0jz errormov dx,offset string2mov ah,09hint 21hmov al,outputmov dl,almov cl,4shr dl,clcall dispmov dl,aland dl,0fhcall dispjmp goerror:mov dx,offset string4mov ah,09hint 21hgo: mov dx,offset string3mov ah,09hint 21hmov ah,01hint 21hcmp al,'y'jz loop1mov ah,4chint 21hmain endp;------------------------------------------------------------------------ change proc nearclcxor ax,axxor bx,bxxor dx,dxmov cl,input[1]mov si,2again:mov bl,input[si]cmp bl,30hjb error1cmp bl,39hja error1sub bl,30hdec clcmp cl,0jz overmov ax,1push cxloop2:mul tenloop loop2pop cxmul bladd output,al ;----jc errorinc sijmp againover:add output,bl ;----jnc over1error1:mov right,0over1:retchange endp;--------------------------------------------------------------------------- disp proc nearpush dxpush axcmp dl,9jbe numadd dl,7 ;----num: add dl,30hmov ah,02h int 21hpop axpop dxretdisp endpcode ends end start实验结果实验一实验二。
