汇编语言实验报告

汇编语言程序设计实验报告学院:计算机科学与技术专业:计算机科学与技术指导教师: **班级: **学号: **姓名:**实验一集成环境及调试工具一、实验题目认识Tddebug集成操作软件二、分析设计思想,绘制实验原理图、流程图(一)、汇编语言程序的开发过程如图1.1所示,这个过程主要有编辑、编译、链接几个步骤构成。

图1.1 汇编语言程序开发过程1、源程序的编辑E: > EDIT TEST.ASM编辑过程就是将源程序输入内存,生成一个扩展名为ASM的文本文件并存入硬盘。

2、源程序的编译E:>TASM TEST.ASM编译也称为汇编,就是利用汇编器(如TASM或MASM)对源程序进行编译,生成扩展名为OBJ的目标文件。

在编译过程中,检查语法错误,若有错,则不生成目标代码文件,并给出错误信息。

根据错误信息应返回到编辑状态,修改源程序。

3、目标程序的链接E:> TLINK TEST.OBJ链接过程是利用链接程序(如TLINK或LINK)将用户目标程序和库文件链接、定位,生成扩展名为EXE的可执行文件。

链接时,如果链接文件找不到所需要的链接信息,则发出错误信息,不生成可执行文件。

4、调试可执行程序E:>TD TEST.EXE如果生成的EXE文件运行后,并没有按照设计意图运行,就需要对程序进行调试,找出错误。

再对源程序进行修改,即重复进行编辑、编译、链接、调试,直到生成完全正确的可执行文件为止。

(二)、Tddebug集成操作软件使用说明1.该软件是集编辑(Edit.exe)、编译(Tasm.exe)、连接(Link.exe)和调试(TD.exe)等多个功能于一体,可在DOS环境下运行,为用户提供了一个学习微机原理的实验平台。

2.启动Tddebug D:\wjyl> Tddebug若启动成功,进入主界面。

3.Tddebug的菜单结构主菜单子菜单菜单说明4.菜单选择(1)快捷键选择主菜单:ALT+热键(E,C,P,R,H,Q)(2)按左右键或直接使用快捷键在主菜单之间切换。

使用上下键可选择子菜单中的菜单项。

5.执行菜单项选中要执行的菜单项,键入Enter键,系统弹出对话框,输入需操作的文件名,以Enter 键结尾,取消操作按Esc键。

6.实模式调试窗口说明(1)键入Alt+R选择Rmrun主菜单的Debug子菜单弹出实模式调试窗口。

此时可能会叠加一个报告无符号表的对话框,按Esc键关闭该对话框。

(2)该窗口实际是Turbo Debugger调试器窗口,简称TD。

其窗口的划分如图1-1所示。

图1-1 Turbo Debugger调试窗口划分图(3)主菜单中包含了File、Edit、View、Run、Breakpoints、Data、Options、Windows 和Help共9个菜单项。

可使用热键选择相应的菜单。

在调试程序或操作调试器中会使用一些快捷键来实现一些功能,下面将列出常用功能的快捷键及实现功能。

(三)、实验步骤7.运行Tddebug软件,选择Edit菜单编写实验程序8.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。

9.使用Rmrun菜单中的Run运行程序,观察运行结果。

10.使用Rmrun菜单中的Debug调试程序,查看程序段、数据段、附加段装入内存后的分配情况。

单步执行数据传送指令后,观察各寄存器及数据区的内容。

过程如下:1)按F7单步执行,在代码区中有一个三角,表示正在执行的指令。

每一条指令的执行一定会使目标寄存器和状态寄存器发生变化,从相关窗口看结果。

2)检查内存数据区的内容,关键是找出用户程序的数据段和附加段:●方法1:在CPU窗口按Tab键使内存数据显示区成为活动区,按Ctrl+G键,输入:“DS或ES寄存器的值:偏移地址”,即可显示用户指定的数据区●方法2:选择菜单View| Dump,弹出内存数据显示窗口。

3) 查看执行结果:按Alt+F5,切换到用户窗口。

11.更改数据区中的数据,考察、调试程序的正确性三、程序清单及相关注释;数据传送实验,采用相对寻址方式DDATA SEGMENT ;定义源数据段MSR DB "HELLO,WORLD!$"LEN EQU $- MSRDDATA ENDSEXDA SEGMENT ;定义附加数据段MSD DB LEN DUP(?)EXDA ENDSMYSTACK SEGMENT STACK ;定义堆栈段DW 20 DUP(?)MYSTACK ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DDATA,ES:EXDASTART: MOV AX,DDATAMOV DS,AX ;装载数据段寄存器MOV AX,EXDAMOV ES,AX ;装载附加数据段寄存器MOV SI,OFFSET MSRMOV DI,OFFSET MSDMOV CX,LENMOV BX,0NEXT: MOV AL,MSR[BX] ;开始传输数据MOV ES:MSD[BX],ALINC BXLOOP NEXTPUSH ESPOP DS ;将附加段寄存器指向的段值赋给数据段寄存器MOV DX,OFFSET MSDMOV AH,9INT 21H ;显示字符串MOV AX,4C00HINT 21H ;返回DOS状态CODE ENDSEND START四、分析实验结果五、心得体会第一次接触实际的汇编语言程序环境,熟悉了相应的操作,课本上的知识也得以应用,但是好像课程与实验有些脱节,所以需要更多的自学。

实验二 I/O程序设计一、实验题目1.【示例】:将指定数据区中一个字节的数据以十六进制数形式显示在屏幕上。

2.编程由键盘输入任意一个字符,将该字符的ASCII码值显示在屏幕上。

设计思路:在第一题MOV SI,OFFSET SD之后增加如下代码段MOV A H, 01H ;键盘输入并回显INT 21HMOV DS:[SI],AL ;将AL中键入的ASCII码存入数据段MOV AH, 02H ;输出回车换行符MOV DL, 0AHINT 21H二、分析设计思想,绘制实验原理图、流程图设计思路:首先将该数以十六进制数形式分解,然后将每一位分别转换为ASCII码送屏幕显示。

其中0H~9H之间的数加30H,即可得0H~9H的ASCII码,而AH~FH的ASCII码,则需再加7H,参见表5-1。

参考程序流程如图2-1所示。

图2-1 一个字节数以十六进制数形式显示处理流三、程序清单及相关注释;1.显示a的HEXDATA SEGMENT USE16MES DB 'Show a as hex:',0AH,0DH,'$'SD DB 'a'DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MES ;显示提示信息MOV AH,09HINT 21HMOV SI,OFFSET SDMOV AL,DS:[SI]AND AL,0F0H ;取高4位SHR AL,4CMP AL,0AH ;是否是A以上的数JB C2ADD AL,07HC2: ADD AL,30HMOV DL,AL ;显示字符MOV AH,02HINT 21HMOV AL,DS:[SI]AND AL,0FH ;取低4位CMP AL,0AHJB C3ADD AL,07HC3: ADD AL,30HMOV DL,AL ;显示字符MOV AH,02HINT 21HMOV AX,4C00H ;返回DOSINT 21HCODE ENDSEND STARTSTART;2.显示输入字符的HEXDATA SEGMENT USE16MSG DB 'Input a char: $'MES DB 0AH,0DH,'Show a as hex:',0AH,0DH,'$' SD DB 'a'DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MSG ;显示提示信息 MOV AH,09HINT 21HMOV AH,01HINT 21HMOV SI,OFFSET MESMOV [SI+5],ALMOV [SD],ALMOV DX,OFFSET MES ;显示提示信息 MOV AH,09HINT 21HMOV SI,OFFSET SDMOV AL,DS:[SI]AND AL,0F0H ;取高4位SHR AL,4CMP AL,0AH ;是否是A以上的数JB C2ADD AL,07HC2: ADD AL,30HMOV DL,AL ;显示字符MOV AH,02HINT 21HMOV AL,DS:[SI]AND AL,0FH ;取低4位CMP AL,0AHJB C3ADD AL,07HC3: ADD AL,30HMOV DL,AL ;显示字符MOV AH,02HINT 21HMOV AX,4C00H ;返回DOSINT 21HCODE ENDSEND STARTSTART四、分析实验结果1、【示例】:2、输入字符“,”的结果是:五、 心得体会在第一次实验的基础上,对汇编语言编写程序有了一定的认识和基础,在完成第一道实验题之后,第二题通过自己查阅书籍以及老师的耐性指导,终于完成了,颇有小成就感。

实验三 代码转换程序设计一、 实验题目2.编写程序将内存中一个字的数转换为十进制数的数字串显示。

二、 分析设计思想,绘制实验原理图、流程图设计思想:五位十进制数可表示为01122334*********D D D D D N D +⨯+⨯+⨯+⨯= 因此,将十六位二进制数转换为5位ASCII 码表示的十进制数数字串,即采用除10取余方法,分别求40~D D ,并将它们转换为ASCII 码。

以字符串方式显示在屏幕上三、 程序清单及相关注释DDATA S EGMENTMES DB '十进制: $'BUF DW 1234DB 5 dup (0)DDATA E NDSCODE SEGMENTASSUME CS:CODE,DS:DDATASTART:MOV AX,DDATAMOV DS,AXMOV SI,OFFSET BUFMOV AX,DS:[SI]MOV BL,0AH ;送被除数ADD SI,7 ;SI指向存储位置末尾MOV CX,5A: DEC SI ;SI=SI-1DIV BL ;被除数在AX中,除数在BL中,结果的商在AL中,余数在AH中ADD AH,30HMOV DS:[SI],AHMOV AH,0 ;清零余数,是AX参与下次运算CMP AL,0LOOPNZ AMOV DX,OFFSET MES ;显示提示信息MOV AH,09HINT 21HMOV CX,5MOV SI,OFFSET BUFADD SI,2B: MOV DL,DS:[SI] ; 显示十进制字符串MOV AH,02HINT 21HINC SILOOP BMOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START四、分析实验结果1. 内存中一个字的数转换为十进制数的数字串五、心得体会这一次的实验,运用了更多的指令算法,课程脱节的问题也更明显地暴露出来,没有抓住核心的我走了不少弯路,但是只要用心,又有老师指导,还是能够出色地完成本次实验,并且先于理论课程学到了更新的知识。

合集下载

汇编语言实验报告

汇编语言实验报告

实验一汇编程序的汇编及运行1.实验目的和要求1、熟悉汇编程序的汇编、连接、执行进程2、生成LST文件,查看LST文件3、生成OBJ文件,修改语法错误4、生成EXE文件5、执行2.实验环境IBM—PC机及其兼容机实验的软件环境是:操作系统:DOS 2.0以上;调试程序:;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM .EXE);连接装配程序:LINK .EXE;交叉引用程序:CREF.EXE(可有可无)。

3.实验内容及实验数据记录一、将数据段输入,取名1.txt,保留在MASM文件夹下。

生成LST文件,(没必要连接、运行)用EDIT查看1.LST文件。

试回答:DA1,DA2的偏移量别离是多少?COUNT的值为多少?DATA SEGMENTORG 20HNUM1=8NUM2=NUM1+10HDA1 DB ‘IBM PC’DA2 DB 0AH, 0DHCOUNT EQU $-DA1DATA ENDSEND2、输入有错误的文件,修改错误语句。

(MASM没有显现错误即可。

没必要连接、运行。

)DATA SEGMENTVAR1 DB 0, 25, ODH, 300VAR2 DB 12H, A4H, 6BHVAR3 DB ’ABCDEF’VAR4 DW 1234H, 5678HVAR5 DW 10H DUP(?)DATA ENDSCODE SEGMENTASSUME CS: CODE, DE: DATA BEING MOV AX, DATAMOV DS, AXLEA SI, VAR5MOV BX, OFFSET VAR2MOV [SI], 0ABHMOV AX, VAR1+2MOV [BX], [SI]MOV VAR5+4, VAR4MOV AH, 4CHINT 21HCODE ENDSEND START3、输入正确的程序,汇编、连接、运行STACKS SEGMENT STACKDW 128 DUP(?)STACKS ENDSDATAS SEGMENTSTRING DB ‘WELCOME!’, 13, 10, ‘$’DATAS ENDSCODES SEGMENTASSUME CS: CODES, DS: DATASSTART:MOV AX, DATASMOV DS, AXLEA DX, STRINGMOV AH, 9INT 21HMOV AH, 4CHINT 21HCODES ENDSEND START4.算法描述及实验步骤(1)编写源程序。

《汇编语言》实验报告

《汇编语言》实验报告

《汇编语言》实验报告实验名称:汇编语言实验报告实验目的:通过实验了解汇编语言的基本概念、语法结构和程序设计方法,掌握汇编语言的编写方法。

实验时间:2024年1月1日实验地点:实验室一、实验背景汇编语言是计算机硬件和软件之间的桥梁,通过汇编语言可以直接操作计算机的底层硬件。

汇编语言是一种低级语言,使用汇编语言可以实现对计算机内存、寄存器等硬件资源的直接操作,从而实现程序的功能。

本实验通过编写汇编语言程序,加深对汇编语言的理解。

二、实验过程1. 确定实验环境:使用DOSBox模拟DOS环境进行汇编程序编写和调试。

2. 编写第一个汇编程序:编写一个简单的汇编程序,将字符串“Hello, World!”输出到屏幕上。

3.程序分析:a.定义要输出的字符串,将字符串存储在数据段中。

b.设置段寄存器,将数据段地址加载到DS寄存器中。

c.设置显示模式和光标位置。

d.将字符串逐个字符输出到屏幕上。

e.关闭显示模式。

4. 编译运行:使用汇编语言的编译器将汇编程序转换成机器码,并在DOSBox中运行程序。

5.调试程序:根据程序运行结果和分析,调试程序中存在的错误,并进行改正。

三、实验结果与分析经过多次编写和调试,我们成功实现了将字符串“Hello, World!”输出到屏幕上的功能。

通过程序分析和调试过程,加深了对汇编语言的理解和掌握。

四、实验总结通过本次实验,我们深入了解了汇编语言的基本概念、语法结构和程序设计方法。

通过实际编写汇编语言程序,对汇编语言的编写方法有了更加深入的认识。

同时,通过调试程序的过程,我们也提高了自身的问题解决能力和分析能力。

在今后的学习和工作中,我们将继续学习和深入研究汇编语言,提高自己的编程能力和创新思维能力。

总体而言,本次实验给我们带来了很大的收获,我们以后将更加努力地学习汇编语言,提高自己的编程水平,为以后的学习和工作做好充分的准备。

计算机汇编语言实验报告

计算机汇编语言实验报告

计算机汇编语言实验报告一、实验目的本实验旨在通过编写计算机汇编语言程序,加强对计算机组成原理和汇编语言的理解,同时熟悉实际编写和调试过程。

二、实验内容1.用汇编语言编写一个简单的计算器程序,实现加法和减法操作。

2.编译并运行程序,测试其功能的正确性。

3.运用调试工具进行程序的调试,检查代码的运行流程。

三、实验步骤1.确定程序功能和设计思路:本次实验的目标是编写一个计算器程序,能够对两个数进行加法和减法操作。

我们可以通过定义一些操作码来表示不同的操作,再通过输入不同的操作码来执行相应的操作。

2.编写汇编语言程序:首先,需要定义一些变量和常量来存储输入的数和操作码。

然后,使用汇编语言的运算指令和控制指令来实现加法和减法操作,并将结果存储到指定的变量中。

最后,使用输出指令来显示结果。

3.编译并运行程序:将汇编语言程序编译为机器码,并通过计算机的指令集执行程序。

4.调试程序:利用调试工具,逐步执行程序,检查代码的运行流程和结果的正确性。

如有错误,进行适当的修改和调试。

5.测试功能和性能:使用不同的数和操作码进行测试,验证程序的功能和正确性。

四、实验结果经过编写、编译和调试,我们成功实现了一个简单的计算器程序。

程序能够根据输入的操作码,对两个数进行加法和减法操作,并将结果显示出来。

经过多次测试,程序的功能、正确性和性能都符合预期要求。

五、实验感想通过本次实验,我们对计算机组成原理和汇编语言有了更深入的理解。

在编写程序的过程中,我们发现汇编语言相比高级语言更加底层,需要考虑更多的细节和机器指令的使用。

同时,我们也意识到了调试的重要性,调试工具能够帮助我们分析和修正代码的错误,提高程序的质量。

六、实验总结通过本次实验,我们对计算机汇编语言的应用有了更深入的了解。

我们掌握了汇编语言程序的基本结构和语法规则,学会了使用汇编语言指令进行计算和控制。

同时,我们也提升了调试和测试的能力,加深了对计算机组成原理和汇编语言的理解。

汇编语言实验报告_6

汇编语言实验报告_6

青岛理工大学课程实验报告
课程名称汇编语言程序设计班级实验日期
2013.11.3
姓名学号实验成绩
实验
名称
子程序
实验目的及要求1.掌握子程序设计相关指令和伪指令的使用方法
2.掌握子程序设计方法, 特别是参数传递方法
3.掌握主程序和子程序之间的调用关系和调用方法
4.熟悉循环和子程序结合应用解答问题的思路
实验环境1.命令行方式
2.MASM.EXE LINK.EXE DEBUG.EXE
实验内容1.设DATA1开始的内存单元中, 存放着一串带符号字数据, 要求采用冒泡排序算法(Bubble Sort)按照从小到大的顺序排序并将排好序的数据存在DATA1开始的单元。

然后在显示器输出排好序的数据, 中间用’,’隔开。

2.输出数据使用子程序方式。

算法描述及实验步骤步骤:
(1)设置数据段地址
(2)设置堆栈段地址
(3)设置堆栈指针
(4)调用9号功能, 输出一个提示性字符串。

(5)循环进入子程序, 输出原始数据。

(6)在子程序内循环输出每一位的十进制数字。

(7)主程序进行内外循环, 进行冒泡排序。

(8)再一次调用子程序输出排序后的结果。

调试过程及实验结果调试过程:
(2)(1)在输出时, 调用DOS 9号功能, 并不是只要语句MOV AH,09H
(3)它是存在入口条件的, 入口条件:DS:DX=输出字符缓冲区首地址。

所以前面必须加上MOV DX,OFFSET NOTE1。

(4)汇编语言是不会再输出汉字的。

(5)子程序结束时一定要有RET
(6)冒泡排序也遇到一些困难。

调试结果:。

汇编语言实验报告

汇编语言实验报告

汇编语言实验报告
1. 实验简介
本次实验是针对汇编语言的学习和实践,在实验中,我们将学习如何使用汇编语言编写程序、调试程序,并通过一系列实例来练习和巩固所学知识。

2. 实验目的
(这一部分可以根据实际情况来写,列举实验的具体目的和要求)
3. 实验环境及工具
(介绍实验所使用的软件环境和工具,如:编译器、调试器)
4. 实验步骤
(根据实验内容具体描述实验步骤,可以分为多个小节)
4.1 准备工作
在开始实验之前,需要进行一些准备工作,包括安装编译器、创建工作环境等。

4.2 实验一:简单的汇编程序
本实验通过编写一个简单的汇编程序来熟悉汇编语言的基本语法和指令集,包括数据传送、算术运算、逻辑运算等。

4.3 实验二:汇编程序的调试
在实验二中,我们将学习如何使用调试器对汇编程序进行调试,包括设置断点、查看变量值、单步执行等操作。

4.4 实验三:汇编程序的优化
本实验将通过优化代码来提高程序的执行效率,包括减少指令的使用、优化循环结构等。

5. 实验结果与分析
(对实验的结果进行总结和分析,可以包括程序的输出结果、性能分析等)
6. 实验总结
(针对本次实验的收获和心得体会进行总结,可以包括对汇编语言的理解、解决问题的思路等)
7. 实验感想
(对本次实验的感想和建议,如实验过程中遇到的困难、改进的方向等)
8. 参考文献
(列出本报告中所引用的参考文献)
注:该文章只是按照题目提示给出了一个大致的框架和构思,实际根据具体的实验内容和要求来编写每个小节的详细内容。

希望对你有所帮助!。

汇编实验报告(适合初学者)

汇编实验报告(适合初学者)

汇编实验报告(适合初学者)汇编语言程序设计一、实验目的与要求1.熟悉汇编语言运行、调试环境及方法。

2.掌握简单汇编语言程序的设计方法。

3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。

二、实验内容根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。

1.若X、Y、R、W是存放8位带符号数字节单元的地址,Z是16位字单元的地址。

试编写汇编程序,完成Z<-((W-X)/5-Y)某(R+2)①.程序算法流程图。

开始初始化AL=(W-X)AL=(W-X)/5CL=(W-X)/5-YAL=(R+2)Z=((W-X)/5-Y)某(R+2)结束②.源程序清单。

DATASEGMENTXDB1H;数据定义YDB0HRDB3HWDB6HZDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;段寄存器定义MOVAL,WSUBAL,X;求(W-X)CBW;字节转换为字MOVCL,5IDIVCL;(W-X)/5MOVCL,ALMOVAL,Y;(W-X)/5-YSUBCL,ALMOVAL,RADDAL,2;(R+2)IMULCL;((W-X)/5-Y)某(R+2)MOV[Z],AXADDAL,30H;输出结果MOVDL,AL;MOVAH,2INT21HMOVAH,4CHINT21HCODEENDSENDSTART③.程序运行结果。

④.调试过程中遇到的问题和解决的方法。

还未能实现动态的输入数据,对指令的不熟悉,以至于在程序中经常性出错,得掌握固定的程序功能。

2.试编写一个程序,测试数是否是奇数。

如该数是奇数,则把DL的第0位置1,否则将该位置0。

①.程序算法流程图。

开始AL=XAL右移一位得CF否CF==1是DL与000000001B相或DL与11111110B相与结束②.源程序清单。

DATASEGMENTXDB9H;数据定义DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;段寄存器定义MOVAL,XSHR AL,1;利用右移一位得到cf值,JB判断 JB NEXT;为1则为奇数ANDDL,11111110B;偶数DL第一个数置为0JMPEXITNEXT:ORDL,000000001B;奇数DL第一个数置为1EXIT:MOVAH,4CHINT21HCODEENDSENDSTART③.程序运行结果。

汇编语言实验报告

H a r b i n I n s t i t u t e o f T e c h n o l o g y a t W e i h a i汇编语言实验报告实验一第一部分:dubug用法一、问题描述上机前预习debug常用命令的用法,复习汇编语言基本指令,上机时进行debug命令练习。

二、问题分析使用dubug调试汇编程序,MS-DOS环境,使用WINNT文件夹下system32子文件夹的DEBUG.EXE文件。

三、设计思想1.在DOS的提示符下,可如下键入Debug启动调试程序:DEBUG [路径\文件名] [参数1] [参数2]2.Debug后可以不带文件名,仅运行Debug程序;需要时,再用N 和L命令调入被调试程序。

命令中可以带有被调试程序的文件名,则运行Debug的同时,还将指定的程序调入主存;参数1/2是被调试程序所需要的参数。

3.在Debug程序调入后,根据有无被调试程序及其类型相应设置寄存器组的内容,发出Debug的提示符“-”,此时就可用Debug命令来调试程序。

4.运行Debug程序时,如果不带被调试程序,则所有段寄存器值相等,都指向当前可用的主存段;除SP之外的通用寄存器都设置为0,而SP指示当前堆栈顶在这个段的尾部;IP=0100h;状态标志都是清0状态。

5.运行Debug程序时,如果带入的被调试程序扩展名不是.EXE,则BX.CX包含被调试文件大小的字节数(BX为高16位),其他同不带被调试程序的情况。

6.运行Debug程序时,如果带入的被调试程序扩展名是.EXE,则需要重新定位。

此时,CS : IP和SS : SP根据被调试程序确定,分别指向代码段和堆栈段。

DS=ES指向当前可用的主存段,BX.CX包含被调试文件大小的字节数(BX为高16位),其他通用寄存器为0,状态标志都是清0状态。

7.运行Debug程序时,如果带入的被调试程序扩展名不是.EXE,则BX.CX包含被调试文件大小的字节数(BX为高16位),其他同不带被调试程序的情况。

汇编实验报告

汇编实验报告一、实验目的本次汇编实验的主要目的是深入了解汇编语言的基本语法和编程结构,掌握汇编程序的编写、调试和运行过程,提高对计算机底层硬件的理解和操作能力。

二、实验环境1、操作系统:Windows 102、编程工具:MASM(Microsoft Macro Assembler)三、实验内容1、数据传送与运算编写程序实现不同寄存器之间的数据传送。

进行简单的算术运算,如加法、减法、乘法和除法,并将结果存储在指定的寄存器或内存单元中。

2、逻辑运算与移位操作进行逻辑运算,包括与、或、非和异或操作。

实现移位操作,如左移和右移,并观察数据的变化。

3、分支与循环结构使用条件跳转指令实现分支结构,根据不同的条件执行不同的代码段。

运用循环指令实现循环操作,如计数循环和条件循环。

4、子程序调用编写子程序来完成特定的功能,如计算阶乘、查找最大值等。

在主程序中调用子程序,并传递参数和获取返回值。

四、实验步骤1、数据传送与运算打开 MASM 编程工具,新建一个汇编源文件。

使用 MOV 指令将数据从一个寄存器传送到另一个寄存器,例如:MOV AX, BX 。

进行加法运算,使用 ADD 指令,如:ADD AX, CX 。

进行减法运算,使用 SUB 指令,如:SUB DX, BX 。

乘法运算使用 MUL 指令,除法运算使用 DIV 指令,并将结果存储在合适的位置。

2、逻辑运算与移位操作在源文件中使用 AND 、OR 、NOT 和 XOR 指令进行逻辑运算,例如:AND AX, BX 。

对于移位操作,使用 SHL (左移)和 SHR (右移)指令,如:SHL AX, 2 表示将 AX 的值左移 2 位。

3、分支与循环结构使用 CMP 指令比较两个值,然后根据比较结果使用 JZ (等于零跳转)、JL (小于跳转)、JG (大于跳转)等条件跳转指令实现分支结构。

对于循环结构,使用 LOOP 指令实现计数循环,例如:MOV CX, 10 ;LABEL: ;LOOP LABEL 。

(完整版)汇编语言实验报告5574277

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

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

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

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

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

三.实验过程和程序1.e ds:0200 78 56 34 12e ds:0204 98 BA DC FE2.直接寻址:mov ax,[0200]mov bx,[0202]add ax,[0204]adc bx,[0206]mov [0208 ],axmov [020a],bx间接寻址:mov si,[0200]mov di,[0204]mov bx,[0208]mov ax,[si]mov dx,[si+2]add ax,[di]adc dx,[di+2]mov [bx],axmov [bx+2],dx附加题1e ds:0000 1c 02e ds:0002 01 00e ds:0004 FF FFe ds:0006 38 04e ds:0008 00 00Microsoft Windows [???? 6.1.7600]???????? (c) 2009 Microsoft Corporation???????????????? C:\Users\Administrator>debug-e ds:0000 1c 02-e ds:0002 01 00-e ds:0004 FF FF-e ds:0006 38 04-e ds:0008 00 00-a13B3:0100 mov ax,[0000]13B3:0103 mov bx,[0002]13B3:0107 imul bx13B3:0109 mov cx,ax13B3:010B mov bx,dx13B3:010D mov ax,[0004]13B3:0110 cwd13B3:0111 add cx,ax13B3:0113 adc bx,dx13B3:0115 sub cx,21c13B3:0119 sbb bx,013B3:011C mov ax,[0006]13B3:011F cwd13B3:0120 sub ax,cx13B3:0122 sbb dx,bx13B3:0124 mov bx,[0000]13B3:0128 idiv bx13B3:012A mov [0008],ax13B3:012D-g =0100 012dAX=0002 BX=021C CX=FFFF DX=0001 SP=FFEE BP=0000 SI=0000 DI=0000DS=13B3 ES=13B3 SS=13B3 CS=13B3 IP=012D NV UP EI PLZR AC PE CY13B3:012D 0000ADD [BX+SI],AL DS:021C=00-四.实验结果1.利用DEBUG程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。

汇编语言编程实验报告

一、实验目的与要求1.掌握汇编程序由编辑、编译、连接到调试的全过程;2.通过汇编调试工具加深对机器指令执行的过程掌握。

二、实验逻辑原理图与分析(汇编—流程图)2.1 画实验逻辑原理图2.2 逻辑原理图分析(所应用单板机内部资源及外围接口芯片的核心分析)三、程序分析3.1 DEBUG命令综合应用试验1-A …………………………进入debug命令;Mov AX,0102 ADD AX,BXMov [0120],AX MOV [0124],AXMOV BX,0304MOV [0122],BXC+BREAK退出A命令。

-T 10………………………………执行程序。

此程序是讲0102和0304分别存入到0120H和0122H单元。

并且相加得最后结构存入到0124H单元中。

3.2 DEBUG命令综合应用试验2-E 200 b2 33 84 02 cd 21 cd 20-G 200 208-U 200 208此段代码是讲一段机器代码指令写入200-208,然后用G命令执行,最后用U命令反汇编。

3.3 DEBUG命令综合应用试验3-F 100 10f FF-D 100 10f-M 100 10f 200-E 201 ee ee ee-C 100 10f 200此段命令是将FF装入 100-10F单元中。

在用D命令显示,用M命令讲100-10F单元的内容复制到200-20F单元中。

再用E命令修改201,202,203,里面的内容为EE,最后用C命令比较100-10F和200-20F单元里面的内容的不同。

四、实验数据和结果分析4.1 实验结果数据4.1.1 DEBUG命令综合应用试验1实验结果数据。

-d 0124 012505 064.1.2 DEBUG命令综合应用试验2实验结果数据。

3B233 MOV DL,33B402 MOV AH 02CD21 INT 21CD20 INT 204.1.3 DEBUG命令综合应用试验3实验结果数据。

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