微机原理(单片机汇编)实验报告

合集下载

单片机汇编实验报告

单片机汇编实验报告

单片机汇编实验报告
《单片机汇编实验报告》
实验目的:通过实验,掌握单片机汇编语言的基本语法和操作方法,了解单片
机的工作原理和程序设计。

实验内容:本次实验主要涉及单片机汇编语言的基本指令和操作,包括数据传送、算术运算、逻辑运算、循环控制、条件控制等内容。

通过实验,学生将学
会如何编写简单的单片机程序,并能够通过仿真和调试实现程序的正确运行。

实验步骤:
1. 熟悉单片机汇编语言的基本指令和操作方法;
2. 编写简单的单片机程序,包括数据传送、算术运算、逻辑运算等;
3. 运行程序并进行仿真和调试,确保程序的正确运行;
4. 分析程序的运行结果,总结实验中遇到的问题和解决方法。

实验结果:通过实验,学生将掌握单片机汇编语言的基本语法和操作方法,能
够编写简单的单片机程序,并能够通过仿真和调试实现程序的正确运行。

同时,学生还将对单片机的工作原理和程序设计有更深入的了解,为以后的学习和实
践奠定基础。

结论:通过本次实验,学生将对单片机汇编语言有更深入的了解,并能够熟练
地编写单片机程序。

同时,实验还将培养学生的动手能力和解决问题的能力,
为将来的学习和工作打下坚实的基础。

希望学生能够在以后的学习和实践中不
断提升自己,为科技创新做出更大的贡献。

微机原理实验报告册(3篇)

微机原理实验报告册(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)学习微机中断处理在接口技术中的应用。

微机原理与汇编语言实验报告

微机原理与汇编语言实验报告

微机原理与汇编语言实验报告学号:********班级:*****姓名:*****指导教师:*****一.实验目的1.通过上机实验进一步熟悉并掌握汇编语言的指令系统和寻址方式;2.熟悉汇编语言程序上机的流程,以及与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)3.学习汇编程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法4.能够独自编写,调试,并成功运行一个完整的程序。

二.实验内容与步骤1.掌握汇编语言程序上机过程首先,新建文本文档后将扩展名改为.ASM,这是汇编语言源程序的文件格式,以记事本形式打开后在其中键入所编写的程序。

第一次题目是在屏幕上显示一串字符串,在老师的指导下,编写的程序如下:data segmentnote db 'hello','$'data endscode segmentmain proc farassume cs:code,ds:data,es:datastart:push dssub ax,axpush axmov ax,datamov ds,axmov es,axmov ah,09hlea dx,noteint 21hmain endpcode endsend start之后,要进行编译和运行。

源程序经过翻译程序成为机器能够识别的目标程序,目标程序再经过连接程序连接后转换成在机器上可执行的程序。

基本流程图如下:在编译的过程中,程序查出的主要是语法上的错误,如果有错,则不能通过汇编,要纠错后重新汇编直到无错为止。

最后,生成的.EXE文件即为可执行文件,从磁盘调入内存运行,得到运行结果。

上述程序的运行结果为在屏幕上显示出“hello”。

2.编程完成任意两个两位数的加法运算编程任务的基本要求为:从键盘输入任意两个两位数相加,将结果显示在屏幕上。

刚开始拿到题目后,头脑里是比较混乱的。

经过与同学的探讨之后,我们大概确定出要完成整个功能,需经过以下过程:将输入的ASCII码与十进制数值进行转换,并保存在寄存器中;通过调用程序将两个数相加,并将结果保存;将结果显示在屏幕上。

微机原理实验报告

微机原理实验报告

微机原理实验报告概述:微机原理是计算机科学与技术专业中的一门重要课程,通过实验学习,可以加深对计算机内部运行原理的理解,提高软硬件的开发和调试能力。

本实验报告将介绍我对微机原理实验的学习和思考。

实验一:二进制转换实验在这个实验中,我首先了解了二进制数的概念以及其和十进制数的转换方法。

通过实际操作,我加深了对计算机内部数据表示方式的理解。

这对于后续学习计算机系统结构和编程语言至关重要。

实验二:逻辑门电路实验逻辑门电路是计算机硬件的基础组成部分,通过实验,我学会了使用逻辑门芯片构建各种逻辑电路,并能够通过真值表分析和验证逻辑电路的正确性。

这对于理解计算机内部的数据处理和控制逻辑有着直接的帮助。

实验三:运算器设计实验在这个实验中,我通过学习和设计算术逻辑单元(ALU),了解了计算机的算术操作过程,并能够通过运算器实现基本算术运算。

这对于理解计算机内部数据的处理和计算机指令的执行有着重要的意义。

实验四:存储器与外设实验存储器是计算机系统的重要组成部分,通过实验,我深入了解了存储器的类型、组织结构和访问方式,并通过外设与存储器的交互,实践了计算机系统的输入和输出过程。

实验五:微处理器实验微处理器是计算机系统中最核心的部件,通过实验,我学习了微处理器的基本运行原理,能够通过汇编语言编写程序,并通过微处理器执行程序实现特定的功能。

这个实验为我今后学习计算机体系结构和操作系统打下了坚实的基础。

实验总结:通过这几个实验,我深入了解了微机原理课程的实践内容和相关知识。

实验的过程中,我不仅学会了使用仪器设备和工具,还培养了自己的动手能力和团队合作精神。

通过不断的实践,我对计算机内部结构和运行原理有了更深刻的理解,也提高了我的问题解决能力和创新思维。

未来展望:微机原理实验的学习只是计算机科学与技术专业中的一小部分。

我希望在今后的学习过程中能加深对计算机体系结构、操作系统、编程语言等方面的学习,并不断深入钻研,成为一名优秀的计算机科学与技术专业人才。

微机原理实验报告参考

微机原理实验报告参考

实验一汇编语言程序上机过程练习1.实验目的掌握汇编语言程序上机的步骤,掌握汇编语言程序编辑、汇编、连接、运行、调试的方法。

2.实验内容:输入老师提供的汇编语言源程序,完成汇编、连接、运行、调试过程。

3.实验步骤:(1)、上机环境的准备在资源管理器中,在d盘上新建自己的文件夹zhangsan(备注:请把zhangsan替换成你自己的文件夹名,用英文字母命名,并且名字长度不超过8个字符)。

把机器上的masm.exe和link.exe等文件拷到该文件夹内。

(2)、上机过程①切换工作路径:打开命令提示符窗口、转到d盘、切换我的文件夹为当前路径②把老师提供的源程序用记事本(或者EDIT)输入到机器内,保存为扩展名为.asm的文本文件。

③用汇编程序MASM对源程序进行汇编,如果源程序有错误则修改,直到汇编通过,生成扩展名为OBJ的二进制的目标文件。

④用连接程序LINK对上面生成的二进制目标文件进行连接,有错误则修改源程序,重新进行汇编、连接,直到连接成功生成扩展名为EXE的可执行文件。

⑤在DOS提示符下运行可执行文件。

屏幕上显示“Hello Word!”⑥用DEBUG对可执行文件进行调试。

4.附源程序:DATA SEGMENTMSG DB 'HELLO WORLD!$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA DX,MSGMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START实验二汇编语言程序设计练习1.实验目的(1)掌握汇编语言程序设计的基本步骤,分析问题,确立算法,画出程序流程图。

说明流程图中各功能的含义和表示法。

分配工作单元和存储空间。

根据程序算法流程选择合适的指令编制汇编语言源程序。

(2)掌握顺序程序的设计基本方法和技巧。

(3)掌握分支程序设计的方法,重点掌握各种分支程序中形成和判断条件而产生的程序段的设计方法和技巧。

微机原理实验报告_2

微机原理实验报告_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. 汇编语言程序设计实验:通过编写汇编语言程序,提高了汇编语言程序设计能力。

四、实验心得通过本次微机原理实验,我对微机的基本组成、工作原理和指令系统有了更深入的了解。

单片机汇编实验报告

单片机汇编实验报告

单片机汇编实验报告1. 实验目的本实验旨在通过编写单片机汇编程序,掌握单片机的基本操作,理解汇编语言和单片机的工作原理。

2. 实验器材•STC89C52单片机开发板•串口线•电脑3. 实验原理单片机是一种集成了处理器、存储器、输入输出设备等功能的微型计算机系统。

通过编写汇编语言程序,可以利用单片机的内部寄存器和外部接口,实现各种功能。

4. 实验步骤步骤一:准备工作1.将STC89C52单片机开发板与电脑通过串口线连接。

2.打开开发板电源,确保电源工作正常。

步骤二:编写汇编程序1.打开汇编语言编辑器,例如Keil C51。

2.创建一个新的汇编语言项目,命名为“experiment.asm”。

3.编写汇编程序,实现所需的功能。

例如,可以编写一个简单的程序,使LED灯闪烁。

步骤三:编译和烧录程序1.选择适当的编译选项,将汇编程序编译为二进制文件。

2.将生成的二进制文件烧录到单片机中。

可以使用烧录软件或者编程器完成这一步骤。

步骤四:连接外部电路1.根据需要,连接外部电路到单片机的GPIO引脚。

例如,如果需要控制LED灯,可以将LED的阳极连接到单片机的某个输出引脚,将LED的阴极连接到单片机的地。

步骤五:运行实验1.将开发板连接到电源,确保电源正常工作。

2.按下开发板上的复位按钮,使单片机开始执行程序。

3.观察实验现象,并记录下实验结果。

5. 实验结果与分析通过以上步骤,我们成功编写并烧录了一个简单的汇编程序到单片机中。

在运行实验时,LED灯按照程序的要求进行闪烁。

这表明我们的实验设计和编程是正确的。

6. 实验总结在本次实验中,我们通过编写汇编程序,学习了单片机的基本操作和工作原理。

通过实际操作,我们更好地理解了汇编语言的编写和单片机的工作方式。

同时,我们还学会了使用烧录软件将程序烧录到单片机中,并通过外部电路观察实验结果。

7. 实验改进在以后的实验中,我们可以尝试更复杂的功能,例如通过单片机控制电机或者LCD显示屏等。

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

软件实验报告软件实验一一、实验目的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个字节存储块各单元内数据对应相同。

3.步骤3的结果为片外1030H-103FH中的内容与片内30H-3FH单元的内容相同。

4.步骤4的结果为将30H、31H中的十六进制数转换成了ASCII码,并存入到40H 开始的4个单元中。

5.步骤5的结果为8个无符号数的和为02C3H。

五、思考题1、如何将存储器块的内容置成某固定值(例全填充为0FFH)? 请用户修改程序,完成此操作。

答:程序修改如下:将MAIN修改如下即可:MAIN: MOV DPTR, #STARTMOV R0,#0MOV A, #0FFH2、若源块地址和目标块地址有重叠,程序该如何设计(用地址减1方法移动块)?假设源块地址2000H,目标块地址2050H,移动块长度80H。

答:程序修改如下:ORG 0000HMOV DPTR, #2000H MOV A, #01HMOV R5, #0 LOOP:MOVX @DPTR, A INC DPTRDJNZ R5, LOOP MOV R0, #20H MOV R1, #00H MOV R2, #20H MOV R3, #50H MOV R7, #7FH LOOP1:MOV DPH, R0 MOV DPL, R3 MOVX @DPTR, A CLR CMOV A, R1 SUBB A, #0MOV R1, ACLR CMOV A, R3 SUBB A, #0MOV R3, AMOV A, R0 SUBB A, #0MOV R0, AMOV A, R2 SUBB A, #0MOV R2, AMOV DPL, R1MOVX A, @DPTRMOV DPH, R2六、源程序1、将片内30H-3FH单元的内容复制片外片外1030H~103FH中ORG 0000HMOV R0, #30HMOV DPTR, #1030HMOV R7,#10HLOOP1:MOV A, #0FHMOV @R0, AINC R0DJNZ R7, LOOP1MOV R0, #30HMOV R7,#10HLOOP: MOV A,@R0INC R0MOVX @DPTR, AINC DPTRDJNZ R7, LOOPSJMP $END2、将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中ORG 0100HMOV 30H, #0FHMOV 31H, #11HMOV R0, #41HMOV @R0, #00HMOV A, 30HXCHD A, @R0ORL 41H, #30HSWAP AORL A, #30HMOV 40H, AMOV R0, #43HMOV @R0, #00HMOV A, 31HXCHD A, @R0ORL 43H, #30HSWAP AORL A, #30HMOV 42H, AEND3、求内部RAM 30H—37H单元中8个无符号数的算术和ORG 0000HMOV 30H, #25HMOV 31H, #36HMOV 32H, #4AHMOV 33H, #65HMOV 34H, #7FHMOV 35H, #82HMOV 36H, #9BHMOV 37H, #1DHMOV R0, #30HMOV 39H, #0MOV R7, #8HCLR CMOV A, @R0Loop: INC R0ADD A, @R0MOV 38H, AMOV A,39HADDC A, #0MOV 39H, AMOV A, 38HCLR CDJNZ R7, LoopSJMP $END软件实验二一、实验目的1、熟悉软件实验的基本步骤和汇编程序的调试方法;2、掌握简单的数值算法;3、掌握多分支结构程序的编程方法。

二、实验原理将给定的一字节二进制数,转换成十进制(BCD)码的方法为将数除以100,得百位数,保存百位数,再将余数除以10,得十位数并保存,最后的余数为个位数,将其保存。

用A和B两个寄存器来完成除法,被除数和商放在A,除数和余数放在B。

三、实验及步骤1、在所建的Project文件中添加例程的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。

打开CPU窗口,观察CPU窗口各寄存器的变化。

打开View菜单中的Memory Window,在Address窗口输入D:30H后回车,点击运行按钮,观察地址30H、31H、32H的数据变化。

2、添加实验书实验内容1的源程序,编译,运行,观察(33H)=0x58, (32H)=0xA2,(31H)=0x34, (30H)=0x7E和(43H)=0x07, (42H)=0x68, (41H)=0x85, (40H)=0x3B的差是否为(33H)=0x51, (32H)=0x39, (31H)=0xAF, (30H)=0x43。

3、添加实验书实验内容2的源程序,编译,运行,观察(0100H)=0x10, (0101H)=0x32,(0102H)=0x54, (0103H)=0x76和(0110H)=0x78, (0111H)=0x56, (0112H)=0x34, (0113H)=0x92的和是否为(0120)=0x88, (0121)=0x88, (0122)=0x88, (0123)=0x68, (0124)=0x01。

4、添加实验书实验内容3的源程序,编译,运行。

四、实验结果1.步骤1的结果为,30H内容将更新为01,31H更新为02,32H更新为03。

2.步骤2的结果为,33H,32H,31H,30H中的数字分别为0x51,0x39,0xAF,0x43.3.步骤3的结果为,0120,0121,0122,0123中的数分别为0x88,0x88,0x88,0x68,0x01.4.步骤4的结果为,A中显示的为R3中的数的平方。

五、思考题BCD码转换成二进制数的算法是什么?答:BCD码转换成二进制的算法和二进制数转换成BCD码的算法相反,是高位乘10再与低位相加。

六、源程序1、无符号多字节二进制数据减法。

被减数放在30H开始的4个单元中(从低字节到高字节),减数放在40H开始的4个单元中(从低字节到高字节),差放入30H开始处(从低字节到高字节)ORG 0000HMOV R0, #30HMOV R1, #40HMOV R7, #04HCLR CLOOP:MOV A, @R0SUBB A, @R1MOV @R0, AINC R0INC R1DJNZ R7, LOOPSJMP $END2、多字节BCD码加法运算。

两个4字节长的BCD码加数分别存放在外部RAM 0100H 和0110H开始的单元中(从低字节到高字节),计算两数之和,结果保存在0120H开始的9个单元中。

ORG 0MOV DPH #1HMOV DPL #0 MOV R0, #30H MOV R7, #04H LOOP1: MOVX A, @DPTR MOV @R0, A INC DPTR INC R0 DJNZ R7, LOOP1 MOV DPL, #10H MOV R0, #40H MOV R7, #04H LOOP2: MOVX A, @DPTR MOV @R0, A INC DPTR INC R0 DJNZ R7, LOOP2 MOV DPL, #20H MOV R0, #30H MOV R1, #40H CLR C LOOP3:2、 分别用近程查表指令和远程查表指令,查找R3内容的平方值。

R3内容小于等于0FH 。

近程查表指令:ORG 0 MOV A,R3 ADD A,#2 MOVC A,@A+PCMOV A, @R0 ADDC A, @R1 DA A INC R0 INC R1 MOVX @DPTR, A INC DPTR DJNZ R7, LOOP3 MOV A, #0 ADDC A, #0 MOVX @DPTR, A SJMP $ ENDSJMP $TABL:DB 00H,01H,04H,09HDB 10H,19H,24H,31HDB 40H,41H,64H,79HDB 0A9H,0C4H,0E1HEND远程查表指令:ORG 0MOV DPTR,#TABLMOV A,R3MOVC A,@A+DPTRSJMP $ORG 4000HTABL:DB 00H,01H,04H,09HDB 10H,19H,24H,31HDB 40H,41H,64H,79HDB 0A9H,0C4H,0E1HEND软件实验三一、实验目的1、熟悉软件实验的基本步骤和汇编程序的调试方法;2、掌握数值的加减运算;3、掌握用查表的方法将BCD值转换成ASCII值。

二、实验原理将一个BCD数转换成ASCII值的方法为:先将高四位用查表法转成ASCII码,再将低四位用查表法转成ASCII码。

相关文档
最新文档