中国石油大学2016年微机原理实验程序(最新)终稿
微机原理实验指导书定稿

实验一二进制码转换为BCD码一、实验目的1、掌握数码转换基本方法,加深对数码的理解。
2、用于十进制BCD码显示。
二、实验内容将AX的内容转换为十进制BCD码。
三、实验程序框图四、实验步骤联机模式:(1)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开8KASM文件夹,点击S2.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。
⑵复位RST键,由于AX中给定数为0FFFF,查看BCD码结果保留在4100H~4104H单元中,故其值应为06、05、05、03、05。
脱机模式:⑴在P.态,按SCAL键,输入2CE0,按EXEC键。
⑵复位RST键,由于AX中给定数为0FFFF,查看BCD码结果保留在4100H~4104H 单元中,故其值应为06、05、05、03、05。
五、实验程序清单;将AX拆为5个BCD码,并存入RESULT开始的5个单元DA TA SEGMENT A T 0ORG 4000HRESULT DB 5 DUP(?)DA TA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA ORG 2CE0HSTART PROC NEARMOV AX, DATAMOV DS, AXMOV DX,0000HMOV AX, 65535MOV CX, 10000DIV CXMOV RESULT, AL ;除以10000, 得WAN位数MOV AX,DXMOV DX,0000H MOV CX, 1000DIV CXMOV RESULT+1, AL ; 除以1000, 得QIAN位数MOV AX,DXMOV DX,0000HMOV CX, 100DIV CXMOV RESULT+2, AL ; 除以100, 得BAI位数MOV AX,DXMOV DX,0000HMOV CX, 10DIV CXMOV RESULT+3, AL ; 除以10, 得SHI位数MOV RESULT+4, DL ; 得GE位数JMP $CODE ENDSEND START实验二 BCD 码转换为二进制码一、实验目的1、掌握BCD 码到二进制码的转换方法。
精石油大学《微机原理及应用》实验报告

2、复习内存分段概念、数据类型伪指令语句中的表达式、无进位加法和带进位加法的实现、多位10进制数带进位加法的实现、简单循环的实现;
3、观察数据段和代码段的位置和大小。
四、编写完整的程序代码
DATA SEGMENT ;定义数据段
X DB 32,-43,76,95,-1
代码段的大小:0001FH规范字节
C:\masm>LINK TEST3;
C:\masm>DEBUG TEST3.EXE;
其中TEST3为源程序的名字
2.写出程序的数据段、代码段的位置和大小
数据段位置:
起始地址:00000H,终止地址:0000EH,
数据段的大小:0000FH规范字节
代码段的位置:
起始地址:00010H,终止地址:0002EH,
Y DB -78,127,-128,-125,88
S DB 5 DUP(?)
DATA ENDS
CODE SEGMENT ;定义代码段
ASSUME CS: CODE, DS:DATA
START: MOV AX,DATA;数据段初始化
MOV DA,AX
MOV CL,5
MOV BX,0
NEXT MOV AL,X[BX]
中国石油大学(华东)现代远程教育
实验报告
课程名称:微机原理及应用
实验名称:循环程序设计
实验形式:在线模拟+现场实践
提交形式:在线提交实验报告
学生姓名:学 号:
年级专业层次:1606级机械设计制造及其自动化专升本
学ห้องสมุดไป่ตู้中心:青岛直属学习中心
提交时间:2017年12月20日
微机原理实验指导书(新版)资料

微机原理与接口技术实验指导书主编:王青岳陈超波张晓倩许韫韬西安工业大学电信学院软件实验部分 (1)1 汇编基本原理 (2)1.1 程序,可直接运行的程序,汇编源程序,汇编 (2)1.2 CPU取指令、执行指令的过程 (3)2汇编工具MASM5.0使用方法 (3)2.1汇编源程序文件的建立方法 (3)2.2编译阶段 (5)2.3链接阶段 (6)2.4 程序调试阶段 (7)3软件实验项目 (9)软件实验一清零实验 (9)软件实验二码制转换实验 (11)软件实验三数据区移动实验 (13)软件实验四冒泡法排序实验 (16)软件实验五存储器校验实验 (18)软件实验六实时时钟显示实验 (19)硬件实验部分 (21)1 微机实验系统简介 (22)2 实验系统上位机软件使用方法 (23)2.1 软件启动 (23)2.2 如何使用星研集成环境软件 (23)3 硬件实验项目 (32)硬件实验一8255 PA口控制PB口实验 (32)硬件实验二8255控制交通灯实验 (34)硬件实验三74HC138译码器实验 (37)硬件实验四8253方波实验 (39)硬件实验五8259A中断控制器实验 (41)硬件实验六8250可编程通信实验(与微机) (44)硬件实验七简易电子琴实验 (49)硬件实验八LED8 * 8点阵实验 (58)软件实验部分1 汇编基本原理1.1 程序,可直接运行的程序,汇编源程序,汇编程序程序以文件的形式存在,它是由若干条“指令”顺序排列存储构成的。
指令是对符合CPU指令集的所有信息的统称,“指令”在程序中以两种形式存在,一种是以“指令代码”的形式(在可直接运行的程序文件中),另一种是以“助记符”的形式(在汇编源程序文件中)。
无论“可直接运行的程序”还是“汇编源程序”,其中的指令都是以顺序排列的方式存储的,只是指令存在的方式不同。
可直接运行的程序当程序中的指令是以可执行的“指令代码”的形式存在时,该程序即为可直接运行的程序,该程序所在的文件即为“可执行程序文件”。
微机原理实验

微机原理实验实验⼀8086指令使⽤实验⽬的通过实验掌握下列知识:1、8086指令: MOV,ADD,ADC,SUB,SBB,DAA,XCHG2、DEBUG命令: A,D,E,F,H,R,T,U。
3、BCD码,ASCII码及⽤⼗六进制数表⽰⼆进制码的⽅法。
4、8086寄存器: AX,BX,CX,DX,F,IP。
内容及步骤⼀、DEBUG 命令使⽤1、键⼊ DEBUG 进⼊ DEBUG 控制状态,显⽰提⽰符 '- '。
2、⽤命令 F100 10F 'A' 将'A'的ASCII码填⼊内存。
3、⽤命令 D100 10F 观察内存中的⼗六进制码及屏幕右边的ASCII字符。
4、⽤命令 F110 11F 41 重复上⼆项实验,观察结果并⽐较。
5、⽤命令 E100 30 31 32 …… 3F将30H-3FH写⼊地址为100开始的内存单元中,再⽤D命令观察结果,看键⼊的⼗六进制数是什么字符的ASCII码?6、⽤H命令检查下列各组⼗六进制数加减结果并和你的⼿算结果⽐较:(1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758H,347FH7、⽤R命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。
8、⽤R命令将AX,BX内容改写为1050H及23A8H。
⼆、8086常⽤指令练习1、传送指令1)⽤A命令在内存100H处键⼊下列内容:-A 0100↙****:0100 MOV AX,1234↙****:0103 MOV BX,5678↙****:0106 XCHG AX,BX↙****:0108 MOV AH,35↙****:010A MOV AL,48↙****:010D MOV DX,75AB↙****:010F XCHG AX,DX↙****:0111 ↙-注:****为段寄存器CS的值,是由计算机⽣成的;↙为回车操作。
微机原理实验讲义资料

微机原理实验讲义程曙艳编厦门大学自动化系2016年10月汇编语言的上机过程1、建立汇编语言的工作环境至少有以下程序文件:编辑程序,文件名,使用编辑程序代码生成*.asm。
汇编程序,文件名MASM.EXE,使用masm.exe对*.asm文件进行汇编,生成*.obj 文件连接程序,文件名LINK.EXE,使用link.exe对目标文件*.obj进行连接生成*.exe 文件调试程序,文件名DEBUG.EXE,使用debug.exe对可执行文件*.exe进行调试运行(1)编辑可以用记事本或DOS下的EDIT编辑器来编写源程序。
但程序保存时文件必须取名为*.asm 。
或EDIT 文件名.asm 打开已经存在的文件。
(2)汇编在DOS状态执行masm 文件名,则屏幕显示与操作如下:(3)连接汇编后产生的目标文件必须经过连接,才能成为可执行文件.exe。
在DOS 状态执行link 文件名,则屏幕显示与操作如下:(4)运行、调试>DEBUG 文件名.exeDebug运行后,出现状态提示符短划线-常用debug命令:D,显示内存单元内容R,显示与修改寄存器内容T、P,单步执行命令G,连续执行指令U,反汇编Q,退出DEBUG程序2. 汇编语言程序格式汇编语言由若干个段组成:堆栈段(保存数据、断点等信息)代码段(存放指令)必需数据段(定义数据,分配存储单元)附加段(定义数据,分配存储单元)每段必须有且仅有一个名字,以SEGMENT定义段的起始,以ENDS定义段的结束,整个程序结束后需以END收尾STACK SEGMENT......STACK ENDSDATA SEGMENT......DATA ENDSESEG SEGMENT......ESEG ENDSCODE SEGMENTASSUME CS:CODE ,DS:DATA,SS:STACK,ES:ESEGSTART:mov ax, datamov ds, axmov ax, esegmov es, axmov ax, stackmov ss, ax……….CODE ENDSEND START3. 程序例题:STACKS SEGMENT STACK ;堆栈段DW 128 DUP(?)STACKS ENDSDATAS SEGMENT ;数据段;请在这里定义您的数据STRING DB 13,10,'Hello World!',13,10,'$'DATAS ENDSCODES SEGMENT ;代码段ASSUME CS: CODES, DS: DATAS START: MOV AX,DATAS ;初始化MOV DS, AX;请在这里添加您的代码LEA DX, STRING ;显示字符串MOV AH, 9INT 21HMOV AH,01 ;等待键盘输入INT 21HMOV AX,4C00H ;退出程序INT 21HCODES ENDSEND START软件实验部分实验一二进制加、减法编程实验一、实验要求和目的1.熟悉汇编语言二进制多字节加法基本指令的使用方法;2.熟悉汇编语言二进制多字节减法基本指令的使用方法;3.掌握汇编语言编程的一般结构。
华电微机原理与接口实验实验(完整可用程序)

TPC-1实验系统的结构及使用说明1. 结构TPC—l实验系统不能单独使用,它必须和PC机相连才能工作。
系统由一块PCI总线驱动卡和一个实验台构成,实验台上有8251A、8255A、8253、DAC0832、ADC0809等芯片和小键盘、数码管、8MHz晶振等器件。
实验台的结构如图1所示。
图1 TPC—1实验台主要部件分布图为了实验方便,在每一部分实验电路附近都预留有单线信号插孔,实验时只要将相应插孔用单股导线相连即可。
2. 安装安装时请按下述步骤进行。
(1)用60芯扁平电缆线连接总线驱动卡和实验台。
(2)连接实验台电源。
(3)启动计算机。
(4)打开实验台电源开关,实验台上的指示灯亮即可进行实验。
注意:在进行线路的连接过程中,必须关闭实验台的电源,在断电条件下进行操作,否则可能会引起实验台的损坏。
3. 实验台上的I/O地址实验台上的I/O地址为200~23F共64个,分8个插孔引出,它们分别是200~207;208~20F;210~217;218~21F;220~227;228~22F;230~237;238~23F;实验时只要用导线将任一插孔信号引到相应电路的CS 端即可。
图2是I/O地址译码电路。
1图2 I/O译码电路4. 编写汇编程序时使用的I/O地址因为PCI总线结构支持P&P即插即用功能,所以微机分配给PCI扩展板的资源也是动态浮动的,而不是固定不变的,因此分配给设备的I/O地址、内存储器MEM地址以及中断INT号会随着微机不同而有所变化,所以在实验前必须确定当前微机中PCI卡的资源分配,从而确定实验台上的实际I/O地址和内存储器MEM地址,并在程序中使用该地址。
操作步骤如下:(1)打开“控制面板”中“系统”对话框,找到并打开“设备管理器”,可以看到“微机原理教学实验装置”,如图3所示。
(2)查看TPC的属性,如图4所示。
可以看到两个输入/输出范围(具体数值不同计算机可能不同),其中一个范围大小是0FFH的是PCI接口芯片占用的I/O地址空间,另一个一个范围大小是07FH的是TPC 设备占用的I/O地址空间;两个内存范围,一个范围大小是0FFH的是PCI接口芯片占用的内存储器MEM 地址空间,另一个范围大小是0FFFFFH的是TPC设备占用的内存储器MEM地址空间。
微机原理实验指导书

实验一 DOS命令与汇编源程序输入、汇编、连接、运行一、实验目的掌握在计算机上运行汇编语言程序的整个操作过程。
学会将自己编制的汇编语言源程序用EDIT编辑程序输入计算机并存盘;学会用MASM 宏汇编程序对汇编语言源程序进行汇编形成二进制目标文件;学会用LINK连接程序对二进制目标文件连接形成可执行文件;学会运行经汇编和连接后形成的可执行文件;学会用DEBUG调试程序运行和调试可执行文件。
二、实验设备1、PC系列不低于80286档次的微型机;2、DOS3.3以上版本的操作系统;3、EDIT,MASM,LINK,DEBUG执行程序。
三、实验步骤1、用EDIT编辑汇编源程序(1)MS-DOS Editor的启动与退出Editor是在DOS系统提示符下启动,其命令格式为:C:EDIT [Path] [filename]在编辑完成后,选择屏幕菜单的File命令(按“ALT+F”键)中的Exit项即可退出Editor。
(2)建立文本文件在MS-DOS Editor的屏幕菜单栏中File命令就是对文本文件的建立、存储和打印的操作。
A.建立文件(New)打开屏幕菜单栏中File下拉菜单,选择New项。
B.编辑文件将写好的汇编语言源程序输入到编辑文本区。
输入时,一行结束后按回车键(Enter)换行。
C.保存文件(Save)打开屏幕菜单栏中File下拉菜单,选择Save项在弹出的对话框中键入文件名。
如果要把文件保存到非默认路径下,则在键入文件名的同时键入路径。
D.打开文件(Open)打开屏幕菜单栏中File下拉菜单,选择Open项。
该窗口中有三个区可以选择要打开的文件:文件名区:可以直接键入要打开的文件名;文件表区:文件表中列出要打开的所有文件名,供用户选择;目录/磁盘区:键入的文件名是哪个磁盘目录中的,在该区中选择。
在Open对话框中用“Tab”或“Shift+Tab”键选择各区。
选完后按“OK”确定。
2.MASM宏汇编程序的使用方法(1)命令格式和功能命令格式:MASM文件名功能:对汇编语言源程序进行汇编形成二进制目标文件(2)操作过程在DOS下,将目录切换到汇编语言所在目录下,然后调入MASM宏汇编程序。
中国石油大学微机原理 实验一 DEBUG的使用

试验一寻址方式和DEBUG的使用什么是DEBUG?DEBUG是DOS提供的用于调试可执行程序的工具软件,是汇编语言程序设计常用的调试工具。
在DEBUG环境下,可直接检查和修改寄存器和内存的值,调试和运行程序,使用户进一步了解CPU内部的环境。
DEBUG程序的启动:在DOS的提示符下直接键入命令C:\>DEBUG ↙,进入DEBUG调试程序后,会出现DEBUG提示符“-”,此时就可以使用DEBUG命令了。
在XP环境下,用鼠标点击“开始”→“所有程序”→“附件”→“命令提示符”。
出现:C:\ Document and Setting \ Administrator >_>CD C:\ ↙C:\>在C:盘的根目录下C:\>debug ↙进入DEBUG调试程序后,会出现DEBUG提示符“-”,此时就可以使用DEBUG命令了。
XP环境下Dos窗口大小的切换用 Alt +↙熟悉DEBUG几个常用命令的功能及使用方法:(8个)1、R命令 (Register)。
功能:查看和修改寄存器的值。
格式:-R↙在R命令后面直接打回车,显示当前CPU 内部所有寄存器的值、标志位状态及将要执行的下一条指令。
若要显示修改某个寄存器的值,直接在R 后面输入该寄存器的名,然后回车,这时会显示该寄存器的当前值,新值直接输入即可。
注意:-R F慎用!无目的修改标志位状态会造成CPU状态混乱,不建议用。
-R 寄存器↙如:-R AX ↙AX 0000 ( 0000 当前值 ):1234 ↙( 1234 新值)讲义第44页,用R命令修改实验内容第一部分12个寄存器的值AX=1020H BX=5060H CX=A0B0H DX=E0F0H SP=FFFFH BP=0200H SI=3040H DI=7080H DS=1200H ES=1300H SS=1400H CS=1100H 2、D命令 (Dump)。
功能:显示存储器单元的值。
格式:-D 段寄存器名:起始地址在使用D命令之前,首先要明白,内存已经被划分为4个段,即:代码段CS、数据段DS、堆栈段SS和附加段ES。
微机原理及接口技术实验报告

微机原理及接口技术实验报告16位微机原理显示程序设计实验报告一、实验目的1.掌握PC机上以十六进制形式显示数据的方法。
2.掌握部分DOS功能调用使用方法。
二、实验设备PC微机一台、TD-PITD试验系统一套。
三、实验内容及说明一般来说,有许多程序需要显示输出提示运行的状况和结果,有的还需要将数据区的内容显示在屏幕上,并利用DOS功能调用完成一些提示信息的显示。
通过本实验,初步掌握试验系统配套操作软件的使用。
试验中所使用的DOS功能调用(INT 21H)说明如下。
(1)显示单个字符输出入口:AH=02H调用参数:DL=输出字符(2)显示字符串入口:AH=09H调用参数:DS:DX=串地址,’$’为结束字符(3)键盘输入并回显入口:AH=01H返回参数:AL=输出字符(4)返回DOS系统入口:AH=4CH调用参数:AL=返回码从存储区域读出的数据位十六进制数据,本程序设计的难点在于将十六进制的数据转变成ASCII码显示。
数值与ASCII的关系:0-9转换成ASCII 码是指直接在数字上加上30H即可,A-F转换成ASCII码时直接在数值上加上37H。
实验程序如下。
实验程序清单(例程序文件名:A1.ASM)stack1 segment stackdw 256 dup(?)stack1 endsdata segmentmes db 'press any key to exit!',0AH,0DH,0AH,0DH,'$'mes1 db 'show a as hex:',0AH,0DH,'$'sd db 'a'data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,offset mesmov ah,09Hint 21Hmov dx,offset mes1mov ah,09Hint 21Hmov SI,offset sdmov al,ds:[SI];and al,0F0Hmov cl,4shr al,clcmp al,0AHjb c2add al,07Hc2:add al,30Hmov dl,almov ah,02Hint 21hmov al,ds:[si]and al,0FHcmp al,0AHjb c3add al,07Hc3:add al,30Hmov dl,almov ah,02Hint 21Hkey:mov ah,1int 16Hjz keymov ax,4C00Hint 21Hcode endsend start四、实验步骤1.使用MASM5.0实现(1)编辑源代码源代码的编辑可在.txt 文档中直接编写,程序编写完成后将文件名改成a1.asm,并保存在MASM5.0文件夹所在的目录下MYCODE文件夹中,如:D:\ MASM5.0\MYCODE。
微机原理实验指导书

微机原理实验指导书实验⼀数据传送实验⽬的 :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 单元中存放。
微机原理实验

实验一调试程序DEBUG的使用方法一、实验目的通过对DEBUG调试程序的使用,熟悉用DEBUG调试汇编语言程序的方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,为后续程序编制和调试打下基础。
二、实验原理调试程序DEBUG 的特点:在受控环境中测试程序;装入,显示或修改任何文件;执行DOS程序;完成磁盘实际读/写操作;建立或汇编汇编语言程序。
DEBUG的命令格式:DEBUG [drive:][path][filename.exe][param...]其中:drive: 是DEBUG将要调试的文件所在的磁盘驱动器。
path: 是查找DEBUG将要调试的文件所需的子目录路径,若未指定,DOS使用当前目录。
filename.exe 是DEBUG将要调试的文件名。
param 是将被调试的程序(或文件)的命令行参数。
例如:调试放在c 盘asm文件夹下的汇编程序t1.exe。
c:> debug c:\asm\t1.exe ↙(↙回车符)当显示器出现提示符“-”时,说明已进入DEBUG状态,这时,可用DEBUG命令进行操作。
DEBUG使用单字符命令:R命令:查看、改变CPU寄存器的内容D命令:查看内存中的内容E命令:改写内存中的内容U命令:将内存中的机器指令翻译成汇编指令(反汇编)T命令:执行一条机器指令A命令:以汇编指令的格式在内存中写入一条机器指令Q命令:退出DEBUG 状态三、实验内容1、参考教材,熟悉DEBUG的使用方法,运行各种命令,观察运行后的况。
2、用DEBUG调试程序调试汇编语言例子te1.exe程序(程序见后面)。
1)用U命令对te1.exe文件进行反汇编,比较源程序te1.asm和反汇编后的指令代码。
2)用R命令查看各寄存器的初试状态。
3)用T命令单步跟踪te1.exe的执行过程,写出每一步执行后,相关寄存器中的内容。
四、实验步骤1、按实验内容用全屏幕编辑程序EDIT编写源程序te1.asm2、运用汇编源程序,产生目标文件.OBJ3、连接目标文件,产生可执行文件.EXE4、用DEBUG运行可执行文件。
微机原理实验(含解答程序)

微机原理实验(含解答程序)-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN微机原理实验课题(共16个内容,附解答程序)(汇编程序可以使用MASM FOR WINDOWS)1.将偏移地址为2000h开始的100个单元依次设置为0~99。
2.将两个64位的二进制数相加,记录相加的和以及各个状态标志的值。
3. 编写程序,在屏幕上分行显示自己的姓名、学号。
4. 编写程序,通过键盘输入0——9之间的一个数字,利用查表法计算其平方。
在DEBUG下查看执行结果。
5. 用分支结构设计程序实现符号函数100010xy xx>⎧⎪==⎨⎪-<⎩,要求x和y存放在内存单元中,并将判断的结果在屏幕上显示输出。
6. 在键盘上输入一个字符,判断是否为小写字母,若不是,显示错误信息,若是,则将其转换为大写字母并显示。
7. 在键盘上输入一个字符,判断它是一个数字、大写字母还是小写字母,若为数字,则显示digital,若为字母,显示letter,否则,显示other。
8. 将字节型变量x的低四位(一位十六进制数)以十六进制数的形式显示。
9. 编制程序计算S=1+2·3+3·4+4·5+……+N(N+1)+……直到N (N+1)大于200为止,并将结果由屏幕上显示出来。
10. 将字形变量x以二进制数的形式在屏幕上显示输出。
11. 将字形变量x以十六进制数的形式在屏幕上显示输出。
12. 将内存单元缓冲区中的符号数(20个)按从小到大的顺序排列,并以十六进制数的形式显示。
13. 编制程序计算S=1+2+3+……+N,并将结果由屏幕上显示出来。
(要求:在屏幕上显示提示信息,提示输入N,N用十六进制表示,且N小于0FH,用子程序实现(段内),将输入的结果用十六进制数输出显示,显示结果的程序用子程序是实现(段间))。
14.要求在键盘上输入一个小于四位的十进制数,将其转换为二进制数存放,并讲转换后的结果以十六进制数的形式在屏幕上显示出来。
(完整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 。
微机原理实验【范本模板】

软件实验一实验内容在数据区定义字母数字串,分别统计数字、大写字母、小写字母个数,分别存放在SHUZI、DAXIE、XIAOXIE单元中。
多次统计,记录统计结果。
实验要求在熟悉wave 6000编程环境的基础上,完成上述源程序的输入、汇编、修改、运行等实验步骤,直到程序执行得到正确结果为止.熟练掌握单步运行、断点设置、自动运行、寄存器内容,数据区内容查看等程序调试技术。
DATA SEGMENTBUF DB 'DADD\545s。
’COUNT EQU $-BUFORG 0020HSHUZI DB 00HDAXIE DB 00HXIAOXIE DB 00HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXXOR AX,AXMOV CL,COUNTXOR CH,CHLEA SI,BUFCLDGET:LODSBCMP AL,30HJB OTHERCMP AL,39HJA NEXT1INC SHUZIJMP OTHERNEXT1:CMP AL,41HJB OTHERCMP AL,5AHJA NEXT2INC DAXIEJMP OTHERNEXT2:CMP AL,61HJB OTHERCMP AL,7AHJA OTHERINC XIAOXIEOTHER:LOOP GETMOV AH,4CHINT 21HCODE ENDSEND START软件实验三实验内容将内存区定义的字母数字串的统计结果以16进制形式显示出来,显示格式为: The Nembers of Digital is:XXHThe Nembers of Capital Letters is:XXHThe Nembers of Small Letters is:XXH程序要求:1、二进制转十六进制并显示的功能由BTOHDSP实现2、回车换行用CRLF宏指令实现3、字符H的显示用OUTPUT宏指令实现4、提示信息的显示用宏INOUT宏指令实现实验要求:调试程序,直到正确实现所要求的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一寻址方式和汇编语言程序上机调试步骤2、在数据段X单元存放有数据42,Y单元存放有数据-43,编程求这两数之和,并把结果存放到S单元。
data segmentx db 42y db -43s db 0data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov al,xadd al,ymov s,alloop: jmp loopcode endsend start3、已知数据段X单元存放的数据为10H,编程将该数据左移四位后存放到Y单元。
data segmentx db 10hy db 0hdata endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov cl,4hmov al,xrol ax,clmov y,alloop: jmp loopcode endsend start实验二循环程序设计1、编程将数据段从00H单元起始的十个单元赋值,值为00H~09H。
DATA SEGMENT DAT DB 10 DUP(?)DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV CX,10MOV BX,0LOOPER: MOV DAT[BX],BLINC BXLOOP LOOPERLOOP:JMP LOOPCODE ENDSEND START2、现有两组数,X= -78, 127,-128, -125,88,Y=32, -43, 76, 95, 1。
编程求两个数组之和,并将结果传送到S数组内,S (i)= X(i)+ Y(i)。
DATA SEGMENTORG 0000HX DB -78,127,-128,-125,88Y DB 32,-43,76,95,1S DB 5 DUP(?)DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV CX,5MOV BX,0LOOPER :MOV AL,X[BX]MOV DL,Y[BX]ADD AL,DLMOV S[BX],ALINC BXLOOP LOOPERLOOP: JMP LOOPCODE ENDSEND START3、现有两个多位十进制数,X=5790123467,Y=1357902468。
编程求X和Y之和,并将结果传送到S。
DATA SEGMENTORG 0000HX DB 67H,34H,12H,90H,57HY DB 68H,24H,90H,57H,13HS DB 5 DUP(?)DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV CX,5MOV BX,0LOOPER :MOV AL,X[BX]MOV DL,Y[BX]ADC AL,DLDAAMOV S[BX],ALINC BXLOOP LOOPERLOOP: JMP LOOPCODE ENDSEND START实验三、子程序调用程序设计1、用子程序调用(段内近程调用)编程,将以下十个数从小到大排序。
85,77,126,-1,-43, 37,-128, 11,-19,13。
DATA SEGMENTX DB 85,77,126,-1,-43,37,-128,11,-19,13 COUNT EQU $-XDATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXCALL SUB1LOOP4:JMP LOOP4SUB1 PROC NEARMOV SI,0MOV CX,COUNTDEC CXLOOP1:MOV DX,CXLOOP2:MOV AL,X[SI]CMP AL,X[SI+1]JL LOOP3XCHG AL,X[SI+1]MOV X[SI],ALLOOP3:INC SILOOP LOOP2MOV CX,DXMOV SI,0LOOP LOOP1RETSUB1 ENDPCODE ENDSEND START实验四、DOS系统功能调用1、从键盘连续输入5个单个字符(如:1、2、3、4、5),并将其压入堆栈,并显示。
DATA SEGMENTDUF DB 10 DUP(?)DATA ENDSSTACK SEGMENTSA DB 100 DUP(?)TOP LABEL WORDSTACK ENDSCODE SEGMENTASSUME DS:DATA,CS:CODE,SS:STACK START:MOV AX,STACKMOV SS,AXMOV SP,OFFSET TOPPUSH DSSUB AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV CX,05HMOV AL,0S1:MOV AH,1INT 21HPUSH AXLOOP S1MOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HMOV CX,05HMOV BX,4S2:POP AXMOV DUF[BX],ALDEC BXLOOP S2MOV BX,0MOV CX,05HS3:MOV DL,DUF[BX]INC BXMOV AH,2HINT 21HLOOP S3INC ALMOV AH,4CHINT 21HCODE ENDSEND START2、从键盘输入一行字符串到内存缓冲区,并显示。
DATA SEGMENTX DB 50DB ?DB 50 DUP('$')DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET XMOV AH,0AHINT 21HMOV DL,0AHMOV AH,02HINT 21HMOV DL,0DHMOV AH,02HINT 21HMOV DX,OFFSET[X+2]MOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START实验五接口实验预备知识1、调试5秒倒计时程序,掌握1秒延时子程序的调用方法,观察屏幕输出结果,调整好延时常数。
DATA SEGMENTX DB 35H,34H,33H,32H,31HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA BX,XMOV CX,5LOOP1:MOV DL,[BX]INC BXMOV AH,02HINT 21HCALL DELAYLOOP LOOP1MOV AH,4CHINT 21HDELAY PROC NEARPUSH BXPUSH CXMOV BX,800FOR1: MOV CX,0FFFFHFOR2: LOOP FOR2DEC BXJNZ FOR1POP CXPOP BXRETDELAY ENDPCODE ENDSEND START实验六简单的输出接口1、利用74LS75芯片设计一个简单的输出接口电路。
先使1个绿色LED亮3秒钟后熄灭,然后使1个黄色LED亮灭3次后熄灭,亮灭间隔1秒钟,最后使1个红色LED亮3秒钟熄灭。
以上现象重复2次,然后所有LED 熄灭。
要求总线数据信号为高电平时,LED点亮。
CODE SEGMENTASSUME CS:CODEstart:mov di ,2l1:mov al ,02hmov dx,280hout dx,almov si,3next:call delaydec sijnz nextmov al ,00hmov dx,280hout dx,alcall delaymov si,3l2:mov al,04hmov dx,280hout dx,alcall delaymov al,00hmov dx,280hout dx,alcall delaydec sijnz l2mov al,08hmov dx,280hout dx,almov si,3next1:call delaydec sijnz next1mov al ,00hmov dx,280hout dx,al call delaydec dijnz l1MOV AH,4CHINT 21HDELAY PROC NEARPUSH CXMOV BX,300HFOR1:MOV CX,0FFFFHFOR2:LOOP FOR2DEC BXJNZ FOR1POP CXRETDELAY ENDPCODE ENDSEND START2、利用74LS273芯片设计一个简单的输出接口电路,使八个LED循环顺序点亮,要求每个LED亮0.5秒,循环3次,然后所有LED 熄灭。
要求总线数据信号为高电平时,LED点亮。
CODE SEGMENTASSUME CS:CODESTART:MOV CX,3AA:MOV BX,8PUSH CXMOV DX,280HMOV AL,01HBB:OUT DX,ALCALL DELAYMOV DX,280HROl AL,1OUT DX,ALDEC BXJNZ BBPOP CXMOV DX,280Hmov AL,00hOUT DX,ALLOOP AAMOV AH,4CHINT 21HDELAY PROC NEARPUSH BXPUSH CXMOV BX,300HFOR:MOV CX,0FFFFHFOR1:LOOP FOR1DEC BXJNZ FORPOP CXPOP BXRETDELAY ENDPCODE ENDSEND START实验七简单的输入接口2、通过扳动电平开关输出的高低电平来作为读入信号,电平开关来回扳动一次(正确理解来回扳动一次的含义)作为一个读入过程,一个过程为一个累加数,在屏幕上显示累加结果,在屏幕上显示“6”后,再换行输出“END”,程序结束。
DATA SEGMENTX DB 'END','$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DL,31HMOV CX,6L1:PUSH DXMOV DX,280HIN AL,DXAND AL,01HMOV AH,ALL2:IN AL,DXAND AL,01HCMP AH,ALJZ L2L3:IN AL,DXAND AL,01HCMP AH,ALJNZ L3POP DX MOV AH,02HINT 21HINC DLLOOP L1MOV DL,0AHMOV AH,02HINT 21HMOV DL,0DHMOV AH,02HINT 21HLEA DX,XMOV AH,9INT 21HMOV AH,4CHINT 21HCODE ENDSEND START实验八数码管动态显示实验1、使两个数码管分别显示“HP”,显示保持5秒钟后两个数码管熄灭。