汇编实验2 顺序程序设计
实验2 顺序与分支汇编语言程序设计实验

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寄存器。
汇编语言-实验二 循环与子程序程序设计

汇编语言-实验二循环与子程序程序设计
实验目的
本实验旨在通过学习循环和子程序的概念和使用方法,掌握汇
编语言中循环和子程序的程序设计技巧,培养学生的程序设计能力。
实验内容
1. 循环程序设计:编写一个循环程序,实现指定次数的循环操作。
2. 子程序程序设计:编写一个子程序,实现指定功能的模块化
程序设计。
实验步骤
循环程序设计
1. 根据实验要求确定需要循环的次数。
2. 初始化循环计数器,将循环计数器置为0。
3. 判断循环计数器是否达到循环次数的要求,如果达到则跳出
循环,否则继续执行循环体。
4. 执行循环体的操作。
5. 循环计数器自增1。
6. 返回到第3步继续判断循环条件。
子程序程序设计
1. 根据实验要求确定需要实现的功能。
2. 将要实现的功能封装在一个子程序中,确定输入参数和输出结果。
3. 在主程序中调用子程序完成指定的功能。
4. 如果需要,可以在子程序中调用其他子程序实现更复杂的功能。
实验
本次实验通过编写循环和子程序的程序设计,加深了对汇编语言中循环和子程序的理解。
循环程序设计能够实现重复执行指定次数的操作,提高了程序的效率;子程序程序设计能够实现模块化和可重用性,提高了程序的可读性和可维护性。
通过实践,进一步掌握了汇编语言的程序设计技巧,加深了对汇编语言的理解和应用能力。
参考资料
汇编语言程序设计教程
汇编语言程序设计实验指导书。
汇编实验二--顺序程序设计

福建农林大学金山学院实验报告系:信息与机电工程专业:电子信息技术年级: 10姓名:学号: 1002010 实验课程:汇编语言实验室号:____67___ 实验设备号: E 实验时间:指导教师签字:成绩:实验二顺序程序设计1.实验目的和要求1.学习使用DEBUG的命令;2.使用DEBUG命令在数据段中查看程序运行的结果;3.利用DEBUG运行简单的程序段。
2.实验环境实验的硬件环境是:IBM—PC机及其兼容机实验的软件环境是:操作系统:DOS 2.0以上;调试程序:;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM .EXE);连接装配程序:LINK .EXE;交叉引用程序:CREF.EXE(可有可无)。
3.实验内容及实验数据记录1)输入程序观察寄存器变化使用DEBUG,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器的内容变化。
注意用T命令执行时,CS: IP寄存器的内容MOV AX, 4E20ADD AX, 1416MOV BX, 2000ADD AX, BXMOV BX, AXADD AX, BXMOV AX, 001AMOV BX, 0026ADD AL, BLADD AH, BLADD BH, ALMOV AH, 0ADD AL, BLADD AL, 9C2)下列程序单步运行,注意AL,BX,CX寄存器的变化,并观察数据段字母的变化。
DSEG SEGMENTMSG1 DB ‘abc’DSEG ENDSCSEG SEGMENTASSUME CS: CSEG, DS: DSEGSTART: MOV AX, DSEGMOV DS, AXLEA BX, MSG1MOV CX, 3S: MOV AL, [BX]AND AL, 11011111B ;将AL中的ASCII码的第5位置0,;变成大写字母。
MOV [BX], ALINC BXLOOP SMOV AL, 0MOV AH, 4CHINT 21HCSEG ENDSEND START3)程序的跟踪执行操作在DOS下直接输入文件主名就可以执行文件了,有的程序会显示结果,可能执行后什么结果都没有,是因为程序中没有显示命令。
02实验二 ARM汇编语言程序设计

实验二 ARM汇编语言程序设计一、实验目的1.了解ARM汇编语言的基本框架,学会使用ARM的汇编语言编程2.掌握ARM汇编指令二、实验设备1. EL-ARM-830教学实验箱,PentiumII以上的PC机,仿真器电缆。
2. PC操作系统WIN98或WIN2000或WINXP, ADS1.2集成开发环境,仿真器驱动程序。
三、汇编语言简介1.ARM汇编的一些简要的书写规范ARM汇编中,所有标号必须在一行的顶格书写,其后面不要添加“:”,而所有指令均不能顶格书写。
ARM汇编对标识符的大小写敏感,书写标号及指令时字母大小写要一致。
在ARM汇编中,ARM指令、伪指令、寄存器名等可以全部大写或者全部小写,但不要大小写混合使用。
注释使用“;”号,注释的内容由“;”号起到此行结束,注释可以在一行的顶格书写。
详细的汇编语句及规范请参照ARM汇编的相关书籍、文档。
2. ARM汇编语言程序的基本结构在ARM汇编语言程序中,是以程序段为单位来组织代码。
段是相对独立的指令或数据序列,具有特定的名称。
段可以分为代码段的和数据段,代码段的内容为执行代码,数据段存放代码运行时所需的数据。
一个汇编程序至少应该有一个代码段,当程序较长时,可以分割为多个代码段和数据段,多个段在程序编译链接时最终形成一个可执行文件。
可执行映像文件通常由以下几部分构成:◆一个或多个代码段,代码段为只读属性。
◆零个或多个包含初始化数据的数据段,数据段的属性为可读写。
◆零个或多个不包含初始化数据的数据段,数据段的属性为可读写。
链接器根据系统默认或用户设定的规则,将各个段安排在存储器中的相应位置。
源程序中段之间的相邻关系与执行的映象文件中的段之间的相邻关系不一定相同。
3. 简单的小例子下面是一个代码段的小例子AREA Init,CODE,READONLYENTRYLDR R0, =0x3FF5000LDR R1, 0x0fSTR R1, [R0]LDR R0, =0x3F50008LDR R1, 0x1STR R1, [R0]……END在汇编程序中,用AREA指令定义一个段,并说明定义段的相关属性,本例中定义了一个名为Init的代码段,属性为只读。
实验二简单程序的编写及汇编连接

实验二简单程序的编写及汇编连接实验二简单程序的编写及汇编连接一、实验目的1.熟练掌握编写汇编语言源程序的基本方法和程序的基本框架。
2.学会编写顺序结构、分支结构和循环结构的汇编程序。
3.掌握程序中数据的产生与数输出的方法。
4.熟悉建立源文件,进行汇编和连接的全过程,并对程序进行调试。
二、实验要求1.预习附录2的内容2.实验前准备①分析题目,将程序中的原始数据、中间结果和最终结果的存取方式确定好。
②写出算法或画出流程图。
③写出源程序。
④对程序中的结果进行分析,并准备好上机调试的过程。
3.本实验要求在PC机上进行。
4.汇编过程中出现问题,可用DEBUG进行调试。
三、实验内容1.实验内容1①用EDIT应用程序编辑源程序(参考程序见下),建立.ASM文件;②用MASM程序汇编该文件,生成.OBJ文件;查看.LST文件的内容③用LINK程序链接,生成.EXE文件;④使用DEBUG命令将.EXE文件调进内存,执行后查看程序运行结果;⑤使用DEBUG命令,检查各段在内存当中分配情况。
参考程序:; exercize21data segmentorg 0200hbuffer dw 0, 1, -5, 10, 256, -128, -100, 45, 6, 3, dw -15,-67, 39, 4, 20, -1668, -32766, 32765, -525, dw 300count equ ($-buffer)/2max dw ?data endsstack segment stack 'stack'db 100 dup ('s')stack endscode segment para 'code'assume cs:code, ds:data, ss:stacksta proc farpush dsxor ax, axpush axmov ax, datamov ds, axlea si, buffermov cx, countdec cxmov ax, [si]chkmax: add si, 2cmp [si], axjle nextmov ax, [si]next: loop chkmaxmov max, axretsta endpcode endsend sta实验报告要求:1.小结汇编语言源程序的编译及连接过程;2.通过debug调试工具查看并记录DS在程序执行中的变化情况3.写出程序调试中出现的问题及解决方法;2.实验内容2①编辑源程序(参考程序见后),建立.ASM文件;②用MASM程序汇编产生.OBJ文件;③用LINK程序产生.EXE文件;④执行 .EXE文件,观察程序运行现象;⑤修改源程序,使输出的数字之间用空格间隔;参考程序:; display “0~9” 100 timesstac segment stack 'stack'db 100 dup ('s')stac endscod segment para 'code'assume cs:cod, ss:stacsta proc farpush dsxor ax, axpush axmov cx, 100mov bl, 0goon: push cxmov ah, 2mov dl, 0dhint 21hmov al, blinc aldaaand al, 0fhmov bl, alor al, 30hmov dl, almov ah, 2int 21hmov dx, 5l1: mov cx, 0ffffhagain: loop againdec dxjnz l1pop cxloop goonretsta endpcod endsend sta3.实验内容3:编程完成以下功能,并上机调试通过。
汇编语言程序设计实验指导书

实验一宏汇编MASM5.0运行环境一、实验目的1、熟悉的MASM5.0宏汇编程序运行环境2、掌握用MASM5.0运行汇编语言程序的步骤3、学习及掌握的debug程序的各种命令并调试汇编语言程序。
二、实验仪器计算机、masm汇编运行环境三、实验原理1、建立汇编语言的工作环境(1)编辑程序:EDIT .COM(2)汇编程序:MASM .EXE(3)连接过程:LINK.EXE(4)调试程序:DEBUG .EXE2、运行汇编语言程序的步骤(汇编语言程序的上机过程)在汇编实验步骤的word文档中(请下载参考)。
(1)用汇编程序建立源文件(*.asm)汇编程序:记事本,写字板或EDIT.EXE 。
(文本文件编辑器)扩展名为:.asm(2)用汇编程序(MASM、EXE)产生OBJ文件。
(3)用连接程序(LINK 、EXE)生成EXE文件。
(4)程序的执行直接输入文件名LINKEDIT记事本写字板MASM3、用DEBUG 运行、调试汇编语言程序(1)进入DEBUGC:\ DEBUG (前提DEBUG .COM 程序在C 盘)屏幕显示:- “-”这个符号是进入DEBUG的提示符,在该提示符下可键入任意DEBUG 命令,现在用A命令送程序。
(2)送程序并汇编-A 100169C:0100 MOV DL ,33169C:0102 MOV AH ,2169C:0104 MOV INT 21169C:0106 MOV INT 20169C:0101此程序已送完,并汇编成机器指令(3)现在用G命令一运送程序-G3看一下机器指令是什么样的用反汇编命令U(4)反汇编-U 100 :108段地址偏移地址指令169C :0100 B233 MOV DL ,33169C :0102 B402 MOV AH ,02169C :0104 CD21 INT 21169C :0106 CD20 INT 20169C :D108(5)用Q命令退出DEBUG 返回DOS-QC:\4、DEBUG 命令(1)汇编命令A格式1)A < 段寄存器名>:<位移> ;(段寄器)为段地址2)A <段地址> :<位移> ;(c s) 为段地址3)A <位移> ;4)A ;以CS:100作地址功能:键入该命令后显示的地址和位移并等待用户从键盘逐条键入汇编命令。
实验2 顺序与分支汇编语言程序设计实验

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寄存器。
汇编语言程序设计实验指导书

重庆师范大学涉外商贸学院计算机各专业实验用书汇编语言程序设计实验指导书(第一版)张开成编前言为适应教学内容由简到繁、由易到难、由浅入深的教学特点,我们编写了这本简易实验指导书,用以指导实验教学。
该指导书分两部分,第一部分指出实验的实验目的、实验内容、实验准备、实验要求、共提出十五个实验,需三十个学时完成。
第二部分为十五个实验的全部程序,仅供学生参考。
该实验指导书由数计学院计算机教研室张开成同志编写。
2010年2月第一部分提出各实验的实验内容、实验目的、实验要求和学时分配实验一:汇编语言基本操作实验(2学时)一、实验目的:明确QE、MASM、LINK三个系统软件的作用。
掌握汇编语言程序的编辑、汇编、连接过程。
二、实验内容:1、编写一个程序:用十进制输出一个按键的AS CⅡ值。
2、从键盘上读入两个一位数(必须保证按下数字键),输出它们的积。
三、实验准备:1、预习QE、MASM、LINK 三个软件的使用方法。
2、按实验要求,编写好实验源程序。
四、实验步骤:1、用QE编辑扩展名为.ASM的源文件。
2、汇编、连接生成扩展名为.EXE的可执行文件。
3、运行程序。
五、实验报告要求:1、总结用QE编辑源程序的方法。
2、说明源程序的连接、汇编过程。
3、分析运行结果。
4、按要求写出完整的实验报告(必须列出程序清单)。
实验二:分支程序设计实验(2学时)一、实验目的:1、学会简单分支和多分支程序的设计方法。
2、掌握程序的调试方法。
二、实验内容:1、从键盘读入两个一位数,输出它们的积。
若为非数字键,则显示字符“E”,退出程序。
2、从键盘接收一个按键,如为小写字母,则显示“L”,是大写字母,则显示“U”,如是数字,则显示“N”,都不是则显示“*”。
三、实验准备:1、预习分支程序设计方法。
2、按实验内容要求,编写好实验源程序。
四、实验步骤:1、用QE编辑扩展名为.ASM的源文件。
2、汇编、连接生成可执行文件.EXE。
3、运行程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编实验二顺序结构程序设计
实验目的:
(1)掌握汇编语言程序上机过程。
(2)掌握顺序结构程序调试的方法。
实验内容:
调试查表程序
内存中自TABLE开始的七个单元中连续存放着自然数0~6的立方值(立方值表),
任一个数X(0≤X≤6)在FIRST单元中,要求查表找出X的立方值,存SECOND
单元。
准备工作:
1.进入D:
2.建立一个文件夹hb, 即d:\hb
3.将MASM和LINK复制到该文件夹中
4.单击“开始”-“程序”-“附件”-“命令提示符”
5.输入“d:\”
6.输入“cd hb”
操作步骤:
1.输入源程序: EDIT d:\hb\cb.asm
在EDIT编辑环境File菜单下选择Save存盘,选择Exit退出编辑环境
2.汇编源程序
A>MASM CB↙
Microsoft (R) Macro Assembler Version 5.10
Copyright (C) Microsoft Copr 1981,1988 All rights reserved.
Object filename [CB.OBJ]:_↙
Source listing [NUL.LST]:↙
Cross-reference [NUL.CRF]:↙
51394+389950 Bytes symbol space free
0 Warning Errors
0 Severe Errors
A>
3.连接目标程序
A>LINK
Microsoft (R) Overlay Linker Version 3.64
Copyright (C) Microsoft Corp 1983-1988. All rights reserved.
Object Modules [.OBJ]:CB↙
Run File [NUL.MAP]:↙
Libraries [.LIB]: ↙
显示0个错误才能进行下一步LINK操作
4.执行程序
A>B
没有任何结果输出,原因是程序中没有安排显示输出,结果保存在内存单元中。
5.用DEBUG调试并查看运行结果
A>DEBUG CB.EXE
1先用U命令进行反汇编,看到源程序在内存中的存储
2T (单步执行一条指令。
)
AX=0BEF BX=0000 CX=0068 DX=0000 SP=0040 BP=0000 SI=0000 DI=0000 DS=0BDB ES=0BDB SS=0BEB CS=0BF0 IP=0003 NV UP EI PL NZ NA PO NC 0BF0:0003 8ED8 MOV DS,AX
3 T (单步执行一条指令。
)
AX=0BEF BX=0000 CX=0068 DX=0000 SP=0040 BP=0000 SI=0000 DI=0000 DS=0BEF ES=0BDB SS=0BEB CS=0BF0 IP=0005 NV UP EI PL NZ NA PO NC 0BF0:0005 B80000 MOV BX,0000
4 D DS:0 (显示DS段,偏移地址为0000单元的内容。
)
用D命令观看数据段的内容
5 T (继续单步运行若干次。
)
............
直到程序运行到MOV AH,4CH为止
或者 G 0014,
用G命令一次执行多条指令直到运行到断点0014H (即指令MOV AH,4CH为止)6 D DS:0 (显示DS段,偏移地址为0000单元的内容。
)。