微机原理实验报告
微机原理综合实验报告

滨江学院微机原理综合实验实验报告学生姓名学号专业信息工程班级2016级二O一八年十二月三十日微机原理综合实验实验一利用DEBUG调试程序调试程序段1、实验目的1)熟悉DEBUG有关命令的使用方法。
2)利用DEBUG掌握有关指令的功能。
3)利用DEBUG运行简单的程序段。
2、实验内容1)进入和退出DEBUG程序。
2)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。
对于U命令、N命令、W命令等,也应试一下。
3)利用DEBUG,验证乘法、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。
3、实验准备1)仔细阅读有关DEBUG命令的内容,对有关命令,都要事先准备好使用的例子。
2)作为例子,准备用A命令,输入在显示器上显示字符“S”的系统调用程序段。
3)阅读将AX左移9位的程序段。
4、实验步骤1)在DOS提示符下,进入DEBUG程序。
2)在DOS目录下启动DEBUG。
3)详细记录每一步所用的命令,以及查看结果的方法和具体结果。
5、实验报告要求1)如何启动和退出DEBUG程序。
2)整理每个DEBUG命令使用的方法,实际示例及执行结果。
3)启动DEBUG后,要装入某一个.EXE文件,应通过什么方法实现?实验结果:实验二分支程序实验1、实验目的1)掌握分支程序的设计方法。
2)掌握利用DEBUG修改参数、检查结果的方法。
3)掌握汇编语言源程序的编辑、汇编、连接及调试过程。
2、实验内容1)编写一个程序,显示AL寄存器中的两位十六进制数2)编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z 或a-z字符,均显示“c”;若是回车字符<CR>(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。
3、实验准备1)编写实验内容要求的两个程序。
2)写出调试以上程序,即修改程序参数,检查结果的操作方法。
3)熟悉源程序汇编、连接命令的使用方法即要回答的内容。
微机原理分正负的实习报告

微机原理实习报告一、实习目的与意义本次微机原理实习旨在让我们更好地理解和掌握微机原理的基本知识,培养我们动手能力和实际操作技能,提高我们的综合素质和工程实践能力。
二、实习内容与过程在实习过程中,我们主要学习了微机原理的基本知识,包括微机系统组成、微处理器结构、指令系统、存储器、输入输出接口等方面。
同时,我们还进行了实际的操作,包括编程、电路连接、故障排查等。
具体来说,我们首先学习了微机系统组成,了解了微机系统的基本构成和各部分的作用。
然后,我们学习了微处理器结构,了解了微处理器的内部结构和各部分的功能。
接着,我们学习了指令系统,了解了指令的格式和分类,并学会了编写简单的程序。
此外,我们还学习了存储器和输入输出接口,了解了存储器的分类和特点,以及输入输出接口的功能和应用。
在实际操作方面,我们首先学习了编程,掌握了基本的编程语言和编程方法。
然后,我们进行了电路连接,学会了使用电子仪器和工具,了解了电路连接的方法和注意事项。
最后,我们进行了故障排查,学会了诊断和解决电子设备中常见的问题。
三、实习成果与收获通过本次实习,我深入理解了微机原理的基本知识,掌握了微机系统组成、微处理器结构、指令系统、存储器、输入输出接口等方面的知识。
同时,我也提高了自己的动手能力和实际操作技能,学会了编程、电路连接、故障排查等实际操作。
通过本次实习,我深刻认识到了微机原理在现代工程中的重要性,也体会到了工程实践的乐趣和意义。
我相信,本次实习对我的专业学习和未来的工程实践都将产生积极的影响。
四、实习总结本次微机原理实习让我受益匪浅,不仅让我掌握了微机原理的基本知识,也提高了我的动手能力和实际操作技能。
同时,我也深刻认识到了微机原理在现代工程中的重要性。
我相信,这次实习对我的学习和未来的工作都将产生积极的影响。
微机原理实验报告_2

实验一汇编语言的编译、链接和调试一、实验目的1、学会使用masm对汇编源程序进行编译、链接、调试、运行。
2、掌握汇编语言的程序格式。
3、巩固所学的汇编语言指令。
二、实验环境1、硬件:PC 微机2、软件:宏汇编MASM 软件三、实验原理1、汇编语言程序的上机与处理过程2、汇编语言的程序格式(1)汇编程序一般由若干段组成,每个段都有一个名字,以SEGMENT作为段的开始,以ENDS作为段的结束,这两者前要冠以相同的名字作为段名。
(2)代码段和堆栈段必不可少,数据段和附加段可根据需要设置。
堆栈段的SEGMENT之后有关键字STACK。
代码段中有伪指令ASSUME告诉汇编程序,在各种指令执行时所要访问的各段寄存器将分别对应哪一段。
(3)源程序的每一段是由若干行汇编语句组成,每一行只有一条语句,且不能超过128个字符,但一条语句允许有后续行,最后均以回车结束。
(4)整个源程序必须以END语句结束,它通知汇编程序停止汇编。
四、实验内容进入DOS环境中相应的目录下。
如汇编软件的文件来为:D:\MASM,则对应的操作为(1)选择windows的“开始”→“程序”→“附件”→“命令提示符”(2)在DOS命令提示符下输入如下命令(其中带下划线部分为输入内容)。
C:\Documents and Settings\new>D:D:\>CD MASMD:\MASM>EDIT TEXT.ASM进入编辑程序,在其环境下输入编好的源程序,然后在盘上生成一个扩展名为.asm的文件。
程序示例DATA SEGMENTDA1 DB 10H,20H,30H,40HDA2 DB 0F0H,0B0H,0A0H,90HDA3 DB 00H,00H,00H,00HDATA ENDSSTACK1 SEGMENT PARA STACKDB 10 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATAMOV DS,AXMOV AL,[DA1]ADD AL,[DA2]MOV [DA3],ALMOV AL,[DA1+1]ADC AL,[DA2+1]MOV [DA3+1],ALMOV AL,[DA1+2]ADC AL,[DA2+2]MOV [DA3+2],ALMOV AL,[DA1+3]ADC AL,[DA2+3]MOV [DA3+3],ALCODE ENDSEND START3. 用宏汇编程序MASM,将扩展名为.ASM的源程序汇编成目标程序,即生成盘上扩展名为.OBJ的文件。
微机原理的实验报告

一、实验目的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. 汇编语言程序设计实验:通过编写汇编语言程序,提高了汇编语言程序设计能力。
四、实验心得通过本次微机原理实验,我对微机的基本组成、工作原理和指令系统有了更深入的了解。
微机原理实验报告

微机原理实验报告班级:指导老师:学号:姓名:实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。
二、实验内容将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
三、程序框图图3-1四、参考程序清单DATA 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 STASTACK 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 NEARMOV DX,SIMOV BP,DIMOV BX,05HAD1: SUB BYTE PTR [SI],30H SUB 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 AD2MOV SI,DXMOV DI,BPMOV BX,05HAD3: ADD BYTE PTR [SI],30HADD BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD3RETADDA ENDPCODE ENDSEND START五、实验结果与分析这次实验依次将相加数与被加数存入AL,BL,依次从低位向高位相加,然后把结果放在内存中。
微机原理(单片机汇编)实验报告

软件实验报告软件实验一一、实验目的1.熟悉软件实验的基本步骤和汇编程序的调试方法;2.了解内存块的移动方法;3.了解将十六进制数转换成ASCII值的方法。
二、实验原理用MOV和MOVX指令可以进行数据的赋值和移动,用循环可以完成大量数据的复制。
三、实验内容及步骤1、软件设置为模拟调试状态,在所建的Project文件中添加例程1的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。
打开CPU窗口,观察CPU窗口各寄存器的变化。
打开View菜单中的Memory Window,可以观察内部RAM、外部RAM的数据和程序存储器中的程序。
在Address窗口输入X:8000H后回车,观察8000H-800FF起始的256个字节单元的内容。
2、新建一个Project文件,添加例程2的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。
打开View菜单中的Memory Window,在Address 窗口的Memory#1输入X:3000H后回车,点击运行按钮后, 在Memory#2输入X:4000H后回车,观察外部RAM3000H和4000H中的内容。
3、添加将片内30H-3FH单元的内容复制片外片外1030H~103FH中的源程序,编译运行,观察比较30-3FH单元中的内容和片外1030H-103FH中的内容。
4、添加将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中的源程序,编译运行,观察结果。
5、添加求内部RAM 30H—37H单元中8个无符号数的算术和的源程序,8个无符号数设定为25H,36H,4AH,65H,7FH,82H,9BH,1DH,观察39H,38H中的数字是否分别为02H,C3H。
四、实验结果1.步骤1的结果为8000H-80FFH的内容都为1.2.步骤2的结果为3000H起始的256个字节存储块与4000H起始的256个字节存储块各单元内数据对应相同。
微机原理实验总结

微机原理实验总结微机原理实验总结一、实验目的和背景:微机原理实验是计算机科学与技术专业的一门重要实验课程,通过该实验能够加深对微机原理的理论知识的理解,同时也提供了锻炼实验技能和培养解决问题能力的机会。
本次实验主要通过实际操作来学习CPU的工作原理,了解计算机的组成和运行过程,并通过搭建系统、调试和测试,加深对计算机工作原理的理解。
二、实验内容:本次实验主要包括以下几个模块的实验内容:1. 实验器材和器件的测试与调试;2. CPU运行状态及信号测试;3. 总线状态测试;4. 存储器的组织和访问方式测试;5. 输入输出接口测试。
三、实验方法和步骤:1. 实验器材和器件的测试与调试在进行实验之前,首先需要对实验器材和器件进行测试和调试,确保器材和器件的正常工作。
具体步骤如下:a. 检查硬件连接是否正确,包括主板、显示器、键盘等部件;b. 检查排线是否插好,开关是否处于正确的位置;c. 将电源插上,开机检查电源是否工作正常;d. 按照实验要求进行相应的仪器设备的调试。
2. CPU运行状态及信号测试通过搭建CPU运行测试电路,观察和测试CPU的运行状态和输出信号。
具体步骤如下:a. 按照实验要求搭建电路,包括主板、CPU、存储器、时钟等;b. 打开电源,上电后等待系统启动,观察CPU的运行状态;c. 使用示波器进行信号测试,观察时钟信号、读写信号、控制信号等。
3. 总线状态测试通过搭建总线状态测试电路,观察和测试总线的状态。
具体步骤如下:a. 按照实验要求搭建电路,包括总线、存储器等;b. 在开关电源的同时观察总线上的信号变化;c. 使用示波器进行信号测试,观察总线控制信号、数据信号等。
4. 存储器的组织和访问方式测试通过搭建存储器组织和访问方式测试电路,观察和测试存储器的组织和访问方式。
具体步骤如下:a. 按照实验要求搭建电路,包括存储器、地址线、数据线等;b. 打开电源,上电后等待系统启动;c. 运行程序,观察存储器的读写操作;d. 使用示波器等设备进行信号测试,观察地址信号、数据信号等。
微机原理软件实验报告

实验名称:汇编语言程序设计实验日期:2023年3月10日实验地点:计算机实验室实验者:张三一、实验目的1. 熟悉汇编语言的基本语法和指令系统。
2. 掌握汇编语言程序设计的基本方法。
3. 通过实验,加深对微机原理的理解。
二、实验内容本次实验主要涉及以下内容:1. 数据传送指令的应用2. 算术运算指令的应用3. 控制转移指令的应用4. 子程序设计三、实验步骤1. 编写一个简单的程序,实现以下功能:(1)将数据0x1234存入寄存器AX;(2)将数据0x5678存入寄存器BX;(3)计算AX和BX的乘积,并将结果存入寄存器DX;(4)将乘积的高16位和低16位分别存入寄存器CX和AX。
2. 编写一个程序,实现以下功能:(1)将数据0x1A2B3C4D存入内存单元[0x1000];(2)从内存单元[0x1000]开始,读取连续4个字节的数据;3. 编写一个程序,实现以下功能:(1)定义一个子程序,实现两个整数的加法运算;(2)在主程序中调用该子程序,实现两个整数的加法运算。
四、实验结果与分析1. 数据传送指令的应用(1)将数据0x1234存入寄存器AX;MOV AX, 0x1234(2)将数据0x5678存入寄存器BX;MOV BX, 0x5678(3)计算AX和BX的乘积,并将结果存入寄存器DX;MUL BX(4)将乘积的高16位和低16位分别存入寄存器CX和AX; MOV CX, DXMOV AX, DX2. 算术运算指令的应用(1)将数据0x1A2B3C4D存入内存单元[0x1000];MOV [0x1000], 0x1A2B3C4D(2)从内存单元[0x1000]开始,读取连续4个字节的数据; MOV AX, [0x1000]MOV BX, [0x1000+2]MOV CX, [0x1000+4]MOV DX, [0x1000+6]MOV AH, 0x0EINT 0x103. 控制转移指令的应用(1)定义一个子程序,实现两个整数的加法运算;ADD procedure:ADD AX, BXRET(2)在主程序中调用该子程序,实现两个整数的加法运算;MOV AX, 0x1MOV BX, 0x2CALL ADDMOV CX, AX五、实验心得通过本次实验,我深刻理解了汇编语言的基本语法和指令系统,掌握了汇编语言程序设计的基本方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录软件实验部分:实验一清零程序实验二拆字程序实验三拼字程序实验四数据区传送子程序实验五数据排序实验实验六查找相同数个数实验七无符号双字节快速乘法子程序实验八多分支程序实验九脉冲计数(定时/计数器实验)实验十电脑时钟(定时器、中断综合实验)硬件实验部分:实验一 P1口亮灯实验实验二 P1口转弯灯实验实验三 P3.3口输入,P1口输出实验四工业顺序控制实验五继电器控制实验六 8255控制交通灯实验七 LED16×16点阵显示实验实验八串并转换实验实验九 A/D转换实验实验十 D/A转换实验十一电子音响实验十二步进电机控制实验十三 8032串行口应用实验㈠——双机通信实验十四小直流电机调速实验软件实验部分本节共编了十个软件实验,通过这些实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。
本节提供的软件实验,涉及外部数据存储器扩展寻址操作,因此需按下图连接实验线路。
1.将存储器单元的D0—D7总线接口用8芯扁平线与数据总线单元D0—D7的任一接口相连,存储器单元的A0—A7地址接口与地址总线单元(低8)A0—A7的任一接口相连,存储器单元的A8—A12地址接口与地址总线单元(高8)A8—A12的任一接口相连。
注意外部扩充的数据区的有效范围。
2.存储器单元的WE/PGM插孔与六位LED左下方的IOWE插孔相连。
3.存储器单元的OE插孔与六位LED左下方的IORD插孔相连。
4.存储器单元的CS1插孔与六位LED右下方的IOWE插孔相连。
实验一清零程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容把2000H-20FFH的内容清零三、程序框图四、实验步骤用连续或单步方式运行程序,检查2000-20FF中执行程序前后的内容变化。
五、思考假使把2000H-20FFH中的内容改成FF,如何修改程序。
接P1.0到L1,试编写程序,对片外数据存储器6264进行读写操作,若L1闪动则表示6264RAM读写正常。
(此思考题也可留在硬件实验中做)ORG 0640HSE01: MOV R0,#00HMOV DPTR,#2000H ;(2000H)送DPTRLOO1: MOVX @DPTR,A ;0送(DPTR)INC DPTR ;DPTR+1INC R0 ;字节数加1CJNE R0,#00H,LOO1 ;不到FF个字节再清SJMP $END实验二拆字程序一、实验目的掌握汇编语言设计和调试方法。
二、实验内容把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。
三、程序框图四、实验步骤用连续或单步方式运行程序,检查2000—2002H中内容变化情况。
五、思考如何用断点方式调试本程序。
ORG 0660HSE02: MOV DPTR,#2000HMOVX A,@DPTRMOV B,A ;(2000)→A→BSWAP A ;交换ANL A,#0FH ;屏敝高位INC DPTRMOVX @DPTR,A ;送2001HINC DPTRMOV A,BANL A,#0FH ;(2000)内容屏敝高位MOVX @DPTR,A ;送2002HSJMP $END实验三拼字程序一、实验目的进—步掌握汇编语言设计和调试方法。
二、实验内容把2000H、2001H的低位分别送入2002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成—个字节。
三、程序框图四、实验步骤单步或用断点方式运行程序,检查2002H内容变化情况。
ORG 0680HSE03: MOV DPTR,#2000HMOVX A,@DPTRANL A,#0FH ;(2000H)内容屏敝高位SWAP A ;交换MOV B,A ;保存INC DPTRMOVX A,@DPTR ;(2001H)内容送AANL A,#0FH ;屏敝高位ORL A,B ;或INC DPTRMOVX @DPTR,A ;送2002HSJMP $END实验四数据区传送子程序一、实验目的掌握RAM中的数据操作。
二、实验内容把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM区。
三、程序框图四、实验步骤在R2、R3中输入源首址(例如0000H),R4、R5中输入目的地址(例如0200H),R6、R7中输入字节数(例如01FFH),运行程序,检查0000-01FFH中内容是否和0200-03FFH中内容完全—致。
ORG 07B0HMOV R2,#00HMOV R3,#00HMOV R4,#02HMOV R5,#00HMOV R6,#01HMOV R7,#0FFHSE22: MOV DPL,R3MOV DPH,R2 ;建立源程序首址MOVX A,@DPTR ;取数MOV DPL,R5MOV DPH,R4 ;目的地首址MOVX @DPTR,A ;传送CJNE R3,#0FFH,LO42INC R2LO42: INC R3 ;源地址加1CJNE R5,#0FFH,LO43INC R4LO43: INC R5 ;目地址加1CJNE R7,#00H,LO44CJNE R6,#00H,LO45 ;字节数减1SJMP $NOPLO44: DEC R7SJMP SE22LO45: DEC R7DEC R6SJMP SE22 ;未完继续END实验五数据排序实验一、实验目的熟悉8032指令系统,掌握程序设计方法。
二、实验内容编写并调试一个排序子程序,其功能为用冒泡法将内容RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。
三、程序框图四、实验步骤把8032中RAM 50H-5AH中放入不等的数据,运行本实验程序后检查50-5AH中内容是否按从小到大排列。
(注意数据是在CPU内部存储区存放,注意寻址方式。
)五、思考1.修改程序把50H-5AH中内容按从大到小排列;2.如果改为有符号数,如何修改。
ORG 09B0HQUE: MOV R3,#50HQUE1: MOV A,R3 ;指针送R0MOV R0,AMOV R7,#0AH ;长度送R7CLR 00H ;标志位为0MOV A,@R0QL2: INC R0MOV R2,ACLR CMOV 22H,@R0CJNE A,22H,QL3 ;相等吗?SETB CQL3: MOV A,R2JC QL1 ;大于交换位置SETB 00HXCH A,@R0DEC R0XCH A,@R0INC R0 ;大于交换位置QL1: MOV A,@R0DJNZ R7,QL2JB 00H,QUE1 ;一次循环中有交换继续SJMP $ ;无交换退出END实验六查找相同数个数一、实验目的熟悉汇编语言编程。
二、实验内容在2000—200FH中查出有几个字节是零,把个数放在2010H中。
三、程序框图四、实验步骤在2000—200FH的几个单元中填入零,运行本程序后检查2010H中是几个单元数。
五、思考修改程序,查找其它内容。
ORG 0AA0HL5800: MOV R0,#10H ;查找16个字节MOV R1,#00HMOV DPTR,#2000HL5811: MOVX A,@DPTRCJNE A,#00H,L5816 ;取出内容与00H相等吗?INC R1 ;取出个数加1L5816: INC DPTRDJNZ R0,L5811 ;未完继续MOV DPTR,#2010HMOV A,R1MOVX @DPTR,A ;相同数个数送2010HL581E: SJMP L581EEND实验七无符号双字节快速乘法子程序一、实验目的掌握MCS-51汇编语言程序设计方法。
二、预备知识本程序是利用单字节的乘法指令,根据下面的公式进行乘法运算的:(R2R3)*(R6R7)=((R2)*28+(R3))*((R6)*28+(R7))=(R2)*(R6)*216+((R2)*(R7)+(R3)*(R6))*28+(R3)*(R7)三、实验内容将(R2R3)和(R6R7)中双字节无符号整数相乘,积送R4 R5 R6 R7中。
四、程序框图五、实验步骤在R2R3和R6R7中输入无符号整数,连续或单步运行本实验程序后检查R4 R5 R6 R7 中内容。
ORG 0970HQKUL: MOV A,R3MOV B,R7MUL AB ;R3*R7XCH A,R7 ;R7=(R3*R7)低字节MOV R5,B ;R5=(R3*R7)高字节MOV B,R2MUL AB ;R2*R7ADD A,R5MOV R4,ACLR AADDC A,BMOV R5,A ;R5=(R2*R7)高字节MOV A,R6MOV B,R3MUL AB ;R3*R6ADD A,R4XCH A,R6XCH A,BADDC A,R5MOV R5,AMOV PSW.5,C ;存CYMOV A,R2MUL AB ;R2*R6ADD A,R5MOV R5,ACLR AMOV ACC.0,CMOV C,PSW.5 ;加上次加法的进位ADDC A,BMOV R4,ASJMP $END实验八多分支程序一、实验目的掌握汇编语言的编程。
二、实验内容编写程序,根据送入的数据转移运行;了解利用堆栈延时的方法。
三、程序框图四、实验步骤在CPU内部数据区20H中分次送入00、01、02、03,每次运行程序后,观察数码管上数字循环情况。
五、思考修改程序,使数码管显示自动循环显示0、1、2、3。
六、电路介绍字形口FFDCH 字位口/键扫口FFDDH 键入口FFDEH共阴极8段码,a—h接D0—D7,为1灭,为0亮键扫显示控制电路ORG 0A10HMEMS: MOV A,20HMOV DPTR,#KKKK ;散转首址RL A ;(20)*2JMP @A+DPTR ;转到(20)*2+DPTR KKKK: AJMP MEMSP0AJMP MEMSP1AJMP MEMSP2SJMP MEMSP3MEMSP0: MOV 20H,#0C0H ;0字循环LJMP SOX0MEMSP1: MOV 20H,#0F9H ;1字循环LJMP SOX0MEMSP2: MOV 20H,#0A4H ;2字循环LJMP SOX0MEMSP3: MOV 20H,#0B0H ;3字循环LJMP SOX0;---------------------------------------------SOX0: MOV A,20HMOV R0,#0DCHMOV R1,#0DDHMOVX @R0,AMOV A,#01HSOX1: MOVX @R1,AMOV R2,#20HLCALL DELYRL A ;显示子程序SJMP SOX1;---------------------------------------------DELY: PUSH 02HDEL2: PUSH 02HDEL3: PUSH 02H ;延时DEL4: DJNZ R2,DEL4POP 02HDJNZ R2,DEL3POP 02HDJNZ R2,DEL2POP 02HDJNZ R2,DELYRET;---------------------------------------------END实验九脉冲计数(定时/计数器实验) 一、实验目的熟悉8032定时/计数功能,掌握初始化编程方法。