北邮微机实验报告

合集下载

北京邮电大学微机原理软件实验报告

北京邮电大学微机原理软件实验报告

北京邮电大学微机原理软件实验报告信息与通信工程学院微机原理软件实验报告班级:姓名:学号:班内序号:时间:微机原理软件实验·报告实验一DEBUG 的使用一、实验目的1.掌握汇编程序的编辑,编译,连接和执行的全过程;2.学习和掌握用DEBUG 调试程序的方法。

二、实验内容1. 用编辑软件,输入以下汇编语言源程序:DAT SEGMENTA DB 20 ;(自定)B DB 15 ;(自定)Y DB 3 DUP (0)Z DB 0, 0DAT ENDSSTA SEGMENT STACKDW 50 DUP (?)STA ENDSCOD SEGMENTASSUME CS: COD, DS: DATSTAR PROC FARPUSH DSXOR AX, AXPUSH AXMOV AX, DATMOV DS, AXMOV AX, STAMOV SS, AXMOV AL, AMOV Z, ALMOV Z+1, ALCALL SUB1MOV AL,B微机原理软件实验·报告MOV Z,ALMOV Z+1,ALCALL SUB1MOV AL,AMOV Z,ALMOV AL,BMOV Z+1,ALCALL SUB1ADD WORD PTR Y,AXADC BYTE PTR[Y+2],0RETSTAR ENDPSUB1 PROCMOV AL, ZMOV AH, Z+1MUL AHADD WORD PTR Y, AXADC BYTE PTR[Y+2], 0RETSUB1 ENDPCOD ENDSEND STAR2. 通过编译,连接形成可执行文件。

3. 用DEBUG 将可执行文件调入,并进行调试。

1) 用D 命令观察数据区在内存中的具体内容,记录单元A 和B 的具体地址。

2) 用U 命令对目标代码反汇编,观察反汇编后的结果。

注意发现源程序的起始位置,并记录这个起始地址。

3) 用T 命令作单步跟踪调试。

比较每条指令执行后的结果和原来的理解是否一致,得出程序运行的结果:它们是写在什么单元,具体内容是什么;并判断结果是否正确。

北京邮电大学微机原理硬件实验报告

北京邮电大学微机原理硬件实验报告

北京邮电大学微机原理硬件实验报告实验报告一:I/0地址译码和简单并行接口——实验一&实验二一、实验目的掌握I/O地址译码电路的工作原理;掌握简单并行接口的工作原理及使用方法。

二、实验原理及内容a) I/0地址译码1、实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。

译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。

例如:执行下面两条指令MOV DX,2A0HOUT DX,AL(或IN AL,DX)Y4输出一个负脉冲,执行下面两条指令MOV DX,2A8HOUT DX,AL(或IN AL,DX)Y5输出一个负脉冲。

利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔经过软件延时实现。

2、接线: Y4/IO地址接 CLK/D触发器Y5/IO地址接 CD/D触发器D/D触发器接 SD/D触发器接 +5VQ/D触发器接L7(LED灯)或逻辑笔b) 简单并行接口1、按下面图4-2-1简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。

74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。

2、编程从键盘输入一个字符或数字,将其ASCⅡ码经过这个输出接口输出,根据8个发光二极管发光情况验证正确性。

3、按下面图4-2-2简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。

74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。

4、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。

北邮微机原理硬件实验报告

北邮微机原理硬件实验报告

北邮微机原理硬件实验报告实验目的本次实验主要是通过对微机原理的学习,掌握多种硬件器件的基本使用,包括程序寄存器(PRG)、数据寄存器(DR)、累加器(AC)等,也希望能够初步了解微机系统的结构和工作原理。

实验内容1. 按以下程序编写汇编程序ORG 0HLOOP: MOV A,NUMADD BINC R5MOV MEM,R5SJMP LOOPENDNUM: DB 50HB: DB 35HR5: EQU 25HMEM: DS 1编写程序后,运行该程序,观察程序在8051微处理器上执行的情况。

2. 制作简易流水灯电路使用LED等元器件,制作一个简单的流水灯电路。

同时,编写相应的汇编程序,实现流水灯的基本效果。

3. 实现双向流水灯效果在完成流水灯电路的基础上,通过改变程序实现双向流水灯的效果。

在这个过程中,需要仔细分析程序的实现方式,并且结合8615芯片的具体情况,理解程序在底层机器中的工作方式。

4. 实现用数码管显示数字的功能使用7段数码管,将程序输出的结果显示在数码管上。

在这个过程中,我们需要灵活处理I/O端口和存储器的读写,以及处理各类中断信号。

实验过程1. 编写并调试汇编程序我们首先使用Keil软件编写了相应的汇编程序,并在8051单片机上运行。

在运行过程中发现,程序能够成功地对NUM与B进行加法运算,并将结果存储在MEM中。

2. 制作流水灯电路我们使用LED、电阻等元器件,制作了一个简单的流水灯电路,并测试了该电路的基本工作情况。

由于电路较为简单,因此没有出现特别明显的问题。

3. 实现双向流水灯效果为了实现双向流水灯效果,我们对程序进行了修改。

在这个过程中,初步出现了一些问题,包括倒计时初始值不正确、程序中断启动终止不及时等。

经过反复调试,我们成功地实现了这一功能。

4. 实现用数码管显示数字的功能最后,我们将流水灯程序变更为用数码管显示数字的程序。

在这个过程中,我们主要用到了表格查找和存储器读写等基本操作,成功将结果在数码管上显示。

北邮微机原理与接口技术硬件实验报告

北邮微机原理与接口技术硬件实验报告

七,实验收获和体会
在这次实验中,我们初步熟悉了在 Debug 环境下使用 I/O 命令, 实现了对拨码开关状态的读取以及对发光二极管亮灭的控制, 即初步 尝试了对于微机接口的控制。 通过控制发光二极管的亮与灭, 结合相 关程序的设计, 我们实现了一个简单的跑马灯程序。 结合查询拨码开 关的状态,能够实现点亮发光二极管的方向、 模式和速度的调整。这 个跑马灯实验的程序使用的是简单的分支结构。
MOV SS,AX
MOV BL,7FH
BEG:MOV DX,0EEE0H
MOV AL,BL OUT DX,AL
; 点亮第 8 盏灯
CALL COUNT
; 延时
MOV BL,AL
IN AL,DX
TEST AL,01H
; 最低位拨码被按下?方向选择
MOV AL,BL
JZ RLຫໍສະໝຸດ RR: ROR AL,1; 未按键,则向右点亮
这次实验的要点是对 I/O 接口译码电路的理解以及使用,通过在 Debug 环境下的 I/O 命令,我们测试了外设功能, 这使我们了解了地 址与端口的对应情况,从而明确了跑马灯程序编写的流程和注意事 项。通过该译码电路实验, 我掌握了地址译码电路的设计方法和实现 原理,对硬件的 I/O 接口技术有了进一步的认识。 这次实验也为以后 的实验打下了基础,特别是, 应先理解了译码电路的工作原理,然后 才能进行编程。
四,程序流程图
3
Begin 点亮第 8盏灯 调用延时子程序 检测拨码开关状态
最低位拨码开关被打开?
NO
NO
YES
向右依次点亮 LED
向左依次点亮 LED
检测键盘缓冲区
有按键行为?
YES
结束,返回 DOS

北邮微机原理软件实验报告(精)

北邮微机原理软件实验报告(精)

北邮微机原理软件实验报告(精)微机原理软件实验报告实验二分支、循环程序设计一.实验目的1.启动独立的汇编语言编程。

2.掌握基本分支和循环编程。

3.掌握最简单的DOS函数调用。

二、实验内容1.安排一个数据区,内存有若干个正数,负数和零。

每类数的个数都不超过9。

2.编写一个程序统计数据区中正数,负数和零的个数。

3.将统计结果在屏幕上显示。

三.流程图IV源代码datasegmentzdw0;数据adw0中的零数;大于0 bdw0的数据数;数据中小于0的数量numdw9,8,0,-7,6,-5,-4,3,2,-1,0,-8,-1,9,0,0,1;设定的一组数据,其中4个0,7个正数,6个负数,符合题目要求NDW($-num/2);此组中的数据数量为类型0DB0DH,0ah,‘零的数量:$’类型1DB0DH,0ah,‘格雷特的数量:$'type2db0dh,0ah,'numberoflessthan0:$'locatedwtype0,type1,type2dataendsstacksegmentstackdw128dup(?stackendscodesegmentassumeds:data,ss:stack,cs:codestart:movax,datamovds,axmovax,stack莫夫斯,斧头;初始化DS和Ss以指向stamovbx,offsetnum;将num中第一个数字的地址送入bxmovcx,n;将n中数字个数送入cxloop1:movax[bx];取出num中的第一个数字cmpax,0;与零相比jzifz;判断结果为是0,跳转到ifz处继续执行salax,1jcifl;如果判断结果小于0,跳转到IFLincwordptra;否则,a自加,然后继续执行程序jmpcontinueifl:incwordptrb;B计数加上1jmpcontinueifz:incz;Z计数加1继续:addbx,2;指针+2,继续送入下一数字looploop1;循环cx次判断movcx,3;共显示3个字符串xorbx,bxdisp:movdx,定位[bx]movah,09h;dos09号功能调用,显示字符串int21hmovdx,z[bx]adddx,'0';转换为ASCII码movah,02h;dos02号功能调用,显示字符int21haddbx,2;指针+2(DW)loopdispmovax,4c00hint21h;返回dos系统codeendsendstart五.运行结果Vi预览问题1.十进制数0--9所对应的ascii码是什么?如何将十进制数0--9在屏幕上显示出来?。

北京邮电大学-微机原理硬件实验报告

北京邮电大学-微机原理硬件实验报告

微机原理与接口技术硬件
实验报告
学院:信息与通信工程学院
班级:201******
学生姓名:****** ******
学号:201******* 201*******
班内序号:** **
实验一熟悉实验环境及IO的使用
一、实验目的:
1. 通过实验了解和熟悉实验台的结构,功能及使用方法。

2. 通过实验掌握直接使用Debug 的I、O 命令来读写IO 端口。

3. 学会Debug 的使用及编写汇编程序
二、实验内容:
1. 学习使用Debug 命令,并用I、O 命令直接对端口进行读写操作,
2.用汇编语言编写跑马灯程序。

(使用EDIT 编辑工具)实现功能
A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度等)。

B.通过输出端口控制灯的工作状态(低电平灯亮)
三、实验步骤:
1.实验板的IO 端口地址为0E8E0H
在Debug 下,
I 是读命令。

(即读输入端口的状态---拨码开关的状态)
O 是写命令。

(即向端口输出数据---通过发光管来查看)
进入Debug 后,
读端口拨动实验台上八位拨码开关
输入I 端口地址回车
屏幕显示 xx 表示从端口读出的内容,即八位开关的状态ON 是0,OFF 是 1 写端口输入 O 端口地址xx (xx 表示要向端口输出的内容)回车
查看实验台上的发光二极管状态,0 是灯亮,1 是灯灭。

2. 在Debug 环境下,用 a 命令录入程序,用g 命令运行
C>Debug -a
mov dx, 端口地址。

北邮微机原理实验报告

北邮微机原理实验报告

北邮微机原理实验报告微原软件实验报告班级:序号:学号:姓名:实验⼆分⽀,循环程序设计⼀.实验⽬的:1.开始独⽴进⾏汇编语⾔程序设计;2.掌握基本分⽀,循环程序设计;3.掌握最简单的DOS 功能调⽤.⼆.实验内容:1.安排⼀个数据区(数据段),内存有若⼲个正数,负数和零.每类数的个数都不超过9.2.编写⼀个程序统计数据区中正数,负数和零的个数.3.将统计结果在屏幕上显⽰.三.预习题:1.⼗进制数0 -- 9 所对应的ASCII 码是什么? 如何将⼗进制数0 -- 9 在屏幕上显⽰出来?答:0—9对应的ASCII码是30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,将⼗进制数转换成相应的ASCII码并调⽤字符显⽰功能即能实现⼗进制数在屏幕上的显⽰。

2.如何检验⼀个数为正,为负或为零? 你能举出多少种不同的⽅法?答:将该数与0字符(ASCII码为30H)⽐较,根据⽐较的结果转⼊不同的分⽀。

四.流程图:开始初始化CX,BX,AH,DH,DL[BX] 0?[BX]=0?DH++DH 记录等于零的个数BX++BX++CX--AH++AH 记录⼩于零的个数DL++DL 记录⼤于零的个数CX 0?将AH,DH,DL 中的数转成ASCII 码并存储显⽰结束YES YES NOYESNO NO CX 是待处理的数的个数,BX 是这串数的⾸地址五.代码:六.运⾏结果:七.总结:第⼀次在DOS窗⼝下⽤汇编编程,⼀些基本的操作和以前的⾼级语⾔迥然不同,如建⽴⽂件,编译,链接,调试,这些操作都是要在DOS窗⼝中键⼊语⾔指令来完成的,不像⾼级语⾔的编译器只要按下相关的键就好了,⽤语⾔指令能更加明⽩编译,调试这些操作真正的含义。

更重要的是调试指令,通过这些指令,可以直接看到寄存器,内存中真真切切的变化,对硬件的⼯作机制特别是cpu的指令运⾏,内存的数据存储与读取,整个程序运⾏的本质过程有了更加透彻的了解和认识。

北邮微机原理硬件实验 实验报告

北邮微机原理硬件实验 实验报告

微机原理与接口技术硬件实验报告姓名:曹爽学号:2013210640班级:20132111242016年1月10日目录实验一:熟悉实验环境及IO的使用 (3)一、实验目的 (3)二、实验内容及要求 (3)三、实验步骤 (3)四、程序流程图 (4)五、源代码 (4)六、思考题 (5)七、实验结果和心得体会 (6)实验二:8255A并行接口应用 (7)一、实验目的 (7)二、实验内容及要求 (7)三、实验步骤 (8)四、程序流程图 (9)五、源代码 (10)六、实验结果和心得体会 (14)实验三:8253计数器/定时器的应用 (15)一、实验目的 (15)二、实验内容及要求 (15)三、8253定时器 (15)四、电路的调试与连接 (16)五、实验连接图 (16)六、程序流程图 (18)七、源代码 (19)八、思考题 (21)九、实验结果和心得体会 (21)实验一:熟悉实验环境及IO的使用一、实验目的1.通过实验了解和熟悉实验台的结构、功能及使用方法。

2.通过实验掌握直接使用Debug 的I、O命令来读写IO 端口。

3.学会Debug 的使用及编写汇编程序。

二、实验内容及要求1.学习使用Debug命令,并用I、O命令直接对端口进行读写操作。

2.用汇编语言编写跑马灯程序。

(使用EDIT编辑工具)实现功能。

A.通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等)。

B.通过输出端口控制灯的工作状态(低电平灯亮)。

注意:电源打开时不得插拔电缆及各种器件。

连接电路时一定要在断电的情况下连接,否则可能会烧坏整个实验系统。

三、实验步骤这里仅简要叙述利用EDIT工具编写汇编写跑马灯程序的步骤。

编写:C>EDIT 文件名.asm编译:C>MASM 文件名.asm连接:C>LINK 文件名.obj运行:C>文件名.exe或用Debug进行调试。

四、程序流程图图1.4.1 程序流程图五、源代码CODE SEGMENTASSUME CS:CODESTART: MOV AH,0FEH ;将初始灯设为右起第1灯亮LOOP0: MOV DX,0EEE0H ;将I/O端口地址设为EEE0IN AL,DX ;从端口读入数据,提取拨码开关右起第3位状态AND AL,20HCMP AL,20HJNZ STOP ;若状态为‘0’,则保持位置不变,暂停IN AL,DX ;提取拨码开关右起第2位状态AND AL,40HCMP AL,40HJNZ FAN ;若状态为‘0’,则右移亮灯位置ROL AH,1 ;左移亮灯位置STOP: JMP DISPFAN: ROR AH,1DISP: MOV AL,AHOUT DX,AL ;输出到端口,亮灯MOV CX,8000H ;外循环次数MOV BX,8000H ;内循环次数LOOP1: DEC BXJNZ LOOP1 ;内循环,BX减少到0MOV BH,80H ;重设内循环次数80H次IN AL,DXAND AL,10HCMP AL,10H ;提取拨码开关右起第4位状态JNZ S ;若为‘1’,则设置内循环次数为10H次MOV BH,10HS:LOOP LOOP1 ;外循环,CX减少到0IN AL,DXAND AL,80HCMP AL,80H ;提取拨码开关右起第1位状态JNZ LOOP0 ;若为‘0’,则继续显示,否则结束程序MOV AH,4CHINT 21HCODE ENDSEND START六、思考题通过实验说明用debug中的a命令录入实验中给出的小程序中,有些语句可以不写出“h”字符的原因。

北邮微机原理软件实验报告

北邮微机原理软件实验报告

实验一1.实验要求:编一程序,将地址偏移量为100H单元开始的256个单元分别写入00H,01H,……,FFH数据;统计写入的数据块的0元素、正元素、负元素的个数,并分别将统计结果送入上述数据块后的三个单元中;用DOS功能调用显示上面数据快各单元(包括统计结果)内容,要求每行显示16个数据,两个数据之间用空格隔开。

程序设计思路:分配256个单元存放数据00H,01H,……,FFH,3个单元存放统计结果。

约定:DH存放0的个数,BH存放负数的个数,BL存放正数的个数,然后进行将256个数据一一与0进行比较,得到 DH、BH、BL。

将DH、BH、BL 存入SI的最后三个单元。

最后在以高、低4位,依次将每个单元的数据输出。

2. 程序流程:4.子程序:DISP PROC NEAR ;Show number MOV DL,AL MOV AH,2 INT 21H RET DISP ENDP开始初始化;SI 前256个单元存放00 H……FFH;CX=256;DH=0;BX=0;CMP AL ,0;MOV AL ,[SI] CX=0?将DH ,BX 存入SI ;INC SI ;CX=259;YESINC DH ;INC BHINC BL显示高4位显示低4位; 添加空格; INC SI ;BH=0??BH=16;CX=0?SF=ELSZF=1N ONO YE SN O终止YE实验二1.实验要求:编一程序,把键入的十六进制数转换成十进制,要求:(1)在屏幕上显示转换的十进制数,键入的最大值为FFFFH;(2)若键入非16进制的数,则提示错误;(3)程序中至少用一个子程序和宏命令。

2.程序设计思路:首先判断键入的字符是否为合法的十六进制字符,若是十六进制,将其转化成二进制数值,放入BX中,然后接收下一个字符,并将上一个字符左移4位,再讲此时的BX与接收到的BX相加,直到键入回车,停止接收。

然后通过除以10000,依次将余数除以1000、100、10、1,将二进制转化为十进制,再显示出来。

北邮微机原理软件实验报告

北邮微机原理软件实验报告

微机原理软件实验报告实验二分支、循环程序设计1. 开始独立进行汇编语言程序设计。

2. 掌握基本分支,循环程序设计。

3. 掌握最简单的DOS功能调用。

二.实验内容1. 安排一个数据区,内存有若干个正数,负数和零。

每类数的个数都不超过92. 编写一个程序统计数据区中正数,负数和零的个数。

3. 将统计结果在屏幕上显示。

四•源代码 DATA SEGMENTZDW 0 ;数据中0的个数 A DW 0 ;数据中大于0的个数 BDW 0 ;数据中小于0的个数 NUM DW 9,8,0,-7,6,-5,-4,3,2,-1,0,-8,-1,9,0,0,1;设定的一组数据,其中 4 个 0,7 个正数,6个负数,符合题目要求N DW ($-NUM)/2;该组数据的个数 TYPE0 DB 0DH, 0AH, 'Number of zeros : $'TYPE1 DB 0DH, 0AH, 'Number of greater than 0 : $'TYPE2 DB 0DH, 0AH, 'Number of less than 0 : $'LOCATE DW TYPE0, TYPE1, TYPE2DATA ENDSSTACK SEGMENT STACKDW 128 DUP(?)STACK ENDSCODE SEGMENTASSUME DS:DATA, SS:STACK, CS:CODESTART: MOV AX, DATAMOV DS, AXMOV AX, STACKMOV SS, AX初始化DS 、SS 指向STA MOV BX, OFFSET NUM;将NUM 中第一个数字的地址送入 MOV CX, N;将N 中数字个数送入CX LOOP1: MOV AX, [BX];取出 NUM 中的第一个数字 CMPAX, 0 ;与零相比 JZ IFZ ;判断结果为是 0,跳转到IFZ 处继续执行JC IFL INC WORD PTR AJMP CONTINUEIFL: INC WORD PTR BJMP CONTINUE ;否则,A 自加,然后继续执行程序 ;B 计数加1IFZ: INC Z CONTINUE: ;Z 计数加1ADD BX, 2 LOOP LOOP1 MOV CX, 3;指针+2,继续送入下一数字;循环CX 次判断;共显示3个字符串 XOR BX, BXDISP:MOV DX, LOCATE[BX]MOV AH, 09H;DOS 09号功能调用,显示字符串 INT 21HBXSAL AX, 1;判断结果是小于0,跳转到IFL转换为ASCII 码 ;DOS 02号功能调用,显示字符;指针 +2 ( DW ) 返回DOS 系统五.运行结果 S C\W - debug b.rxe Scurue listing IMIL.LST]:INLI CRF149774 * 4H882 R#t 囲 刖nhol SPACR froe9 Warning Errors H Severs ErrorsC;\mas»5>1ink b.objMicrosoft (R) Overlay Linker Version 3.SO pnp^right (C) Microsoft Corp 1S83-1987 All rights resertfed.R IM File (BTKE1.List File [NULHflPl: Libraries [.LIBI:C:\mash5>dehuri b.exe -gNumber of zeros : 4Ni J rah (ir of grcri I or thrin B ; 7 Miiwber of Jthan 0 : 6 卩ro<jran terminated nornallv 六.预习题1•十进制数0 -- 9所对应的ASCII 码是什么?如何将十进制数0 -- 9在屏幕 上显示出来?答:0—9 的 ASCII 码值依次为:30H,31H,32H,33H,34H,35H,36H,37H,38H,39H 。

北邮微机原理软件实验报告

北邮微机原理软件实验报告

北邮微机原理软件实验报告微机原理软件实验报告实验二分支,循环程序设计一、预习题:1.十进制数0 -- 9 所对应的ASCII 码是什么? 如何将十进制数0 -- 9 在屏幕上显示出来?答:要屏显0-9的数码,可以调用02h中断,然后将要显示的数码的ASCII码存进DL里,然后执行INT 21H就可以打印字符。

当然,若不只一个数,调用09h中断(显示字符串)更好,但要将DS:DXZ指向要显示的数字在内存中的首地址,并要求以$结束。

2.如何检验一个数为正,为负或为零? 你能举出多少种不同的方法?答:CMP X,0 检验标志位CFCF=1,X为负数CF=0接着检验ZF:ZF=1,X为零,ZF=0,X 为正数二、实验目的:1.开始独立进行汇编语言程序设计;2.掌握基本分支,循环程序设计;3.掌握最简单的DOS 功能调用.三、实验内容:1.安排一个数据区,内存有若干个正数,负数和零.每类数的个数都不超过9.2.编写一个程序统计数据区中正数,负数和零的个数.四、实验源代码assume cs:code,ds:datadata segmentbuff db 1,2,3,4,5,-1,-2,-3,0,0 ;安排的数据区string db '>0:'plus db 0;用变量plus来存储正数的个数db 0ah,0dhstring1 db '=0:'zero db 0 ;用变量zero来存储零的个数db 0ah,0dhstring2 db '<0:'minus db 0 ;用变量minus来存储负数的个数db '$'data endscode segmentstart:mov ax,datamov ds,axmov cx,10 ;初始化,并将CX赋为10,因为共有10个数mov dx,0 ;将计数器dx,ah初始化为0mov ah,0lea bx,buffcompare:cmp byte ptr [bx],0 ;取出一个数与0进行比较jge plu ;大于等于0,跳至plu执行inc ah ;小于0,用ah暂存小于0的个数,ah+1jmp next ;比完后进行下一个数的比较plu: je zer ;等于0,跳至zer执行inc dl ;大于0,用dl暂存大于0的个数,dl+1jmp next ;比完后进行下一个数的比较zer: inc dh ;等于0,用dh暂存等于0的个数,dh+1next: inc bxloop compare ;将dl,dh,ah分别赋值给变量plus,zero,minus,其ASCII分别加48add dl,48mov plus,dladd dh,48mov zero,dhadd ah,48mov minus,ahmov ah,09h ;调用09h中断,将最终结果输出lea dx,stringint 21hmov ax,4c00hint 21hcode endsend start五、流程图开始初始化,i=1,否cx=cx-1 cx是否等于0i = i+1实验截图六、实验总结及心得体会:这个实验有两个要点。

北京邮电大学实验报告实验三微机

北京邮电大学实验报告实验三微机

北京邮电大学实验报告题目:微机原理软件实验三班级: 2010211127专业:信息工程姓名:付莹学号:10210759实验五:中断实验1. 实验类设计型实验:编程实现时钟的显示。

2. 实验目的掌握计数器/定时器8253的工作原理和编程方法;掌握中断控制器8259的工作原理;掌握中断处理程序的编写。

3. 实验条件硬件条件:PC机一台。

软件条件:DOS操作系统;任意一种编辑程序,如EDIT;宏汇编程序MASM;连接程序LINK;调试程序DEBUG。

可借用该程序中的中断服务程序以及8253的初始化程序段(口地址为40H、41H、42H、43H,控制字为36H=00110110B,时间常数TC=11932:1.1932MHz/11932=100Hz,输出方波频率为100Hz,其周期为1000/100=10ms)。

4. 实验内容及步骤编一程序,在显示器上显示时、分、秒。

借用计数器8253的Timer0作为中断源,通过8259A向CPU发中断,每10ms产生一次中断。

在中断服务程序中管理刷新时、分、秒Current time is: xx:xx:xx (时分秒键盘输入)回车后时、分、秒开始计时,时钟不停的刷新。

当键入CTRL+C时,停止计时,返回系统,且系统正常运行不死机。

5. 实验报告(1)画出程序流程图。

开始等待回车键按下(08H 中断调用)取原8H 中断的中断矢量并压栈保护建立数据段的可寻址性 装载现在的中断服务程序8253初始化产生10ms 方波,10ms 中断一次重写IMR ,只开放时钟和键盘中断开中断监测键盘(06H 中断调用)是Ctrl+C ? 关中断 恢复IMR重置8253,,55ms 中断一次恢复原中断开中断返回DOS ,结束Yes有键按下?显示时间值(09H 中断调用)取消秒Yes 计数达到100次(1秒)?NoYesNoNo实现等待计时功能实现循环,秒值变化则返回继续执行程序显示“Current time is :” 读入键盘输入(2)提交调试好的汇编语言源程序(.asm)。

北邮微机原理硬件实验报告及代码

北邮微机原理硬件实验报告及代码

北京邮电大学微机原理硬件实验报告实验1:熟悉实验环境及IO的使用实验2:8255A并行接口应用实验3:8253计数器/定时器的应用目录实验一熟悉实验环境及IO的使用 (2)一、实验目的 (2)二、实验内容及要求 (2)三、实验结果 (2)1、程序说明 (2)2、流程图 (4)3、源代码 (6)四、实验总结 (9)实验二8255A并行接口应用 (9)一、实验目的 (9)二、实验任务及内容 (9)1、6 位数码管静态显示 (10)2、6 位数码管动态显示 (10)3、扩展部分 (10)三、实验结果1(6位数码管静态显示) (10)1、程序说明 (10)2、流程图 (11)3、源代码 (11)四、实验结果2(6位数码管动态显示) (13)1、程序说明 (13)2、流程图 (14)3、源代码 (15)五、实验结果(扩展部分) (17)1、程序说明 (17)2、流程图 (18)3、源代码 (18)六、实验总结 (22)实验三8253计数器/定时器的应用 (22)一、实验目的 (22)二、实验任务及内容 (22)1.音乐发生器 (22)2.扩展部分 (23)三、实验结果1(音乐发生器) (23)1、程序说明 (23)2、流程图 (23)3、源代码 (24)四、实验结果2(扩展部分) (29)1、程序说明 (29)2、流程图 (29)3、源代码 (30)五、实验总结 (34)实验一熟悉实验环境及IO的使用一、实验目的1 .通过实验了解和熟悉实验台的结构,功能及使用方法。

2 .通过实验掌握直接使用Debug 的I、O 命令来读写IO端口。

3 .学会Debug 的使用及编写汇编程序二、实验内容及要求1 .学习使用Debug 命令,并用I、O 命令直接对端口进行读写操作,2 .用汇编语言编写跑马灯程序。

(使用EDIT编辑工具)实现功能A.通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等)。

B.通过输出端口控制灯的工作状态(低电平灯亮三、实验结果1、程序说明跑马灯程序共实现:16种灯型、4种速度、暂停、退出等功能。

北邮 微机原理实验报告

北邮 微机原理实验报告

北邮微机原理实验报告一、实验目的本实验旨在通过对微机原理的实际操作,加深对计算机内部结构和工作原理的理解,并通过实验验证理论知识的正确性。

二、实验设备和材料•计算机硬件设备:PC机一台、示波器一台、数字信号发生器一台。

•软件工具:TASM、MASM汇编语言编译器。

三、实验内容本实验分为以下几个步骤:1. 准备工作•将PC机与示波器、数字信号发生器连接。

•打开PC机,进入实验环境。

2. 实验一:简单指令的执行•编写一个简单的汇编程序,实现两个数相加并将结果存储到指定寄存器中。

•使用TASM或MASM编译器对汇编程序进行编译,生成可执行文件。

•运行可执行文件,在示波器上观察到相加过程的波形。

3. 实验二:数据传输操作•编写一个汇编程序,实现数据在不同寄存器和内存之间的传输。

•编译并运行程序,通过观察PC机上的输出结果,验证数据传输的正确性。

4. 实验三:逻辑运算和移位操作•编写程序,实现逻辑运算和移位操作,并观察运算结果。

•通过数字信号发生器产生相应的输入信号,验证程序的正确性。

5. 实验四:中断处理•编写一个汇编程序,实现对中断请求的响应和处理。

•通过示波器观察中断请求和处理的波形,验证程序的正确性。

6. 实验五:串行通信操作•编写程序,实现串行通信的发送和接收操作。

•通过示波器观察串行通信的波形,验证程序的正确性。

四、实验结果和分析•对每个实验步骤进行记录,并详细分析实验结果。

•比较实验结果与理论预期是否一致,并给出原因分析。

五、实验心得通过本次实验,我深刻理解了微机原理的实际应用和操作过程。

通过实际操作,我对计算机内部结构和工作原理有了更深入的了解,并通过实验验证了理论知识的正确性。

同时,我也意识到在实际操作中的一些细节和注意事项,这对我今后的学习和工作都有很大的帮助。

六、实验总结通过本次实验,我不仅掌握了微机原理的实际应用技能,还深化了对计算机内部结构和工作原理的理解。

实验过程中,我遇到了一些问题,但通过思考和实践,逐步解决了这些问题,并取得了满意的实验结果。

北邮微机原理实验报告

北邮微机原理实验报告

微机原理软件实验报告学院:信息与通信工程学院班级:2012211123班内序号:学生姓名:学号:实验二分支,循环程序设计一、实验目的1.开始独立进行汇编语言程序设计;2.掌握基本分支,循环程序设计;3.掌握最简单的DOS 功能调用.二、实验任务及内容1.安排一个数据区,内存有若干个正数,负数和零。

每类数的个数都不超过9。

2.编写一个程序统计数据区中正数,负数和零的个数。

3.将统计结果在屏幕上显示。

4.(扩展题)统计出正奇数、正偶数,负奇数、负偶数以及零的个数。

三、画出程序流程图Y四、给出源程序(要求加注释)data segmentbuff dw 1, 2, 0, 0 ,-1 ;数据段,初始化数据count equ $-buffplus db ? ;定义三种数的存储位置zero db ?minus db ?string1 db 'plus number:','$'string2 db 'zero number:','$'string3 db 'minus number:','$'data endsstack segment stack 'stack'db 100 dup(?)stack endscode segmentassume cs:code,ds:data,es:data,ss:stackbegin:mov ax,datamov ds,axmov cx,countshr cx,1mov dx,0mov ah,0lea bx,buffagain: cmp word ptr[bx],0 ;首先和0比较jge pluinc ah ;小于零MINUS+1jmp nextplu: jz zer ;判断是否等于零,等于零ZERO+1 inc dl ;不等于零PLUS+1jmp nextzer: inc dhnext: inc bx ;下一个数inc bxloop againadd dl,48mov plus,dladd dh,48mov zero,dhadd ah,48mov minus,ahshow:sub dx,dx ;显示模块mov dx,offset string1mov ax,0900h ;送显示指令int 21hmov dl,[plus]mov ax,0200hint 21hmov dl,0dhint 21hmov dl,0ahint 21hmov dx,offset string2mov ax,0900hint 21hmov dl,[zero]mov ax,0200hint 21hmov dl,0dhint 21hmov dl,0ahint 21hmov dx,offset string3mov ax,0900hint 21hmov ax,0200hmov dl,[minus]int 21hmov ax,4c00h ;结束程序int 21hcode endsend begin五、给出程序运行结果(运行结果抓屏保存)data segment 中存入1,2, 0, 0,-1显示有2个0、2个大于0的数、1个小于0的数,结果正确六、预习题1.十进制数0 -- 9 所对应的ASCII 码是什么? 如何将十进制数0 -9 在屏幕上显示出来? 答:对应的ASCII码是30H~39H,把0-9加上30H即可得到对应的ASCII,送给DL,再执行INT 21H即可显示。

北邮 微机原理实验报告

北邮 微机原理实验报告

北邮微机原理实验报告北邮微机原理实验报告引言:微机原理是计算机科学与技术专业的一门重要课程,通过学习和实践,我们可以深入了解计算机的组成结构和工作原理。

本次实验旨在通过对北邮微机原理实验的探索,加深对计算机硬件和软件的理解,并提升我们的实践能力。

一、实验目的本次实验的目的是熟悉计算机的硬件组成和工作原理,并通过实践操作加深对微机原理的理解。

具体包括以下几个方面:1. 熟悉计算机的硬件组成,包括中央处理器(CPU)、内存、硬盘等;2. 掌握计算机的启动过程和操作系统的加载;3. 理解计算机的指令集和指令执行过程;4. 学习计算机的输入输出设备和外部接口。

二、实验过程1. 实验一:计算机硬件的组装与连接在本实验中,我们需要将计算机的各个硬件组件进行正确的连接和组装。

首先,我们需要将主板与CPU、内存、显卡等硬件设备进行连接。

其次,我们需要将硬盘、光驱等存储设备与主板进行连接。

最后,我们需要将键盘、鼠标、显示器等外部设备与计算机进行连接。

通过这一步骤,我们可以了解计算机硬件的组成结构,并掌握正确的连接方式。

2. 实验二:计算机的启动过程和操作系统的加载在本实验中,我们需要了解计算机的启动过程和操作系统的加载过程。

首先,我们需要按下电源按钮,启动计算机。

然后,计算机会进行自检和硬件初始化,并加载操作系统。

在这个过程中,我们可以观察到计算机的启动画面和加载过程。

通过这一步骤,我们可以深入了解计算机的启动过程和操作系统的加载机制。

3. 实验三:计算机的指令集和指令执行过程在本实验中,我们需要学习计算机的指令集和指令执行过程。

首先,我们需要了解不同类型的指令,包括算术指令、逻辑指令、数据传输指令等。

然后,我们需要通过编写简单的汇编语言程序,来实现对数据的处理和操作。

在这个过程中,我们可以观察到指令的执行过程和结果。

通过这一步骤,我们可以深入理解计算机的指令集和指令执行过程。

4. 实验四:计算机的输入输出设备和外部接口在本实验中,我们需要学习计算机的输入输出设备和外部接口。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北邮微机实验报告
北邮微机实验报告
一、实验目的
本次实验旨在通过对微机的实际操作,加深对计算机原理和体系结构的理解,掌握微机系统的工作原理和基本操作。

二、实验设备和环境
本次实验使用的设备为一台配置良好的微机,操作系统为Windows 10。

实验环境为实验室内,保持安静、整洁的工作环境。

三、实验过程
1. 开机与关机
首先,按下电源按钮启动计算机。

待计算机自检完成后,进入操作系统界面。

在使用完毕后,点击“开始”按钮,选择“关机”,然后选择“关闭”或“重新启动”。

2. 操作系统的基本功能
在桌面上,双击“我的电脑”图标,可以查看计算机的硬盘、光驱、以及其他外部设备。

通过“开始”菜单中的“控制面板”可以进行系统设置和管理。

3. 文件的管理与操作
通过“我的电脑”或者“资源管理器”可以查看计算机中的各个文件夹和文件。

可以创建、复制、删除、移动、重命名等操作。

同时,可以通过“文件”菜单中的“打开”或“保存”来进行文件的读取和保存。

4. 网络连接与应用
在桌面的右下角,可以找到网络连接的图标。

双击图标,可以查看当前的网络连接状态。

通过“网络和共享中心”可以进行网络设置和管理。

在浏览器中输入
网址,可以访问互联网上的各种网站和资源。

5. 常用办公软件的使用
在实验过程中,我们还使用了Word、Excel和PowerPoint等常用办公软件。

通过这些软件,可以进行文字处理、数据分析和演示文稿的制作。

四、实验结果与分析
通过本次实验,我对微机的操作有了更深入的了解。

我学会了如何正确启动和关闭计算机,并熟悉了操作系统的基本功能。

我还学会了对文件进行管理和操作,如创建、复制、删除等。

此外,我还了解了网络连接与应用的基本知识,并使用常用办公软件进行了实际操作。

通过实验,我深刻认识到微机在现代社会中的重要性。

微机不仅是我们日常生活中必不可少的工具,也是各个行业中必备的工具。

通过学习微机的原理和操作,我们可以更好地利用计算机的功能,提高工作效率,拓宽知识视野。

五、实验总结
通过本次实验,我对微机的工作原理和基本操作有了更深入的了解。

我学会了正确启动和关闭计算机,熟悉了操作系统的基本功能,掌握了文件的管理和操作技巧。

我还了解了网络连接与应用的基本知识,并使用常用办公软件进行了实际操作。

微机作为现代社会中必不可少的工具,我们应该充分利用其功能,提高工作效率,拓宽知识视野。

同时,我们也要注意合理使用微机,保护个人隐私和信息安全。

通过这次实验,我不仅加深了对计算机原理和体系结构的理解,还提升了自己的操作技能。

我相信这些知识和技能将在今后的学习和工作中发挥重要作用。

相关文档
最新文档