实验2 建立运行汇编语言源程序
编写汇编语言源程序的流程或步骤

编写汇编语言源程序的流程或步骤下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor.I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!揭秘汇编语言源程序的编写流程与步骤汇编语言,作为计算机科学的基础,是直接对应机器指令的编程语言。
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:编程完成以下功能,并上机调试通过。
实验二 汇编语言程序的运行与调试一

实验二汇编语言程序的运行与调试一.实验目的:1、掌握汇编语言源程序的书写格式。
2、掌握EDIT、MASM、LINK、DEBUG等软件的使用方法。
3、掌握上机编辑、汇编、连接及运行汇编语言程序。
二&实验环境:微型计算机一台DOS或WINDOWS操作系统,MASM开发套件。
三.实验原理:1、完整的段定义伪操作data segment ; 定义数据段…data endsextra segment ; 定义附加段…extra endsstack segment stack ; 定义堆栈段…stack endscode segment ; 定义代码段assume cs:code, ds:data, es:extrastart:mov ax, datamov ds, ax ; 段地址 段寄存器...… ; 在代码段填入指令序列mov ah,4chint 21h ; 程序终止,返回DOS code endsend start ; 汇编结束2、汇编语言源程序的汇编过程汇编语言源程序的汇编过程是是利用汇编程序(MASM)对已编辑好的源程序文件(.ASM)进行汇编,将源程序文件中的助记符指令逐条翻译成机器码指令,并完成源程序中的伪指令所指出的各种操作,最后可以建立3个文件:扩展名为.OBJ的目标文件、扩展名为.LST 的列表文件和扩展名为.CRF 的交叉索引文件。
目标文件(.OBJ)是必须建立的,列表文件(.LST)和交叉索引文件(.CRF)两个文件可有可无,可以通过汇编时的命令加以选择。
3、目标程序的连接过程汇编后产生的目标程序(OBJ文件)并不是可执行程序文件(EXE文件),还不能直接运行,它必须通过连接程序(LINK)连接成一个可执行程序(EXE 文件)后,才能运行。
连接程序给出的“无堆栈段的警告性错误”并不影响程序的运行。
4、为运行汇编语言程序至少要在磁盘上建立以下文件:(1)编辑程序,如EDIT.EXE,编辑汇编源程序(2)汇编程序,如MASM.EXE,生成目标代码文件。
汇编语言源程序运行步骤和DEBUG的使用

汇编语言源程序运行步骤和DEBUG的使用一、实验目的1.熟悉汇编语言源程序书写格式。
2.熟悉汇编语言源程序编辑、汇编、连接、执行步骤。
3.练习DEBUG常用命令的使用。
4.熟悉8086的寄存器。
5.了解程序的执行过程。
二、实验预习要求1、认真阅读预备知识中汇编语言的上机步骤的说明,熟悉汇编程序的建立、汇编、连接、执行、调试的全过程。
2.预习使用DEBUG 检查/修改寄存器内容、查询存储器内容的命令。
3.预习使用DEBUG单步、断点及连续执行程序的命令。
三、实验内容1.编辑以下程序,汇编连接后运行,将输出'HOW ARE YOU?’。
本习题主要目的:熟悉汇编语言源程序的书写格式;熟悉汇编语言源程序的编辑、汇编、连接、运行。
DA TA SEGMENTBUF DB 'HOW ARE YOU?$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DA TAMOV DS,AXMOV DX,OFFSET BUFMOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START2.DEBUG 调试以下程序,查看DATA段中定义的数据在内存中的存放方式,并单步执行查看每一语句执行后相关寄存器的内容,并解释为何取该值:DA TA SEGMENT ;(1)DB 34H,12H ;(2)B DW 1234H ;(3)C DD 0 ;(4)D DB -1,15/3 ;(5)E DB '012' ;(6)F DW 'AB','C' ;(7)G DW ? ;(8)H DB 5 DUP(0) ;(9)I DW $-OFFSET H ;(10)DA TA ENDS ;(11)CODE SEGMENT ;(12)ASSUME CS:CODE,DS:DA TA ;(13)START: MOV AX,CODE ;(14)MOV DS,AX ;(15)MOV BX,SEG A ;(16)MOV CX,OFFSET B ;(17)MOV DX,TYPE C ;(18)MOV AH,4CH ;(19)INT 21H ;(20)CODE ENDS ;(21)END START ;(22)3.下面是第1题采用将主程序定义为远程的程序返回DOS的结束方式,将其编辑、连接、运行,熟悉汇编源程序不同的结束方式。
实验2-汇编语言上机环境及基本操作

实验二汇编语言上机环境及基本操作一、实验目的及要求1 •掌握汇编语言源程序的书写格式和要求2 •掌握在计算机上建立、汇编、连接、调试及运行程序的方法。
3. 学会使用记事本、MASMLINK、DEBU等软件工具。
4 •掌握将数据和代码都放在代码段的程序设计方法。
5. 掌握将数据和代码放不同段的程序设计方法。
6. 掌握用LOOP旨令构建循环程序二、实验内容1.练习:计算机上建立、汇编、连接、调试及运行程序的方法编写程序,计算2A121)在D盘建立一文件夹,命名(例如101),将和复制到此文件夹;在此文件夹中新建文本文件,文件名改为汇编源程序名,例如:用记事本打开,输入源程序并保存。
源程序:assume cs:codecode segme ntmov ax,2mov cx,11s: add ax,axloop smov ax,4c00hint 21hcode endsend2) 汇编源程序点开始菜单,点运行,输入CMD按回车,进入命令提示符窗口;输入D:并回车,打开D盘,再输入CD 101并回车,进入101文件夹;输入MASM 2e12并回车,一路按回车,进行汇编汇编过程的错误分警告错误(Warning Errors )和严重错误(Severe Errors) 两种。
其中警告错误是指汇编程序认为的一般性错误;严重错误是指汇编程序认为无法进行正确汇编的错误,并给出错误的个数、错误的性质。
这时,就要对错误进行分析,找出原因和问题,然后再调用屏幕编辑程序加以修改,修改以后再重新汇编,一直到汇编无错误为止。
汇编通过后,会生成目标文件3) 连接目标程序、输入LINK 2e12并回车,一路按回车连接成功后,会生成可执行文件4) 跟踪并调试可执行程序输入DEBUGS按回车,进入DEBU调试程序单步运行程序,跟踪程序,每执行一条指令,检查相关寄存器或存储器的数据,看看程序是否按我们的意愿运行,若有出入,修改源程序,重新汇编、连接、运行调试,直到成功编写程序计算100X 300,用循环结构实现完成否2 •将数据和代码都放在代码段的程序设计方法程序功能:将8个字数据累加求和,存入AX便于大家检查验证,将8个字设为1, 2,3, 4, 5, 6,7, 8assume cs:codesgcodesg segme ntdw 1,2,3,4,5,6,7,8start : mov bx,0mov ax,0v1.0可编辑可修改mov cx,8s: add ax,cs:[bx]add bx,2loop smov ax,4c00hint 21hcodesg endsend start调试程序,结果是否正确若将程序中的标号start去掉,结果如何DS吗add ax,cs:[bx]语句中段前缀为什么用CS能去掉吗能改为3•将数据和代码都放在不同的段,实现题2的功能assume cs:codesg,ds:datasgdatasg segme ntarray dw 1,2,3,4,5,6,7,8datasg endscodesg segme ntstart :mov ax,datasgmov ds,axmov bx,offset arraymov ax,0mov cx,8s: add ax,ds:[bx]add bx,2loop s mov ax,4c00h int 21hcodesg endsend start调试程序,结果如何比较3和2的源程序,多段程序设计与单一段程序设计4. 对题3的程序稍做修改,求出8个数中的最小数和最大数分别存入MIN和MAX 单元(若能力有限,只求其中之一)提示:用比较指令(P62)结合条件转移指令(P89),产生不同的程序分支要求简要描述解题思路,源程序要加上必要的注释。
汇编语言程序设计的实验环境及实验步骤

汇编语言程序设计的实验环境及实验步骤1、汇编语言源程序编写好以后,必须经过下列几个步骤才能在机器上运行:(1) 编辑源程序(生成.ASM文件)(2) 汇编源程序(.ASM → .OBJ)(3) 连接目标程序(.OBJ → .EXE )(4) 调试可执行程序(使用调试程序Debug调试生成的.EXE文件)(5) 运行程序输出结果。
2、Windows环境下的汇编语言集成编程环境的使用实验一 DOS环境下的汇编语言编程环境使用(基础与验证型)实验要求和目的1、掌握汇编语言程序设计的基本方法和技能;2、熟练掌握使用全屏幕编辑程序EDIT编辑汇编语言源程序;3、熟练掌握宏汇编程序MASM的使用;4、熟练掌握连接程序LINK的使用。
实验涉及的主要知识单元1、编辑源程序例如,编写程序,可以在DOS模式下用编辑程序edit.exe建立汇编语言源程序文件Hello.asm,注意文件名的扩展名必须是.asm。
也可以在Windows 2000或者在Windows XP环境下鼠标单击“开始”→“运行”,在“运行”中输入“cmd”进入DOS模式,运行edit软件,例如:C:> edit hello.asm2、汇编语言源程序的汇编过程汇编程序调入后,首先显示版本号,然后出现三个提示行。
第一个提示行为:Object filename [HELLO.OBJ]:询问目标程序文件名,方括号内为机器规定的默认的文件名,通常直接按回车键,表示采用默认的文件名(如上所示)。
第二个提示行为:Source listing [NUL.LST]:询问是否建立列表文件。
若不建立,直接回车;若要建立,可以输入文件名hello再回车。
列表文件中同时列出源程序和机器语言程序清单,并给出符号表,有利于程序调试。
第三个提示行为:Cross-reference [NUL.CRF]:询问是否要建立交叉索引文件。
若不建立,则直接回车;若要建立,可以输入文件名。
汇编语言程序设计实验指导书

实验一宏汇编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作地址功能:键入该命令后显示的地址和位移并等待用户从键盘逐条键入汇编命令。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2建立运行汇编语言程序
实验目的:
1.熟悉8088/8086的数据传送和算术运算指令的书写格式、功能。
2.编写源程序,掌握汇编语言程序格式。
3.掌握汇编、连接、运行汇编程序的全过程;使用DEBUG调试和运行汇编程序。
实验内容:
在硬盘E中建立自己的文件夹,以“班级姓名”命名(比如计科1111张三),实验文件以“实验次数-序号”命名,比如sy2-1.asm。
1、有3个内存单元x,,y z,其中x=1234h,y=0c3f6h,z=10c5h,请编写源程序,计算x+2z-y,结果保存在z单元中,并用debug调试运行查看结果,观察标志位变化。
2、写一个完整的源程序,用DEBUG调试运行,查看运行结果。
DATA SEGMENT;定义数据段DATA
AUGEND DD99251
SUM DD?
DATA ENDS
;请补充语句定义附加段EXTRA,将ADDEND赋值为双精度数-15962
CODE SEGMENT;定义代码段CODE
ASSUME CS:CODE,DS:DATA,ES:EXTRA
START:MOV AX,DAT
MOV DS,AX
;请补充完成给ES赋值的语句,将EXTRA赋值给ES。
;请补充进行加法运算的语句,把数据段DATA中的AUGEND和附加段EXTRA中的ADDEND相加,并把结果存放在DATA的SUM中。
MOV AX,4C00H
INT21H
CODE ENDS
END START
3、完成实验教程第一章的内容。
学习字符串处理指令(课本P75)和DOS显示字符串功能调用(课本P335),理解实验教程例题1.1的程序。
实验报告要求:
1、将程序1的调试运行查看结果的过程截图,并分析标志位值的变化情况。
答:有进位,标志位CF由NC变为CY,与分析结果一致。
源程序:
DATAS SEGMENT
X DW1234H
Y DW0c3f6H
Z DW10C5H
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,X
ADD AX,Z
ADD AX,Z
SUB AX,Y
MOV Z,AX
MOV AH,4CH
INT21H
CODES ENDS
END START
2、分析一个完整的汇编语言源程序应由哪些部分组成?
答:汇编语言源程序由语句序列构成,每条语句一般占一行;完整的汇编语言程序由段构成;一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可以随意排列;需要独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点;所有可以执行语句必须位于某一个代码段内,说明性语句可以根据需要位于任一段内;通常,程序还需要一个堆栈段。
源程序:
DATAS SEGMENT
AUGEND DD99251
SUM DD?
DATAS ENDS
EXTRA SEGMENT
ADDEND DD-15962
EXTRA ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,ES:EXTRA START:
MOV AX,DATAS
MOV DS,AX
MOV AX,EXTRA
MOV ES,AX
MOV AX,word ptr AUGEND
MOV DX,word ptr AUGEND+2
ADD AX,word ptr ADDEND
ADC DX,word ptr ADDEND+2
MOV word ptr SUM,AX
MOV word ptr SUM+2,DX
MOV AH,4CH
INT21H
CODES ENDS
END START
3、总结汇编源程序从编写到执行的过程。
写出用DEBUG调试并运行可执行文件的过程,
如何查错?如何查看执行结果?
答:
1·汇编源程序从编写到执行的过程可概括为以下三个步骤:编写→编译连接→执行。
①对源程序进行编译连接,使用汇编语言编译程序(MASM.EXE)对源程序文件中的源程序进行编译,产生目标文件——obj文件;
②再用连接程序(LINK.EXE)对目标文件进行连接,生成可在操作系统中直接运行的可执行文件,可执行文件包含两部分内容:程序(从源程序中的汇编指令翻译过来的机器码)和数据(源程序中定义的数据)相关的描述信息(比如,程序有多大,要占多少内存空间等);
③操作系统依照可执行文件中的描述信息,将可执行文件中的机器码和数据加载入内存,并进行相关的初始化(比如:设置CS:IP指向第一条要执行的指令),然后由CPU执行程序。
2·经汇编连接生成的可执行文件(.EXE文件),可以进入调试程序DEBUG中进行运行、调试,观察运行结果是否正确,操作方法如下:
①带被调试文件启动DEBUG;
②调入文件后,执行:G=0;则程序执行完成并提示Program Terminated normally,
③同时DEBUG将重新设置寄存器和变量等的初始值;
如果要观察程序运行之后的结果,应该执行:G=0,断点地址。
这里的断点地址应该指向程序结束返回DOS之前,也就是如下指令“mov ax,4c00h”和“int 21h”处。
4、分析实验教程例题1.1的程序结构。
答:
1·调用字处理程序wordstar建立sam文件
2·用汇编程序masm或sam对源文件汇编产生目标文件obj
3·用连接程序link产生执行文件exe
4·执行程序。