北理工计算机原理与应用实验二
北京理工大学微机原理总汇编语言上机实验题

实验一请在数据段中定义两个数,要求编写程序分别计算出这两个数的和、差、积、商,并用Debug 的相关命令查询计算结果。
(略)实验二内存自TABLE开始的连续16个单元中存放着0-15的平方值,查表求DATA中任意数X(0≤X ≤15)的平方值,并将结果放在RESULT中。
DATA1 SEGMENTTABLE DB 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225DATA DB 10RESULT DB ?DATA1 ENDSSTAC SEGMENTDB 100 DUP (?)STAC ENDSCODE SEGMENTASSUME DS:DATA1,SS:STAC,CS:CODESR:MOV AX,DATA1MOV DS,AXMOV AX,STACMOV SS,AXLEA BX,TABLEMOV AH,0MOV AL,DATAXLATMOV RESULT,ALMOV AH,4CHINT 21HCODE ENDSEND SR实验三试编写一程序:比较两个字符串STRING1 和STRING2所含的字符是否相同。
若相同则显示‘MATCH’,否则显示‘NO MATCH’。
DATA1 SEGMENTSTRING1 DB 10,?,10 DUP (?)STRING2 DB 10,?,10 DUP (?)REM1 DB 'PLEASE INPUT STR1: $'REM2 DB 'PLEASE INPUT STR2: $'MESS1 DB 'MATCH$'MESS2 DB 'NO MATCH$'DATA1 ENDSCODE1 SEGMENTASSUME CS:CODE1,DS:DATA1STT: MOV AX,DATA1MOV DS,AXMOV ES,AX LEA DX,REM1 MOV AH,09H INT 21HLEA DX, STRING1 MOV AH, 0AH INT 21HMOV DL, 0DH MOV AH, 6INT 21HMOV DL, 0AH MOV AH, 6INT 21HLEA DX,REM2 MOV AH,09H INT 21HLEA DX, STRING2 MOV AH, 0AH INT 21HMOV DL,0DH MOV AH,6INT 21HMOV DL,0AHMOV AH,6INT 21HLEA SI, STRING1LEA DI,STRING2MOV CL,[SI+1]MOV BL,[DI+1]CMP CL,BLJNE NOMCLDMOV CH,0ADD CL,2REPZ CMPSBJNZ NOM MAT: LEA DX,MESS1JMP SHORT DISP1 NOM: LEA DX,MESS2DISP1: MOV AH,09HINT 21HMOV AH,4CHINT 21HCODE1 ENDSEND STT实验四设有10个学生的成绩分别为:56,69,84,82,73,88,99,63,100,80分。
北理工计算机考研科目

北理工计算机考研科目一、公共课1.政治理论:主要包括马克思主义理论基本原理、中国特色社会主义理论体系、当代中国政治与外交、政治发展理论、中国共产党历史等。
考察对党和国家方针政策的理解和掌握能力。
2.英语(二):主要考查英语阅读理解、写作能力和词汇量。
重点包括阅读理解、翻译、写作等内容。
3.业务英语:主要考查计算机领域的英语词汇和表达能力。
重点包括计算机理论、网络技术、数据库等相关词汇和表达方式。
4.数学一:主要考查高等数学的基本理论和方法。
重点包括高等数学的微积分、线性代数、概率论和数理统计等方面的基本原理和应用。
5.数学二:主要考查离散数学和算法分析等内容。
重点涉及离散数学的图论、集合论等,以及算法的分析和设计等。
6.计算机程序设计语言:主要考察计算机编程语言的基本语法、面向对象编程、数据结构和算法的实现等知识。
二、专业课1.数据结构:主要考察数据结构的基本原理、线性表、树、图、排序算法等。
2.操作系统:重点考查操作系统的基本原理、进程管理、内存管理、文件系统等。
3.计算机组成原理:考核计算机组成原理的基本概念、指令系统、CPU结构、存储器层次结构等。
4.计算机网络:主要考查计算机网络体系结构、数据链路层、网络层、传输层、应用层等。
5.数据库原理与应用:主要涉及数据库的基本概念、关系模型、SQL语言,及数据库的设计与应用等。
6.软件工程:主要考查软件工程的基本原理、软件开发过程、软件测试与维护、软件项目管理等。
以上是北理工计算机考研科目的一些基本内容,考生需要全面掌握各个科目的基本原理和理论,并具备一定的实际应用能力。
为了备考顺利,建议考生制定科学合理的学习计划,注重基础理论的学习和实践应用的训练。
同时,可以选择参加一些相关的考研培训班和模拟题训练,提高备考效果。
北理工操作系统实验二读者写者问题

本科实验报告实验名称:操作系统原理实验(读者写者问题)课程名称:操作系统原理实验时间:2015.10.30 任课教师:王耀威实验地点:10#102实验教师:苏京霞实验类型: 原理验证□综合设计□自主创新学生姓名:孙嘉明学号/班级:1120121474/05611202 组号:学院:信息与电子学院同组搭档:专业:信息对抗技术成绩:实验二:读者写者问题一、实验目的1.通过编写和调试程序以加深对进程、线程管理方案的理解;2.熟悉Windows多线程程序设计方法;二、实验要求在Windows环境下,创建一个控制台进程,此进程包含n个线程。
用这n个线程来表示n个读者或写者。
每个线程按相应测试数据文件(后面介绍)的要求进行读写操作。
用信号量机制分别实现读者优先和写者优先问题。
读者-写者问题的读写操作限制(包括读者优先和写者优先)1)写-写互斥:不能有两个写者同时进行写操作2)读-写互斥:不能同时有一个线程在读,而另一个线程在写。
3)读-读允许:可以有一个或多个读者在读。
读者优先的附加限制:如果读者申请进行读操作时已有另一个读者正在进行读操作,则该读者可直接开始读操作。
运行结果显示要求:要求在每个线程创建、发出读写申请、开始读写操作和结束读写操作时分别显示一行提示信息,以确定所有处理都遵守相应的读写操作限制。
测试数据文件包括 n行测试数据,分别描述创建的n个线程是读者还是写者,以及读写操作的开始时间和持续时间。
每行测试数据包括四个字段,每个字段间用空格分隔。
第1个字段为正整数,表示线程的序号。
第2个字段表示线程的角色,R表示读者,W表示写者。
第3个字段为一个正数,表示读写开始时间:线程创建后,延迟相应时间(单位为秒)后发出对共享资源的读写申请。
第4个字段为一个正数,表示读写操作的延迟时间。
当线程读写申请成功后,开始对共享资源进行读写操作,该操作持续相应时间后结束,释放该资源。
下面是一个测试数据文件的例子(在记事本手工录入数据):1 R 3 52 W 4 53 R 5 24 R 6 55 W 5.1 3三、实验环境硬件设备:个人计算机。
北京理工大学数信实验报告

实验1 利用DFT 分析信号频谱一、实验目的1、加深对DFT 原理的理解。
2、应用DFT 分析信号的频谱。
3、深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、实验设备与环境计算机、MATLAB 软件环境。
三、实验基础理论1.DFT 与DTFT 的关系:有限长序列的离散时间傅里叶变换(e )j X ω 在频率区间(02)ωπ≤≤ 的N 个等间隔分布的点2(0k N 1)kk N πω=≤≤-上的N 个取样值可以有下式表示:2120(e )|(n)e(k)(0k N 1)N jkn j Nkk NX x X πωπω--====≤≤-∑由上式可知,序列(n)x 的N 点DFT (k)X ,实际上就是(n)x 序列的DTFT 在N 个等间隔频率点2(0k N 1)kk N πω=≤≤-上样本(k)X 。
2.利用DFT 求DTFT方法1:由(k)X 恢复出(e )j X ω的方法如下:由流程知:11(e )(n)e[(k)W]e N j j nkn j nNn n k X x X Nωωω∞∞----=-∞=-∞===∑∑∑继续整理可得到:12()(k)()Ni k kx e X N ωπφω==-∑其中(x)φ为内插函数:sin()2()sin()2N N ωφωω=方法2:实际在MATLAB 计算中,上述插值运算不见得是最好的办法。
由于DFT 是DTFT 的取样值,其相邻两个频率样本点的间距为2N π,所以如果我们增加数据的长度N ,使得到的DFT 谱线就更加精细,其包络就越接近DTFT 的结果,这样就可以利用DFT 计算DTFT 。
如果没有更多的数据,可以通过补零来增加数据长度。
3.利用DFT 分析连续信号的频谱采用计算机分析连续时间信号的频谱,第一步就是把连续信号离散化,这里需要进行两个操作:一是采样,二是截断。
对于连续时间非周期信号(t)a x ,按采样间隔T 进行采样,阶段长度M ,那么:1(j )(t)e(nT)e M j tj nTa a a n X x dt T x -∞-Ω-Ω-∞=Ω==∑⎰对(j )a X Ω 进行N 点频域采样,得到:2120(j )|(nT)e(k)M jkn Na a M kn NTX T x TX ππ--Ω==Ω==∑采用上述方法计算信号(t)a x 的频谱需要注意如下三个问题:(1)频谱混叠;(2)栅栏效应和频谱分辨率; (3)频谱泄露。
北京理工大学汇编实验二报告

北京理工大学汇编实验二报告本科实验报告实验名称:算术运算类操作实验课程名称:CPU与汇编实验实验时间:2015.10.29 任课教师:王耀威实验地点:10-102实验教师:潘丽敏实验类型:□原理验证■综合设计□自主创新学生姓名:王晓玥学号/班级:1120131332/05111311 组号:学院:信息与电子学院同组搭档:专业:信息工程成绩:一、实验要求和目的1、了解汇编语言中的二进制、十六进制、十进制、BCD 码的表示形式;2、掌握各类运算类指令对各状态标志位的影响及测试方法;3、熟悉汇编语言二进制多字节加减法基本指令的使用方法;4、熟悉无符号数和有符号数乘法和除法指令的使用;5、掌握符号位扩展指令的使用。
6、掌握 BCD 码调整指令的使用方法二、软硬件环境1、硬件环境:计算机系统 windows;2、软件环境:装有 MASM、DEBUG、LINK、等应用程序。
三、实验涉及的主要知识1、加减法处理指令主要有加法指令 ADD,带进位加法 ADC,减法指令 SUB,带进位减法指令 SBB。
2.乘除法指令和符号位扩展指令主要有无符号数乘法指令MUL,带符号数乘法指令IMUL,无符号数除法指令DIV,带符号数除法指令 IDIV,以及符号位从字节扩展到字的指令 CBW 和从字扩展到双字的指令 CWD。
3.BCD 码的调整指令主要有非压缩的BCD 码加法调整指令DAA,压缩的 BCD 码减法调整指令 DAS,非压缩的 BCD 码加法调整指令 AAA,非压缩的 BCD 码减法调整指令 AAS,乘法的非压缩 BCD码调整指令 AAM,除法的非压缩 BCD 码调整指令 AAD。
8088/8086 指令系统提供了实现加、减、乘、除运算的上述基本指令,可对表 1 所示的数据类型进行数据运算。
表 1-2-1 数据类型数据运算表数制二进制BCD码带符号无符号组合非组合运算符+、-、×、÷+、-+、-、×、÷操作数字节、字、多精度字节(二位数字)字节(一位数字)四、实验内容与步骤1、对于两组无符号数,087H 和 034H,0C2H 和5FH,试编程求这两组数的和差积商,并考虑计算结果对标志寄存器中状态标志位的影响:(1)实验流程将一组操作数分别用ADD,SUB,MUL,DIV运算(2)实验代码:DATAS SEGMENTBUF1 DB 087HBUF2 DB 034HBUF3 DB 4 DUP(?);此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXMOV AX,0MOV SI,AX;两数相加MOV AL,BUF1MOV BL,BUF2ADD AL,BLMOV BUF3[SI],ALMOV AL,0MOV AL,0INC SIMOV BUF3[SI],AL;两数相减MOV AL,BUF1MOV BL,BUF2SUB AL,BLINC SIMOV BUF3[SI],ALMOV AL,0SBB AL,0INC SIMOV BUF3[SI],AL;两数相乘MOV AL,BUF1MOV BL,BUF2MUL BLINC SIMOV BUF3[SI],ALINC SIMOV BUF3[SI],AH;两数相除,AL中存放商,AH中存放余数MOV AX,0MOV AL,BUF1MOV BL,BUF2DIV BLINC SIMOV BUF3[SI],ALINC SIMOV BUF3[SI],AH;此处输入代码段代码MOV AH,4CHINT 21HCODES ENDSEND START(3)实验结果:1)第一组操作数87H,34H2)第二组操作数0C2H,5FH(4)计算结果计算状态标志表达式结果CF AF ZF OF SF PF 087H+034H 00BB 0 0 0 0 1 1 087H-034H 0053 0 0 0 1 0 1 087H*034H 1B6C 1 0 0 1 0 0 087H/084H 02(1F) 1 0 0 0 0 1 0C2H+05FH 0121 0 0 0 0 0 0 0C2H-O5FH 0063 0 0 1 0 0 1 0C2H*05FH 47FE 0 0 0 0 0 1 0C2H/05FH 02(04) 0 0 0 0 0 0(5)各运算对状态标志位的影响及其意义。
北京理工大学计算机实验一报告表

北京理工大学计算机实验一报告表北京理工大学计算机实验一报告一、实验目的:1. 了解计算机实验室的硬件设备,熟悉计算机的组成和工作原理;2. 掌握计算机的基本操作和调试方法,熟悉计算机的操作系统和软件环境;3. 学习使用计算机进行数据输入、处理和输出。
二、实验内容:1. 硬件设备:了解计算机的主要硬件组成,包括中央处理器(CPU)、内存、硬盘、显卡等;2. 操作系统:熟悉计算机的操作系统,学习操作系统的基本功能和操作方法;3. 软件环境:了解计算机的软件环境,学习使用常用的办公软件和编程工具;4. 数据输入:学习使用键盘和鼠标进行数据输入,了解数据的输入格式和方式;5. 数据处理:学习使用计算机进行数据处理,包括数据的存储、计算和分析;6. 数据输出:学习使用计算机进行数据输出,包括打印、显示和保存等方式。
三、实验步骤:1. 硬件设备:了解计算机的主要硬件组成,包括CPU、内存、硬盘、显卡等,熟悉各个硬件的功能和作用;2. 操作系统:熟悉计算机的操作系统,学习操作系统的基本功能和操作方法,包括开机、关机、重启等;3. 软件环境:了解计算机的软件环境,学习使用常用的办公软件和编程工具,如Microsoft Office和Visual Studio等;4. 数据输入:学习使用键盘和鼠标进行数据输入,了解数据的输入格式和方式,如文本、数字、图像等;5. 数据处理:学习使用计算机进行数据处理,包括数据的存储、计算和分析,如使用Excel进行数据分析;6. 数据输出:学习使用计算机进行数据输出,包括打印、显示和保存等方式,如使用打印机打印数据报告。
四、实验结果:本次实验我们成功地熟悉了计算机的硬件设备和软件环境,掌握了计算机的基本操作和调试方法。
我们学会了使用键盘和鼠标进行数据输入,使用计算机进行数据处理和输出。
通过实验,我们进一步了解了计算机的组成和工作原理,对计算机的操作系统和软件环境有了更深入的了解。
计算机原理实验-外部中断实验

计算机原理与应用实验实验名称:外部中断实验学院:信息与通信工程学院班级:2017211113姓名:***学号:**********同组成员姓名:李凝同组成员学号:**********一、实验目的1. 掌握NVIC 中断优先级配置。
2. 学会外部中断配置。
二、实验原理及内容(一)实验原理电路结构如图3.1 所示1. NVIC 中断优先级NVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。
但是各个芯片厂商在设计芯片的时候会对Cortex-M4 内核里面的NVIC 进行裁剪,把不需要的部分去掉,所以说STM32 的NVIC 是Cortex-M4 的NVIC 的一个子集。
CM4 内核可以支持256个中断,包括16个内核中断和240个外部中断,256 级的可编程中断设置。
对于STM32F4 没有用到CM4 内核的所有东西,只是用到了一部分,对于STM32F40 和41 系列共有92个中断,其中有10个内核中断和82个可屏蔽中断,常用的为82个可屏蔽中断。
ISER[8]—中断使能寄存器组,用来使能中断,每一位控制一个中断,由于上面已经说明了控制82 个可屏蔽的中断,因此利用ISER[0~2]这三个32 位寄存器就够了。
一下的几个寄存器同理。
ICER[8]—中断除能寄存器组,用来消除中断。
ISPR[8]—中断挂起控制寄存器组,用来挂起中断。
ICPR[8]—中断解挂控制寄存器组,用来解除挂起。
IABR[8]—中断激活标志寄存器组,对应位如果为1 则表示中断正在被执行。
IP[240]—中断优先级控制寄存器组,它是用来设置中断优先级的。
我们只用到了IP[0]~IP[81],每个寄存器只用到了高4 位,这4 位又用来设置抢占优先级和响应优先级(有关抢占优先级和响应优先级后面会介绍到),而对于抢占优先级和响应优先级各占多少位则由AIRCR 寄存器控制,相关设置如表 3.1 所示。
北理大学计算机实验基础 实验二 实验报告表答案精编版

实验二实验报告表
实验名称:
学号姓名:班级:实验时间:
实验报告表2-1 数值型数据在计算机中的二进制实验记录表
说明:本实验对计算机内存数据的存放拟定为:①整数用两个字节存储,并负数只考虑原码;②实数用4个字节存储,其中阶码部分占一个字节。
实验报告表2-2 其他进制数据与二进制转化实验记录表
实验报告表2-3 数据的原码、补码和反码表示实验记录表
实验报告表2-4 二进制算术运算实验记录表
实验报告表2-5溢出实验记录表
实验报告表2-6浮点数的小数点浮动实验记录表
实验报考表2-7 表示浮点数的二进制串中阶码位数改变实验记录表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科实验报告实验名称:计算机原理与应用实验二实验二利用中断方式设计数字时钟一、实验目的1.掌握PC机中断处理系统的基本原理。
2.熟悉定时/计数器8254工作原理及其编程方法。
3.利用实验板上的8254定时器为中断源发中断申请,中断请求用IRQ3(系统总线区的IRQ)。
4.熟悉数码管显示原理,掌握数码管显示接口技术。
5.学习数字时钟原理,实现数字时钟。
6.掌握中断控制器8259管理二、实验内容与步骤1) 接线(参考):PB7~PB0/8255 接dp~a /LED 数码管CS /8254 接Y0 /IO 地址PC3~PC0 /8255 接S3~S0/LED 数码管CS/8255 接Y1 /IO 地址IRQ /总线接OUT1/8254GATE0 /8254 接+5VCLK0 /8254 接1M时钟OUT0 /8254 接CLK1 /8254GATE1 /8254 接+5V三、实验原理1、PC 机用户可使用的硬件中断只有可屏蔽中断,由8259 中断控制器管理。
中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU 发出可屏蔽中断请求。
IBMPC、PC/XT 机内有一片8259 中断控制器对外可以提供8个中断源:中断源中断类型号中断功能IRQ0 08H 时钟IRQ1 09H 键盘IRQ2 0AH 保留IRQ3 OBH 串行口2IRQ4 0CH 串行口1IRQ5 0DH 硬盘IRQ6 0EH 软盘IRQ7 0FH 并行打印机8 个中断源的中断请求信号线IRQ0~IRQ7 在主机的62 线ISA 总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。
对于PC/AT 及286 以上微机内又扩展了一片8259 中断控制,IRQ2 用于两片8259 之间级连,对外可以提供16 个中断源:中断源中断类型号中断功能IRQ8 070H 实时时钟IRQ9 071H 用户中断IRQ10 072H 保留IRQ11 O73H 保留IRQ12 074H 保留IRQ13 075H 协处理器IRQ14 076H 硬盘IRQ15 077H 保留实验系统总线区的IRQ 接到了3 号中断IRQ3 上,即进行中断实验时,所用中断类型号为0BH。
2、中断控制器8259 可利用系统初始化设定如不进行新的初始化,只需对8259 中断控制器的屏蔽寄存器设定IRQ3 为中断允许,其他原有中断允许保持不变。
3、将实验板上的8253 的通道,设定为10ms 周期信号发生器该芯片的通道1 设定为计数器,其输入来自定时器通道0 的输出,利用通道1 的计数器输出作为IRQ3 中断请求信号。
4、8254 定时器的CLK0 由实验板上的1MHZ 振荡器来提供。
5、编写中断服务程序,进行数字钟显示:XX:XX(分秒)其中X 为一数码管。
6、数码管显示接口电路如图所示。
实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。
实验时用PB7~PB0/8255 接dp~a /LED 数码管,PC3~PC0 /8255 接S3~S0/LED 数码管。
七段数码管的字型代码表如下表:7、程序流程图四、实验代码:p8259 equ 20h ;端口首地址p8255 equ 288h ;端口首地址p8253 equ 280h ;IO Y1data segmentled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;数码管sec1 db 0sec2 db 0min1 db 0min2 db 0mes db 42hOld_0A DW 0,0 ;原中断向量 Old_8259 DB 0data endsstacks segmentdb 64 dup (0)stacks endscode segmentassume cs:code,ds:data,es:data start:mov ax,datamov ds,axcli;关闭中断mov al,00110110bmov dx,p8253+3 ;计数器0,工作在模式3out dx,almov ax,10000mov dx,p8253out dx,almov al,ah ;先赋高八位再赋低八位out dx,almov al,01110110bmov dx,p8253+3 ;计数器1,工作在模式3out dx,almov ax,100mov dx,p8253+1out dx,almov al,ah ;先赋高八位再赋低八位out dx,al ;设置中断向量表 PUSH ESPUSH BXMOV Al,0BH ;保护原中断向量,0B中断类型号mov ah,35hINT 21H ;读中断向量表MOV Old_0A+2,ES;ES为段地址,BX为段偏移地址MOV Old_0A,BXPOP BXPOP ESpush dsmov al,0bh ; 写新中断向量mov ah,25hmov dx,seg INT_0Amov ds,dxmov dx,offset INT_0Aint 21hpop dsmov al,10000000b ;对8255进行设置,PB/PC输出mov dx,p8255+3out dx,alin al,p8259+1 ;8259奇地址中断向量屏蔽mov old_8259,al ;字设置保护原屏蔽字and al,11110111b ;开IRQ3out p8259,alsti ;开中断play:lea bx,led ;led段码mov dl,sec1 ;秒个位mov dh,0mov si,dxmov al,[bx][si]mov dx,p8255+1 ;点亮ledout dx,almov ah,00001110bmov al,ahmov dx,p8255+2 ;pc输出选通信号 out dx,alPUSH CXMOV CX,00f00h ;延时delay1:LOOP delay1POP CXmov ah,00001111bmov al,ahmov dx,p8255+2 ;pc输出选通信号 out dx,almov dl,sec2 ;秒十位mov dh,0mov si,dxmov al,[bx][si]mov dx,p8255+1 ;点亮ledout dx,almov ah,00001101bmov al,ahmov dx,p8255+2 ;pc输出选通信号 out dx,alPUSH CXMOV CX,00f00h ;延时delay2:LOOP delay2POP CXmov ah,00001111bmov al,ahmov dx,p8255+2 ;pc输出选通信号 out dx,almov dl,min1 ;分个位mov dh,0mov si,dxmov al,[bx][si]mov dx,p8255+1 ;点亮ledout dx,almov ah,00001011bmov al,ahmov dx,p8255+2 ;pc输出选通信号 out dx,alPUSH CXMOV CX,00f00h ;延时delay3:LOOP delay3 POP CXmov ah,00001111bmov al,ahmov dx,p8255+2 ;pc输出选通信号 out dx,almov dl,min2 ;分十位mov dh,0mov si,dxmov al,[bx][si]mov dx,p8255+1 ;点亮ledout dx,almov ah,00000111bmov al,ahmov dx,p8255+2 ;pc输出选通信号 out dx,alPUSH CXMOV CX,00f00h ;延时delay4:LOOP delay4POP CXmov ah,00001111bmov al,ahmov dx,p8255+2 ;pc输出选通信号 out dx,aljmp playmov ah,4chint 21hINT_0A proc near ;中断服务子程序 cmp sec1,9jz int1inc sec1jmp exitint1:mov sec1,0inc sec2cmp sec2,6jnz exitmov sec2,0inc min1cmp min1,10jnz exitmov min1,0inc min2cmp min2,6jnz exit mov min2,0 exit:mov al,20h out 20h,al iretINT_0A endp code ends end start五、实验结果:编译运行后,可以看到实验板上7段数码管从0开始计数。
一直记到9999然后清零,实现一个9999以内的十进制计数器。
六、实验心得:经过这次实验,我明白了实验代码的重要性,开始的时候显示的数都是8,但是也有计数,就像是初始电平设的比较高,电平直接加在原来的电平上,只能看见有一点变化,后来改了一下play中的赋值之后,计数就对了。
写代码的时候可以用标号来分段,使得长代码比较容易看懂,代码块之间的功能更加清楚明白。