汇编语言顺序结构程序设计
- 格式:doc
- 大小:146.00 KB
- 文档页数:6
汇编语言顺序结构实验报告————————————————————————————————作者: ————————————————————————————————日期:ﻩ实验二实验目的:1.掌握顺序结构程序的基本设计方法;2.掌握数据传送指令和算术运算指令的用法;3.掌握逻辑操作指令和移位操作指令的用法;4.掌握状态标志位操作指令的用法;5.掌握简单的I/O功能调用。
实验要求1.熟练掌握DEBUG中的U,D,E,G命令的使用方法;2.学会利用系统功能调用,来实现键盘输入字符、显示字符的方法;3.了解大、小写字母及数字在计算机中的表示方法及转换方法。
实验内容题目编写十六进制的乘法程序。
要求从键盘上输入两个一位十六进制数据,乘积存入SUM单元以下是我的汇编程序代码:DSEG SEGMENTSUM DW?HTABDB '0123456789???????ABCDEF'HTAA DB'0123456789ABCDEF'DSEG ENDSCSEGﻩSEGMENTﻩASSUMEﻩCS:CSEG,DS:DSEGSTART: MOVAX,DSEGﻩﻩMOVﻩDS,AX ﻩMOVAH,01HINT 21HMOVﻩDL,'*'MOV AH,02HINT21HSUB AL,30HLEA BX,HTABﻩﻩXLATMOV DL,ALMOV AH,01HINT21HSUB AL,30HﻩXLATMOV BL,DLMULBLMOVSUM,AXMOV BL,ALMOV CL,ALMOV DL,'='ﻩMOVAH,02HINT21HSHR BL,4MOV AL,BLLEA BX,HTAAXLATMOV DL,BLMOV AH,02HINT 21HAND CL,0FHMOV AL,CLﻩXLATMOVDL,ALMOV AH,02HINT21HMOV DL,'H'MOV AH,02HINT21HMOV AH,4CHINT 21HCSEG ENDSﻩENDﻩSTART结果ﻩ该程序不仅将结果存入了sum,且显示在了屏幕上,经测试无溢出。
河北工业大学城市学院《汇编语言程序设计》实验报告实验4 顺序结构程序设计一、实验目的1.掌握汇编语言集成开发环境下编写完整汇编程序的书写方法。
2.掌握汇编语言集成开发环境下汇编程序的汇编、连接、执行和调试。
3.常用伪指令的使用。
4. 掌握顺序结构程序的编写方法。
二、实验内容1.从键盘输入一个大写字母,将其转换为小写字母并显示在屏幕上解:程序代码为:DATAS SEGMENTDATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS START:MOV AX,DATASMOV DS,AXMOV AH,1;功能号为1,键盘输入单字符并回显INT 21HADD AL,32MOV DL,ALMOV AH,2;功能号为2,显示输出单字符INT 21HMOV AH,4CHINT 21HCODES ENDSEND START运行结果如图所示:2.在内存X和Y单元各存放了一个非压缩BCD码,将它们组合为压缩BCD码并存于Z单元(高地址做高位)。
解:程序代码为:DATAS SEGMENTX DB 00000101BY DB 00000110BZ DB?DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS START:MOV AX,DATASMOV DS,AXMOV CL,4SHL X,CLMOV CL,YOR CL,XMOV Z,ALMOV AH,4CHINT 21H CODES ENDSEND START运行结果如图所示:3.在内存TAB开始的16个单元连续存放了0-15的平方值(0-225),任给一个数X(0 ≤X ≤15),求X的平方值,并把结果存放在Y单元中。
解:程序代码为:DATAS SEGMENTTAB DB 0,1,4,9,16,25,36DB 49,64,81,100,121DB 144,169,196,225X DB 6Y DB? DATAS ENDS CODESSEGMENTASSUME CS:CODES,DS:DATAS START:MOV AX,DATASMOV DS,AXLEA BX,TABMOV AL,XMOV AH,0ADD BX,AXMOV AL,[BX]MOV Y,ALMOV AH,4CHINT 21H CODES ENDSEND START。
第四章汇编语言程序设计本章的汇编语言程序设计的主要容有:汇编语言程序设计概述、汇编语言程序的结构形式、汇编语言的伪指令。
(一个单片机应用系统和其它计算机系统一样,在完成一项具体工作的时候,它要按照一定的次序,去执行操作,这些操作实际上就是由设计人员,以单片机能够接受的指令编制的程序,那么无论计算机也好,单片机也好,实际上编制程序的过程,就是用计算机来反映设计者的编程思想,那么这一章中,我们将向大家介绍怎样使用单片机指令系统来编制一些应用程序。
在介绍之前,我们还是来学习汇编语言的一些基础知识)4.1 汇编语言程序设计概述1、计算机的汇编语言以助记符表示的指令,每一条指令就是汇编语言的一条语句。
(汇编语言程序设计实际上就是使用汇编指令来编写计算机程序。
汇编语言的语句有严格的格式要求)2、汇编语言的语句格式MCS-51汇编语言的语句格式表示如下:[<标号>]: <操作码> [<操作数>]; [<注释>]标号:指令的符号地址,有了标号,程序中的其它语句才能访问该语句。
①标号是由1~8个ASCII字符组成,但头一个字符必须是字母,其余字符可以是字母、数字或其它特定字符。
②不能使用汇编语言已经定义了的符号作为标号,如指令助记符、伪指令记忆符以及寄存器的符号名称等。
(同一个标号在程序中只能定义一次,不能重复定义;一条语句可以有标号,也可以没有标号,所以是否有标号,取决于程序中是否需要访问该语句。
)操作码:规定语句执行的操作容,操作码是以指令助记符表示的,是汇编指令格式中唯一不能空缺的部分。
操作数:给指令的操作提供数据或地址。
注释:是对语句或程序段的解释说明。
(在单片机中,这四个部分怎么加以区分呢?使用分界符)分界符(分隔符):用于把语句格式中的各部分隔开,以便于编译程序区分不同的指令段。
冒号(:)用于标号之后空格()用于操作码和操作数之间逗号(,)用于操作数之间,分割两个以上的操作数分号(;)用于注释之前。
ARM技术原理与应用实验报告实验2 顺序与分支汇编语言程序设计实验专业电子信息工程班级14电信班学生姓名陈定光学号2014010243101指导教师曹计昌2017年4月19 日实验2 顺序与分支汇编语言程序设计实验1、实验目的(1)掌握顺序结构汇编语言程序设计;(2)掌握分支结构汇编语言程序设计;(3)掌握AXD环境下顺序结构和分支结构汇编语言程序的运行、调试。
2、实验要求1、实验必须在在ADS1.2环境下进行。
2、工程名、汇编语言源文件名按照下面规则命名:工程名:pj+学号最后4位+其它字符汇编语言源文件名:p+学号最后4位+其它字符+.s例如:张维智同学学号最后4位是3134因此,pj3134、pj3134a、pj31341等都是允许的工程名;而 p3134a.s、p3134b.s等都是允许的源文件名。
3、实验报告中需要说明实验中在ADS、AXD环境下进行的实际操作;4、实验报告中应给出实际的实验操作、编写的源程序、及计算机的调试观察结果;5、按照规定格式打印实验报告。
3、实验内容1、编写程序p2xxxx1.s完成下面任务:(1)将1、2、3、4、5、6、7、8依次传送给寄存器R1-R8;分析:如上图显示,寄存器r1-r8分别是存放1-8(2)用STMIA指令将R1-R8保存到刚好能够存储8个字数据ARY_A数组中。
分析:如上图显示,地址0x8058-0x8078分别存放1-8(3)用STMIB指令将R1-R8保存到刚好能够存储8个字数据ARY_B数组中。
分析:如上图显示,地址0x8088-0x80A7分别存放1-8(4)用STMDA指令将R1-R8保存到刚好能够存储8个字数据ARY_C数组中。
分析:如上图显示,地址0x8094-0x80B3分别存放1-8(5)用STMDB指令将R1-R8保存到刚好能够存储8个字数据ARY_D数组中。
(6)用LDMIA指令将ARY_A数组中数据5、6、7、8传送到R1-R4寄存器。
《汇编语言程序设计》实验报告实验名顺序结构程序设计实验室实验楼实验日期2014-05-05add ax,Zmov W,ax ;X,Y,Z之和存入W中retmain endpcode ends ;代码段结束end start3.调试过程:(1).用masm程序产生mwn1.obj文件,编译没有错误,如下图:(2).用link程序产生mwn1.exe文件,连接没有错误,如下图:(3).进入debug调试,用u命令反汇编,查看代码段,数据段所在的内存单元;(4).由(3)可知,数据段在144A段,如下图,用d命令查看数据段的值,依次为5,6,7,接着下一个字的内容为0:(5).用t命令单步执行,前三次为初始化,具体的如下图:(6)用t命令执行,如下图,将[0000]单元中的内容05h传给ax,ax中的内容为0005,将[0002]单元中的内容和ax相加,并把结果存放在ax中,ax中的内容为000b=(5+6)(7)用t命令执行,如下图,将[0004]单元中的内容0bh和ax相加,并把结果存放在W中,W 中的内容为0012=(0b+7)题目二:1.设计:首先,在数据段中,定义字符串存放在变量s1中,同时申请一个字单元,用标号s2来表示,用来存放计数次数;在代码段中,首先初始化,然后,根据cld与rep的组合递减,将字符一个一个根据地址的指示按顺序输出。
2.源程序清单data segments1 db 'This is a program!$'count equ $-s1 ;变量count代替$-s1s2 db count dup(?)data ends ;定义数据段,变量s1为字符串'This is a program!$',;变量s2是重复计数次数code segment ;代码段assume cs:code,ds:data,es:datastart:mov ax,datamov gtmov es,ax ;初始化mov si,offset s1 ;将变量s1的偏移地址放入寄存器si中mov di,offset s2 ;将变量s2的偏移地址放入寄存器di中mov cx,count ;将计数次数存入寄存器cx中Cldrep movsb ;在字符串的比较,di或si是可以自动增减,即si,di向前移动mov dx,offset s2mov ah,9int 21hmov ax,4c00hint 21h ;输出结果code endsend star t3.调试过程:(1).用masm程序产生mwn2.obj文件,编译没有错误,如下图:(2).用link程序产生mwn1.exe文件,连接没有错误,如下图:(3).进入debug调试,用u命令反汇编,查看代码段,数据段所在的内存单元;(4).由(3)可知,数据段在144A段,如下图,用d命令查看数据段的值,依次为This is a program!$,接着下一个字的内容为0:(5)用t命令单步执行,前三次为初始化,具体的如下图:(6)用t命令执行,如下图,将偏移地址存入si,di;(7)用t命令执行,如下图,命令执行count次数;(8)执行结果,如下图:题目三:查表法,实现一位16进制数转换为ASCII码显示1.设计:首先,在数据段中,定义0~9的ASCII码、A~F的ASCII码,并设定一个待转换的数;(1)用masm程序产生mwn3.obj文件,编译没有错误,如下图:(2)用link程序产生mwn3.exe文件,没有错误,如下图:(3)进入debug调试,用u命令反汇编,查看代码段,数据段所在的内存单元;(4).由(3)可知,数据段在144A段,如下图,用d命令查看数据段的值,依次为5,6,7,接着下一个字的内容为0:(5).用t命令单步执行,前三次为初始化,具体的如下图:(6)用t命令执行,如下图,将BX指向ASCII码表;(7)用t命令执行,如下图,AL取得一位16进制数,即ASCII码表中位移;(8)用t命令执行,如下图,高4位清0,只有低4位有效;(9)用t命令执行,如下图,换码过程;(10)用t命令执行,输出结果B,如下图:。
实验名称:汇编语言顺序程序设计实验报告实验目的:通过本次实验,学生能够掌握使用汇编语言编写顺序程序的基本方法,理解汇编语言的基本结构和运行机制。
实验内容:1. 汇编语言基础知识1.1 汇编语言的概念1.2 汇编语言的特点1.3 汇编语言的应用领域2. 汇编语言程序设计2.1 程序设计的基本流程2.2 程序设计的基本步骤2.3 汇编语言程序设计的规范与技巧3. 实验步骤3.1 确定实验题目和要求3.2 分析实验任务,设计程序流程图3.3 编写汇编程序3.4 调试程序,确保程序正确运行3.5 编写实验报告4. 实验报告要求4.1 实验题目4.2 实验目的4.3 实验内容和步骤4.4 程序设计思路和实现方法4.5 实验结果分析和讨论4.6 实验心得体会实验过程:1. 确定实验题目和要求本次实验的题目为“汇编语言顺序程序设计”,要求学生使用汇编语言编写一个顺序程序,实现指定的功能要求。
2. 分析实验任务,设计程序流程图在开始编写汇编程序之前,我们首先要明确实验的功能需求,然后设计程序的流程图,规划程序的整体结构。
3. 编写汇编程序在设计好程序流程后,根据汇编语言的语法规则,编写相应的程序代码,并确保程序的逻辑正确,语法无误。
4. 调试程序,确保程序正确运行编写完成程序后,需要对程序进行调试,逐步检查程序运行过程中的各个环节,发现并修复可能存在的错误。
5. 编写实验报告我们需要撰写本次实验的实验报告,详细记录实验的整体过程,包括程序设计思路、程序实现方法、实验结果分析和讨论,以及实验心得体会。
实验结果分析和讨论:经过本次实验,我们掌握了汇编语言顺序程序设计的基本方法和技巧,了解了汇编语言程序设计的规范和要求。
在实验过程中,我们遇到了一些问题和困难,但通过不懈的努力和团队合作,最终成功完成了实验任务,并取得了令人满意的成绩。
实验心得体会:通过本次实验,我们深刻认识到汇编语言在计算机领域中的重要性和应用价值,同时也意识到汇编语言程序设计的复杂性和技术挑战。
汇编语言程序设计步骤一、引言汇编语言是一种底层的计算机语言,用于编写机器指令,控制计算机硬件。
它是一种直接操作计算机硬件的语言,因此在编写汇编语言程序时需要遵循一系列步骤,以确保程序的正确性和高效性。
二、程序设计步骤1. 确定程序的目标和需求:在编写汇编语言程序之前,我们首先需要明确程序的目标和需求。
这包括程序要实现的功能、输入和输出的格式等。
2. 设计程序的算法:根据程序的目标和需求,我们需要设计程序的算法。
算法是程序的核心,它描述了解决问题的步骤和方法。
在设计算法时,我们需要考虑程序的效率和可读性。
3. 编写程序的伪代码:在正式编写汇编语言程序之前,我们可以先编写程序的伪代码。
伪代码是一种类似自然语言的描述,用于描述程序的逻辑结构和算法。
编写伪代码可以帮助我们更清晰地理解程序的逻辑。
4. 编写汇编语言程序:在编写汇编语言程序时,我们需要根据程序的伪代码,使用汇编语言的指令和语法,逐步实现程序的功能。
编写程序时,需要注意变量的定义、指令的顺序和循环结构的使用等。
5. 进行程序的测试和调试:编写完汇编语言程序后,我们需要进行测试和调试。
通过输入不同的数据,检查程序的输出是否符合预期。
如果程序出现错误或bug,我们需要通过调试,找出错误的原因并进行修复。
6. 优化程序的性能:为了提高程序的执行效率,我们可以对程序进行优化。
优化的方法包括改进算法、减少指令的使用和优化内存的访问等。
通过优化程序,可以使程序更快速地运行。
7. 文档化和维护程序:编写完汇编语言程序后,我们需要撰写程序的文档,包括程序的功能、输入和输出的格式、程序的使用方法等。
同时,还需要对程序进行维护,及时修复bug和添加新的功能。
三、总结汇编语言程序设计是一项复杂而重要的任务。
通过遵循上述步骤,我们可以编写出高质量、高效率的汇编语言程序。
同时,编写汇编语言程序也需要耐心和细心,不断学习和积累经验,以提升自己的编程能力。
通过不断的实践和学习,我们可以成为一名优秀的汇编语言程序员。
汇编程序设计语言知识点汇编程序设计语言是一种低级别的程序设计语言,用于编写计算机的底层代码。
它与高级语言相比,更加接近机器的指令集架构,可以直接操作计算机的硬件和寄存器。
在本文中,将介绍汇编程序设计语言的一些重要知识点。
一、汇编语言基础知识1. 汇编语言的发展历程:从机器语言到汇编语言;2. 汇编语言的组成部分:指令、操作数和寄存器;3. 汇编语言的语法规则:标号、指令、操作数和注释的格式;4. 汇编程序的编写流程:编辑、汇编、链接和运行。
二、汇编语言的数据类型1. 二进制数和十六进制数的表示方法;2. 常用的数据类型:字节、字和双字;3. 数据的存储方式:大端字节序和小端字节序;4. 数据的表示范围和溢出问题。
三、汇编语言的指令集1. 数据传输指令:MOV、XCHG、PUSH和POP等;2. 算术运算指令:ADD、SUB、INC和DEC等;3. 逻辑运算指令:AND、OR、XOR和NOT等;4. 条件转移指令:JMP、JZ、JE和JG等;5. 循环控制指令:LOOP、LOOPZ和LOOPNZ等;6. 系统调用指令:INT、CALL和RET等。
四、汇编语言的控制结构1. 顺序结构:代码按顺序执行;2. 条件结构:根据条件选择执行路径;3. 循环结构:根据条件循环执行代码块;4. 无限循环:使用JMP指令实现无限循环。
五、汇编语言的调试和优化1. 调试工具:调试器、寄存器监视、内存监视和断点设置;2. 常见的调试问题和解决方法;3. 优化技巧:减少指令数量、减少内存访问和提前计算等。
六、汇编语言的应用领域1. 操作系统开发:汇编语言作为操作系统内核的编程语言;2. 嵌入式系统开发:汇编语言用于编写驱动程序和底层代码;3. 游戏开发和图形编程:汇编语言用于优化性能和实现特殊效果;4. 加密和反汇编:汇编语言用于加密算法和反编译程序。
结语本文介绍了汇编程序设计语言的基础知识、数据类型、指令集、控制结构、调试和优化等重要知识点,以及其在不同领域的应用。
第四章教学实施计划3课堂教学实施计划第 8 课教学过程设计:复习 0 分钟;授新课 100 分钟讨论 0 分钟;其它 0 分钟授课类型(请打√):理论课√讨论课□实验课□习题课□其它□教学方式(请打√):讲授√讨论□示教□指导□其它□教学手段(请打√):多媒体√模型□实物□挂图□音像□其它□4.1 汇编语言程序设计概述程序实际上是一系列计算机指令的有序集合。
我们把利用计算机的指令系统来合理地编写出解决某个问题的程序的过程,称为程序设计。
程序设计是单片机应用系统设计的重要组成部分,单片机的全部动作都是在程序的控制下进行的。
随着芯片技术的发展,很多标准的或功能型的硬件电路都集成到了芯片中,所以,软件设计在单片机应用系统开发中占的比重越来越大。
一、汇编语言和高级语言汇编语言:用助记符表示的指令称为汇编语言,用汇编语言编写的程序称为汇编语言源程序汇编语言也是面向机器的,它仍是一种低级语言。
汇编语言离不开具体计算机的硬件,与硬件紧密相关。
高级语言:高级语言不受具体“硬件”的限制,具有通用性强,直观、易懂、易学,可读性好等优点。
多数的51单片机用户使用C语言来进行程序设计。
C语言已经成为人们公认的高级语言中高效、简洁而又贴近51单片机硬件的编程语言。
二、汇编语言的特点•助记符指令和机器指令一一对应,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,因此汇编语言能编写出最优化的程序。
•使用汇编语言编程比使用高级语言困难,因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解。
•汇编语言能直接访问存储器及接口电路,也能处理中断,因此汇编语言程序能够直接管理和控制硬件设备。
•汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言,不同计算机的汇编语言之间不能通用。
三、汇编语言的语句格式•指令语句:每一条指令语句在汇编时都产生一个指令代码(也称机器代码),执行该指令代码对应着机器的一种操作。
实验3 顺序结构程序设计
一、实验目的
学习数据传送指令和算术运算指令的用法;掌握数据定义伪指令的格式,会用DEBUG 中的D命令观察DB、DW、DD存储数据的格式;熟悉汇编语言的基本框架,掌握编写汇编语言程序的基本方法。
二、示例
源程序如下:
data segment
a d
b 10
b db 20
d db 30,40,50
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov al,d+1
add al,d
mov a,al
mov al,d+1
add al,d+2
mov b,al
add d,10
add d+1,20
add d+2,30
exit: mov ah,4ch
int 21h
code ends
end start
阅读程序,试问程序执行到exit时,字节单元a、b、d、d+1、d+2中的内容各是什么?(结合程序分析和实验实际结果截图)
结果:a:46
b:5A
d:28
d+1:3C
d+2:50
验证:
分析出结果,并上机验证。
三、实验题
求表达式Y=A*X2+B*X+C的值,已知a、b、d分别存放在dataa、datab、datad字节单元,X存放在TABLE字节单元,结果Y放入RESULT字单元。
要求:①在DEBUG下多次修改X的值,观察执行结果Y
四、实验报告
写出程序清单,记录运行结果;总结DEBUG中U、E、D、T、G命令的功能。
程序代码:
data segment
dataa db 1
datab db 3
datad db 5
table db 2
result dw?
data ends
code segment
assume cs:code,ds:data start:
mov ax,data
mov ds,ax
mov al,table
mul al
mul dataa
cbw
mov bx,ax
mov al,table
mul datab
add bx,ax
mov al,datad
cbw
add bx,ax
mov result,bx
exit: mov ah,4ch
int 21h
code ends
end start
运行结果:
①在DEBUG下多次修改X的值,观察执行结果Y
更改X的值为3
验算正确
更改X值为5
更改X的值为0
总结DEBUG中U、E、D、T、G命令的功能。
1.U(反汇编命令) 将主存内容从指定内容或者范围内按照机器代码形成汇编指令显示
2.E(修改命令) 用于修改指定地址或者通过数据表修改指定地址的主存内容。
例如:-e ds:100 F3`XYZ`8D ;用F3/`X`/`Y`/`Z`/8D这5个数据替代DS:0100 ~ 0104的原来内容。
3.D(显示命令) 显示当前开始的地址的主存内容,或者显示指定范围的主存内容。
例如:-d 100 ;显示数据段100h开始的主存单元。
4.T(跟踪命令) 每执行一条指令就显示运行结果,使程序员可以细致地观察程序的执行情况。
从指定地址起执行一条或数值参数指定条数的指令后停下来,每条指令执行后都要显示所有寄存器和标志位的值以及下一条指令。
如未指定地址则从当前的CS : IP开始执行。
注意给出的执行地址前有一个等号,否则会被认为是被跟踪指令的条数(数值)。
5.G(运行命令) 从指定地址处开始运行程序,直到遇到断点或者程序正常结束。
程序遇到断点(实际上就是断点中断指令INT 3),停止执行,并显示当前所有寄存器和标志位的内容、以及下一条将要执行的指令(显示内容同R命令),以便观察程序运行到此的情况。
程序正常结束,将显示“Program terminated normally”。