实验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汇编语言程序设计

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的使用

汇编语言源程序运行步骤和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-汇编语言上机环境及基本操作

实验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、熟悉DEBUG程序的使用方法。

3、掌握汇编语言程序的编辑、汇编、连接以及调试过程。

二、实验内容1、编写一程序,将内存中某一区域的数据传送到另一个区域中(要求用循结构,不考虑数据块重叠问题)。

2、编写一程序,将内存中某一区域的数据传送到另一区域(要求考虑数据块重叠问题)。

三、实验准备1、预习数据传送指令,熟悉分支和循环程序设计方法。

2、预习DEBUG调试程序的使用方法。

3、根据实验内容要求,编写好实验源程序。

四、实验步骤1、用QE或其它编辑软件,在计算机上编辑源程序,使其正确无误。

2、汇编、连接源程序,产生.EXE可执行文件。

3、运行程序。

(1) 进入DEBUG。

打入DEBUGT MYPROG.EXE。

MYPROG为所编程序的文件名。

(2) 先用G命令连续剧连续执行程序,程序执行完毕后,观察运行结果。

如果执行后是对的,说明程序编写是正确的,如果结果不对,说明程序有错误,则执行下一步。

(3) 检查程序。

在程序中设置若干断点,以便杳出错误所在。

(4) 采用单步命令T或执行程序,观察各寄存器和存储单元内容,以便找到错误之处。

五、实验报告要求1、列出程序清单,并给出程序流程图。

2、总结实现数据传送的几种方法,指出它们的区别。

开始3、分析实验中所遇到的一些问题,分析错误原因。

4、说明本实验中是如何使用DEBUG进行调试的。

CX、SI、DI置初值六、流程图勤开始设置增量方式CX、SI、DI置初值保存SI内容AL [SI] SI SI+源块长度[DI] AL N SI>DIYSI SI+1 恢复SI内容恢复SI内容DI DI+1CX CX-1 设置减量方式N CX=0, SI指向源块末尾DI指向目的块末尾Y结束 [DI] [SI]题一流程图 N 传完了吗, 书馆 Y结束题二流程图七、程序清单题一程序清单:STACK SEGMENT STACK ‘STACK’DB 100 DUP(0)STACK ENDSDATA SEGMENT PARA ‘DATA’SOUR DB 0、1、2、3、4、5、6、7、8、9 DEST DB 10 DUP(,)DB ‘$’DATA ENDSSEGMENT PARA‘CODE’ASSUME CS:CODEMAIN PROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV CX,10MOV SI,offset SOURMOV DI, offset DESTAGAIN: MOV AL,[SI]MOV [DI],ALINC SIIN DILOOP AGAINMOV DX,offset DESTMOV AH,09HINT 21HRETMAIN ENDPCODE ENDSEND START题二程序清单:DATA SEGMENT PARA ‘DATA’STRG DB ‘ABCDEFGHIJKLMNOP’STG1 EQU STRG+4STG2 EQU STHG+8STRSE EQU 6DATA ENDSSTACK SEGMENT PARA ‘CODE’DB 100 DUP(0) STACK ENDSCODE SEGMENT PARA ‘CODE’ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK PROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV CX,STRSEMOV SI,OFFSET STG1MOV DI,OFFSET STG2CLDPUSH SIADD SI,STRSE-1CMP SI,DIPOP SIJL MOVESTDADD SI,STRSE-1ADD DI,STRSE-1 MOVE: REP MOVSB RETMAIN ENDPCODE ENDSEND START。

汇编语言程序设计实验篇

汇编语言程序设计实验篇

汇编语言程序设计实验篇在计算机科学领域中,汇编语言是一种低级编程语言,它直接操作计算机硬件资源,具有高效性和灵活性。

本篇文章将介绍汇编语言程序设计实验的相关内容,包括实验目的、实验环境、实验步骤和实验总结。

实验目的汇编语言程序设计实验的主要目的是使学生掌握使用汇编语言编写程序的基本技能。

通过实践操作,学生将理论知识应用于实际情境中,深化对汇编语言的理解,并培养一定的编程能力。

实验环境在进行汇编语言程序设计实验之前,学生需要准备适当的实验环境。

以下是必备的硬件和软件资源:1. 计算机:一台能够运行汇编语言的计算机。

2. 汇编语言编辑器:如MASM、NASM等,用于编辑和编译汇编语言程序。

3. 调试器:如调试版本的DOSBox、CodeView等,用于调试程序,定位和解决错误。

实验步骤在进行汇编语言程序设计实验时,学生可以按照以下步骤进行操作:1. 确定实验内容:根据实验要求,选择适当的汇编语言程序设计任务,如编写一个计算两个数相加的程序。

2. 编写程序源代码:使用汇编语言编辑器,编写程序的源代码,包括程序的指令、数据段和代码段等。

3. 编译程序:使用编辑器提供的编译指令,将源代码编译成机器码,生成可执行文件。

4. 调试程序:使用调试器,对程序进行调试,定位和解决错误,确保程序能够正常运行。

5. 运行程序:运行已调试通过的程序,验证程序的正确性,并观察程序的执行结果。

6. 优化程序:对程序进行进一步优化,提高程序的执行效率和性能。

7. 总结实验结果:根据实验过程和结果,总结实验经验和教训,思考改进和拓展的可能性。

实验总结通过进行汇编语言程序设计实验,学生可以获得以下收获:1. 熟悉汇编语言:实验使学生更加熟悉汇编语言的语法和指令,增强对计算机底层运行机制的理解。

2. 培养编程能力:实验锻炼学生的编程能力和解决问题的能力,提高他们的逻辑思维和分析能力。

3. 提升实践能力:实验让学生通过实践操作,将理论知识应用于实际情境中,增强实践能力和动手能力。

汇编语言源程序的运行过程

汇编语言源程序的运行过程

汇编语言源程序的运行过程一、概述二、具体操作过程1.编辑过程在计算机“附件”的“记事本”中,用word 编辑汇编语言源程序,比用编辑程序EDLIN 要方便得多。

因为使用后者,必须熟记它的各种命令及其功能。

使用前者的操作步骤如下:第一步:编辑并建立扩展名为ams 的文件开始→程序→附件→记事本→键入汇编语言源程序(也可用Ctrl+C 及Ctrl+V 拷贝已有程序)→文件→另存为→出现“另存为”窗口→在‘文件名:’处为该文件命名,并切记:将扩展名由.txt 改为.asm →在“另存为”窗口里的“我的电脑”中找到含有MASM.EXE 、LINK.EXE 以及DEBUG.EXE 这三个工具的文件夹(如,8086experi ),并双击之→该文件夹名便出现在“保存在:”处→保存(至此,该文件夹中将出现你所编辑的扩展名为asm 的汇编语言源程序。

此时的源程序以ASCII 码形式存盘,而非机器码)→关闭记事本。

注意:上述三个工具及用户程序必须在同一文件夹中。

此后,为显示,打印或修改该程序,双击该程序的图标即可。

第二步:在DOS 下运行EDLIN ,以便查找并排除源程序中可能存在的语法错误。

window 状态→开始→运行→打开:cmd ↙→确定→出现DOS 提示符:C:\……>→指定存有你的程序的文件夹所在盘(如D 盘)为当前盘 D: ↙→D:\>cd 文件夹名↙→在DOS 管理下键入源程序编辑程序 无语法错误的汇编语言调试过程D:\文件夹名>edlin 文件名.asm ↙End of input file* E ↙按结束编辑命令E 之前,生成了一个扩展名为$$$的文件;结束编辑状态之后,该文件的扩展名由$$$变为BAK 。

特别指出:即使不用EDLIN 进行编辑,也必须进行此步。

否则,若源程序中存在语法错误,下一步进行汇编后,不予提示,也不生成机器码文件,无法进行再下一步的连接,致使程序无法运行。

实验二、汇编语言程序的汇编与调试

实验二、汇编语言程序的汇编与调试

实验二、汇编语言程序的汇编与调试一、实验目的掌握汇编语言程序的汇编与调试过程,熟悉MASM、LINK、DEBUG等程序的使用。

了解列表文件与交叉参考文件的基本内容。

二、实验原理编制好汇编语言的源程序后,若要在机器上运行,必须经过如图1- 1所示的几个步骤:1、编辑源程序图1- 1 汇编语言程序的上机过程可以使用任何一种文本编辑程序编辑汇编语言源程序,通常使用DOS提供的文本编辑程序EDIT,具体使用方法为:从Windows进入MS-DOS方式,在DOS提示符后键入:EDIT [文件名]进入EDIT后,对源程序进行全屏幕编辑。

编辑完成后选择File菜单的Save命令保存文件,选择File菜单的Exit命令退出EDIT。

对于汇编语言源程序,其文件的扩展名约定使用ASM。

2、汇编汇编程序的基本功能是把用汇编语言编写的源程序翻译成机器语言目标代码,同时生成列表文件及交叉参考文件。

汇编程序的操作步骤为:在DOS提示符后键入:MASM 源程序文件名或MASM 源程序文件名,列表文件名,交叉参考文件名其中文件名不必给出扩展名,汇编程序会按照默认情况处理或产生。

若汇编后出现警告错误或严重错误,应调用EDIT对源程序进行修改,再重新汇编,直至无错误为止。

列表文件[.LST]和交叉参考文件[.XRF]有助于程序的分析和错误的查找,根据需要可以生成这两个文件(缺省时无)。

其中列表文件是文本文件,可用EDIT打开。

交叉参考文件是二进制文件,通过执行程序CREF.EXE,将二进制交叉参考文件转换为索引列表文件[.REF],具体方法为在DOS提示符后键入:CREF 交叉参考文件名3、连接汇编以后的目标代码的地址还是可浮动的相对地址,需要经过连接才能生成可执行程序。

连接程序的功能是连接多个目标代码模块(如果有的话),确定每个程序段的地址,形成可执行程序文件[.EXE]。

连接程序的操作步骤为:在DOS提示符后键入:LINK 目标代码文件名当目标代码文件不止一个时,各个目标代码文件名之间用+(加号)连接;也可以用命令行方式运行LINK程序,其格式为:LINK 目标文件名,可执行程序文件名,内存映象文件名,库文件名4、调试程序通过汇编和连接,排除了语法错误,并不一定能正确执行,这就需要使用动态排错程序。

汇编语言程序设计实验报告

汇编语言程序设计实验报告
2.掌握汇编语言源程序的执行过程。
二、实验内容
P131作业29。
实验三子程序设计实验
一、实验目的
1.掌握汇编语言源程序子程序设计方法;
2.会使用CV软件工具。
二、实验内容
把实验二作为子程序,编写主程序来对能否构成三角形进行10判断。
实验四宏汇编程序设计实验
一、实验目的
1.掌握宏汇编程序编程技术及宏调用的方法;
2.主模块程序完成子程序的调用,及判断结果的显示,程序名为:ZHU.asm。
实验五混合程序的开发实验
一、实验目的
1.了解混合调用中的参数设置;
2.掌握混合调用的方法;
二、实验内容
P156第5题。
实验一单指令功能测试实验
一、实验目的
1.会使用DEBUG软件;
2.利用DEBUG单步执行功能测试指令的执行。
二、实验内容
判断从键盘输入的ASCII码数字,若是小于等于5,显示“C”,若是大于5显示“D”。假设输入的只可能是0~9数字。
实验二完整的汇编语言程序设计实验
一、实验目的
1.掌握完整的汇编语言源程序的设计方法;
实验五多模块程序设计实验
一、实验目的
1.掌握汇编段的属性的含义;
2.掌握利用LINK将多模块连接起来的方法;
3.掌握利用库文件将多模块连接起来的方法。
二、实验内容
假设内存单元中有三个字a、b和c,编写一个程序,它可判断它们能否构成一个三角形,若能,显示“Y”,否则,显示“N”;
具体要求:
1.三角形的判断程序为一模块子程序,程序名为:ABC.asm。入口参数:字节变量a、b、c。出口参数:字节变量d=1是三角形,d=0不是三角形。
2.了解COM文件的编程方法及特点;

实验二 汇编语言程序上机过程及调试

实验二    汇编语言程序上机过程及调试

实验报告二课程微机原理实验名称汇编语言程序上机过程以及调试第页专业电子信息班级__ __ 学号_ __ 姓名实验日期:2014 年 3 月10 日报告退发(订正、重做)一、实验目的学习汇编语言程序设计的基本步骤,即编辑(EDIT)程序、汇编(MASM)、连接(LINK)和运行,使对汇编语言程序设计有一个初步的认识。

二、实验内容1、学习使用全屏幕文本编辑软件EDIT。

用EDIT输入一段给定的源程序。

2、用MASM对已存盘的源程序进行汇编,形成目标文件(.OBJ);如有错误,再返回到EDIT进行修改。

3、用LINK对上述形成的目标文件进行连接,形成可执行文件(.EXE)4、在DOS提示符下运行该可执行文件。

[汇编语言程序的编写格式]汇编语言程序一般由几个段组成,它们分别是堆栈段,数据段,代码段。

任何一个源程序至少必须有一个代码段和一条作为源程序结束的伪指令END。

段的定义有两种格式,分述如下:1,完整的段定义格式:一个段由段头,段体,段尾组成,形式如下:段名SEGMENT[定位类型][组合类型][‘类别’]……段名ENDS其中SEGMENT后的参数一般可省略,详细说明参阅后面的有关章节。

2,简化的段定义格式(MASM5.0版本提供)每段以.开始后跟固定的段名,一般形式如下:DOSSEG.MODEL 存储类型;“存储类型”可选择为SMALL。

.STACK[大小];堆栈段,“大小”指定堆栈的字节数。

.DATA;数据段。

.CODE[名字];代码段;一般只有一个代码段,名字可缺少……例1:用完整的段定义编写一源程序。

NAME EXAM1;可以省略DATA SEGMENT;定义数据段,以下是数据段的内容STR1 DB “HELLO,WELCOME!”,13,10,‘$’STR2 DB “DO YOU LIKE COMPUTER?(Y/N)”,13 10,‘$’STR3 DB “NICE!”,13,10,‘$’STR4 DB “SORRY!”,13,10,‘$’STR5 DB “UNKNOW,ANSWER AGAIN!(Y/N)”,DB 13,10,‘$’STR6 DB “SEE YOU NEXT TIME!”,13,10,‘$’DA TA ENDS ;数据段结束CODE SEGMENT ;定义代码段ASSUME CS:CODE;DS:DATA;以下是代码段内容START:MOV AX,DA TA;给数据段寄存器赋值MOV DS,AXMOV AH,9;显示一字符串的功能号MOV DX,OFFSET STR1;显示字符串STR1的偏址INT 21H;DOS功能调用ASK :MOV DX,OFFFSET STR2;显示字符串STR2INT 21HMOV AH,1;键盘输入一字符的功能号INT 21H;键入的字符ASCⅡ码在ALNOT AL;求反TEST AL,‘Y’;是否按下‘Y’或‘y’键JE NEXT1TEST AL,‘y’JE NEXT1TEST AL,‘N’;是否按下‘N’键或‘y’键JE NEXT2TEST AL, ‘n’JE NEXT2MOV DX,OFFSET STR5;不是按上述键MOV AH,9INT 21HJMP ASK;再返回ASKNEXT1:MOV DX,OFFSET STR3;是按下‘Y’或‘y’键MOV AH,9INT 21HJMP BYENEXT2:MOV DX,OFFSET STR4;是按下‘N’或‘n’键MOV AH,9INT 21HBYE:MOV DX,OFFSET STR6INT 21HMOV DL,7;喇叭响的ASCⅡ码MOV AH,2INT 21HMOV AH,4CH;退回DOSINT 21HCODE ENDS;代码段结束END START;源程序结束注:源程序中的每一行注释语句前一定要加分号‘;’,下同。

汇编语言程序设计实验2汇编源程序编写与汇编、调试

汇编语言程序设计实验2汇编源程序编写与汇编、调试

汇编语⾔程序设计实验2汇编源程序编写与汇编、调试汇编语⾔程序设计实验2 汇编源程序编写与汇编、调试⼀、实验⽬的1. 理解并掌握汇编源程序组成与结构2. 掌握汇编语⾔源程序编写→汇编→链接→调试的⼯具和⽅法3. 理解汇编源程序中地址表⽰、段寄存器的⽤法4. 理解和掌握寄存器间接寻址⽅式[bx]5. 通过汇编指令loop的使⽤理解编程语⾔中循环的本质⼆、实验内容及结果(⼀)实验任务⼀使⽤任意⼀款⽂本编辑器,编写8086汇编源程序ex1.asm。

源代码如下:assume cs:codecode segmentmov ax, 0b810hmov ds, axmov byte ptr ds:[0], 1mov byte ptr ds:[1], 1mov byte ptr ds:[2], 2mov byte ptr ds:[3], 2mov byte ptr ds:[4], 3mov byte ptr ds:[5], 3mov byte ptr ds:[6], 4mov byte ptr ds:[7], 4mov ah, 4chint 21hcode endsend要求:使⽤8086汇编程序编写、汇编、链接、运⾏、调试⽅法,对ex1.asm进⾏汇编、链接、运⾏,使⽤debug⼯具调试可执⾏⽂件。

使⽤masm、link对ex1.asm进⾏汇编、链接,得到可执⾏⽂件ex1.exe,运⾏并观察结果。

使⽤debug⼯具对程序进⾏调试使⽤debug加载可执⾏⽂件ex1.exe后,使⽤d命令查看程序段前缀PSP所占的256个字节。

结合可执⾏⽂件中寄存器CX的值,使⽤u命令对ex1.exe进⾏精确反汇编使⽤g命令执⾏到程序退出执⾏之前(即源码⽂件中line16之前),观察结果。

1、⾸先使⽤masm对*.asm⽂件进⾏编译,⽣成包含机器代码的⽬标⽂件(*.obj)编译后没有问题(截图中能看到提⽰说:0 Warning Errors和0 Severe Errors)这时候再返回到⽂件夹中就会发现多了⼀个.obj⽂件对 *.obj ⽬标⽂件进⾏连接,得到可执⾏⽂件(.exe⽂件)。

合工大(汇编)语言程序设计实验报告

合工大(汇编)语言程序设计实验报告

.合肥工业大学计算机与信息学院实验报告课程:汇编语言程序设计专业班级:****************学号:**********姓名:*****目录实验一··3实验二··7实验三··12实验四··22实验一Debug程序的使用一.实验目的1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。

2、掌握8086/8088的寻址方式及多字节数据的处理方法。

二.实验内容1、利用DEBUG程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。

2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H 单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。

要求:本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。

三.实验过程和程序实验内容一:e ds:0200 E7 1A 3F 00e ds:0204 C4 E5 6B 00实验内容二:(1)直接寻址方式MOV AX,[0200]MOV BX,[0202]ADD AX,[0204]ADC BX,[0206]MOV [0208],AXMOV [020A],BX(2)寄存器间接寻址方式MOV SI,0200HMOV DI,0204HMOV BX,0208HMOV AX,[SI]MOV DX,[SI+2]ADD AX,[DI]ADC DX,[DI+2]MOV [BX],AXMOV [BX+2],DX四.实验结果(包括必要的截图)实验内容一:输入数据:显示数据:实验内容二:(1)直接寻址方式程序段编辑:反汇编:运行:结果在DS:0208 单元中为00AB00ABH(2)寄存器间接寻址方式程序段编辑:反汇编:运行:结果高字存放在dx中,低字存放在ax中(结果为00AB00ABh)五.实验体会通过本实验,实践debug程序中的命令,并在debug下调试运行汇编语言源程序。

实验2 建立运行汇编语言源程序

实验2  建立运行汇编语言源程序

实验2 建立运行汇编语言程序实验目的:1. 熟悉8088/8086的数据传送和算术运算指令的书写格式、功能。

2. 编写源程序,掌握汇编语言程序格式。

3. 掌握汇编、连接、运行汇编程序的全过程;使用DEBUG调试和运行汇编程序。

实验内容:1、进入Debug程序环境,用A命令写入汇编指令,使用寄存器、段寄存器、存储器和立即数等作为操作数,验证mov、add等指令的格式并得出结论。

2、有3个立即数x=1234h,y=0c3f6h,z=10c5h,在DEBUG中编写程序段,计算x+ 2z -y,结果保存在地址为10000h开始的内存单元,并用debug调试运行查看结果,观察标志位变化。

3、写一个完整的源程序(用班号+学号后两位+实验序号命名,比如110102-2.asm),用DEBUG调试运行,查看运行结果。

DATA SEGMENT ;定义数据段DATAAUGEND DD 99251SUM DD ?DATA ENDS;请补充语句定义附加段EXTRA ,将ADDEND赋值为双精度数-15962CODE SEGMENT ;定义代码段CODEASSUME CS:CODE,DS:DATA,ES:EXTRASTART: MOV AX,DATMOV DS,AX;请补充完成给ES赋值的语句;请补充进行加法运算的语句,把数据段DATA中的AUGEND和附加段EXTRA中的ADDEND相加,并把结果存放在DATA的SUM中。

MOV AX,4C00HINT 21HCODE ENDSEND START实验报告要求:1. 通过实验总结出指令格式中对操作数的要求。

2、写出使用Debug命令写入程序段并运行查看结果的过程及标志位值的变化。

3、总结汇编源程序从编写到执行的过程。

写出用DEBUG调试并运行可执行文件的过程,并查看验证执行结果。

实验二 汇编语言程序的建立与运行

实验二 汇编语言程序的建立与运行

[实验名称] 实验二汇编语言程序的建立与运行[实验目的]1、掌握与实验有关的常用DOS命令2、熟练掌握使用MASM宏汇编软件编辑、调试汇编程序的方法,为进一步学习汇编程序设计打下实践基础。

[实验内容&要求]1、EDIT编辑软件的使用:(1)打开EDIT软件,练习在EDIT中进行输入、选择、剪切、复制的操作方法。

(2)输入一个源程序(程序从教材中自选),保存退出。

2、用MASM程序产生OBJ文件3、用LINK程序产生EXE文件4、分别用以下两种方法运行EXE文件,查看运行结果。

(1)直接运行。

(2)在DEBUG中运行。

[实验报告要求]1、报告内容包括:实验目的、实验内容、思考题(实验内容:写出编辑、汇编、连接、运行各步骤所用的命令,并记录所输入的程序及运行结果,对运行结果作简要分析。

)2、思考题:(1)总结在EDIT软件中进行选择、复制、剪切的方法(2)总结汇编语言程序的上机过程附:实验中用到的常用DOS命令一、列文件目录:DIR[通配文件名] [/P]⏹实用例子:DIR 列出当前目录下所有文件及目录DIR *.ASM /P 分页列出所有以ASM为扩展名的文件DIR F*.EXE 列出所有F开头扩展名为EXE的可执行文件二、显示/改变当前目录:CD[路径\目录名]⏹实用例子:CD 显示当前目录名CD \回到根目录CD ..回到上一级目录CD YAN进入当前目录下的YAN子目录CD \YAN进入根目录下的YAN子目录三、改变当前盘:<盘符:>⏹例:C:转到C盘D:转到D盘四、运行命令/可执行文件:[ 路径\ ]文件名[参数]⏹实用例子:MASM a. asm调用当前目录下的MASM.EXE对当前目录下a.asm进行汇编D:\MASM\MASM b. asm调用D盘MASM目录下的MASM.EXE对当前目录下的b.asm文件进行汇编EDIT c. asm建立/编辑当前目录下的c.asm文件EDIT打开EDIT文本编辑器ABC 运行ABC.EXE文件DEBUG abc.exe运行DEBUG,并将ABC.EXE文件装入内存。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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·执行程序。

相关文档
最新文档