北方工业大学计算机专业汇编语言课程实验二报告

合集下载

汇编语言实验报告

汇编语言实验报告

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

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

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

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

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

三. 实验过程和程序基础题:1、利用DEBUG程序中的“E”命令,将两个多字节数“12345678H”和“FEDCBA98H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。

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

附加题:1. 从DS:0000H开始的5个16位带符号数分别记为x,y,z,v,w,用E命令初始化为:540,1,-1,1080,0, 试求w=(v-(x*y+z-540))/x2. 完成BX中1的个数的统计。

3. 用串操作指令将DS:0000开始20个字节初始化为:0CCH。

并将这20个字节的内容复制到其后的20个字节里。

四. 实验结果(包括必要的截图)基础题 1:基础题 2:附加题 1:附加题 2:附加题 3:五. 实验体会1. 在汇编语言中,变量的其实都是地址。

2. 在Debug中,数值都是16进制的。

3. 在读写内存中的数据时,必须指出数据类型是byte还是word。

(最新版)汇编语言实验报告

(最新版)汇编语言实验报告

汇编语言课程设计学院:专业:姓名:学号:汇编语言是计算机专业的一门重要的专业基础课,主要介绍汇编语言程序设计的基本原理和方法。

汇编语言是一门理论性和实践性较强的课程,辅助课堂教学的实验有助于帮助学生理解汇编语言的基本原理,锻炼学生的动手能力,提高学生的综合应用知识的能力。

目录1 利用DEBUG调试汇编语言程序段………………………………………2 初级程序的编写与调试实验(一).................................................................................3 初级程序的编写与调试实验(二)………………………………………...4 汇编语言程序上机过程 .......................................................................................................... 5分支程序实验……………………………………………………………6 循环程序实验……………………………………………………………..1 利用DEBUG调试汇编语言程序段一.课程目的1.熟悉DEBUG有关命令的使用方法;2.利用DEBUG掌握有关指令的功能;3.利用DEBUG运行简单的程序段。

二.课程内容1.进入和退出DEBUG程序;2.学会DEBUG中的1)D命令(显示内存数据D 段地址:偏移地址)例1:-D1002)E命令(修改指定内存)例1:-E100 41 42 43 44 48 47 46 45-D 100,L08结果:08F1:0100 41 42 43 44 48 47 46 45例2:-E 100:08F1:0100 76 42 :42是操作员键入此命令是将原100号内存内容76修改为42,用D命令可察看。

3)R命令(显示当前寄存器的内容)4)T命令(设置陷井,单步执行)5)A命令(将指令直接汇编成机器码输入到内存中。

最新北方工业大学计算机专业编译原理实验报告——语法分析器详细代码报告

最新北方工业大学计算机专业编译原理实验报告——语法分析器详细代码报告
(1)输入已知文法,生成文法矩阵,判断该文法是否是算符优先文法。
(2)用程序自动生成该文法的算符优先关系矩阵。
(3)对人工输入的句型或句子,分析该句型或句子是否合法,能否用已知文法推出。
(4)具有通用性。所开发的程序可适用于不同的文法和任意输入串,且能判断该文法是否为算符优先文法。
(5)有运行实例。对于输入的文法和符号串,所编制的语法分析程序应能正确判断此串是否为文法的句子,并要求输出分析过程。
return 1;
else
return 0;
}
int less(int t,char a)
{
if(M[ch_di(stack[t])-1][ch_di(a)-1]==-1)
return 1;
else
return 0;
}
int equal(int t,char a)
{
if(M[ch_di(stack[t])-1][ch_di(a)-1]==0)
FIL符号栈的大小与输入字符串的大小以及算术表达式字符串的大小
char stack[N],strings[N],oldstrings[N];
char a;
int top=-1,k=0,step=1,n=0,No[N],id=1;
//二维数组定义字符之间的优先关系(1表示>,-1表示<,0表示=,-2表示错误)
// # < < < < < ? < =
//----------------------------------
#include <iostream>
#include <cstdio>
#include <iomanip>

大学计算机实验二报告

大学计算机实验二报告

大学计算机实验二报告实验目的本实验旨在通过使用Markdown文本格式,编写一篇关于大学计算机实验二的报告。

通过该实验,我们将学习如何按照步骤思考并编写一篇有条理的文档。

实验步骤步骤一:准备在开始编写报告之前,我们需要做一些准备工作。

首先,我们需要确保我们已经熟悉Markdown文本格式,并且了解如何在文档中使用各种Markdown标记。

其次,我们需要收集关于大学计算机实验二的所有相关信息,包括实验目的、实验步骤、实验结果等。

步骤二:创建报告在准备工作完成后,我们可以开始创建实验报告了。

首先,我们需要使用Markdown语法创建标题,并简要介绍实验的目的。

接下来,我们可以使用Markdown的列表标记来描述实验步骤。

对于每个步骤,我们应该给出清晰明确的说明和操作指南,以便读者能够按照我们的指导完成实验。

步骤三:展示实验结果完成实验后,我们需要将实验结果展示给读者。

在Markdown中,我们可以使用表格、代码块和文本格式化等功能来展示实验结果。

我们可以使用表格来呈现实验数据,使用代码块来展示编写的代码,使用文本格式化功能来强调重要的结果和观察。

步骤四:总结与讨论在展示实验结果之后,我们需要对实验进行总结与讨论。

我们可以使用Markdown的段落和标题标记来组织我们的思路,并给出实验的主要结论和发现。

在讨论部分,我们可以提出一些问题供读者思考,并给出我们自己的解释和观点。

步骤五:撰写实验报告最后,我们可以开始撰写完整的实验报告了。

在撰写报告时,我们应该注意语法和拼写的准确性,并保持文档的结构和逻辑性。

我们可以使用Markdown的引用标记来引用他人的研究结果和引用文献。

此外,我们还可以使用Markdown的链接标记来引用其他相关资源。

结论通过本次实验,我们学习了如何按照步骤思考并编写一篇有条理的文档。

通过使用Markdown文本格式,我们能够清晰地表达实验目的、步骤和结果,并且能够以一种结构化和易读的方式呈现给读者。

北方工业大学计算机专业数据库技术I 实验报告 实验二:CS结构的数据库编程

北方工业大学计算机专业数据库技术I 实验报告 实验二:CS结构的数据库编程

数据库技术I(2010年秋)数据库技术I 实验报告系别:班级:姓名:学号:成绩:评语:指导教师签字:日期:实验二:C/S结构的数据库编程一、实验题目1.学会配置ODBC数据源,熟悉使用ODBC进行数据库应用程序的设计,通过ODBC接口对数据库进行操作。

2.学会通过ADO访问数据库,熟悉使用ADO技术进行数据库应用程序的设计,通过ADO接口对数据库进行操作。

3.通过一门编程工具(VS2005 C#或.net)编写访问数据库的应用程序,编程序设计良好的一个人机交互界面,列出实验一中的查询,将SQL语句嵌入VS 2005中完成“实验一”中的10个数据库查询语句的结果显示。

也可选择其他编程工具开发。

二、实验环境及要求1.实验环境:Windows7,SQLServer2008,Visual Studio 2010。

2.实验要求:利用VS设计出良好的人机交互界面,完成实验一中的11个查询。

三、实验步骤及结果1.实验步骤:1)建立ODBC数据源:在“控制面板”中的“管理工具”下双击“数据库(ODBC)”图标,打开“ODBC数据源管理器”。

选择“系统DSN”选项卡,单击“添加”按钮。

选择驱动程序SQL Server,单击“完成”按钮。

弹出“创建到SQL Server的新数据源”。

单击“下一步”,出现选择SQL Server数据库服务器对登录帐户的身份验证方式的对话框,可以选择Window身份验证或SQL Server身份验证。

单击“下一步”,在“更改默认的数据库为”下拉列表框中选择“sales”。

单击“下一步”,单击“完成”按钮,完成数据源的配置。

进行测试数据源,若系统提示测试成功,则表示DSN设置正确。

单击“确定”,即完成系统DSN的建立。

2)VS2005开发环境中连接数据库:(1)启动SQL Server 2005后,单击“文件”菜单,选择“新建”,“项目”。

(2)Visual C#---〉Windows 应用程序---〉确定,会自动生成窗体Form1(3)工具箱---〉数据---〉DataGridView 拖入Form1(4)在此控件上单击右键—>属性—>DataSource(5)点击此属性值下箭头-->添加项目数据源(6)点击数据库-->下一步-->新建连接,弹出添加连接窗口,将SQL server 2005的服务器名称复制。

汇编语言实验报告

汇编语言实验报告

汇编语言实验报告实验一汇编语言的源程序的输入一、实验目的1.通过实验了解和熟悉微机系统的配置2.学习在DEBUG状态下输入汇编源程序的方法3.初步掌握调试(在DEBUG状态下)的过程二、实验原理1.本实验在DEBUG状态下输入汇编源程序,并且用DEBUG命令进行调试,用单步跟踪的方法试验指令的功能;2.以下是给定的参考程序,并在实验时每条指令的“;”等号右边按要求填写指令的分析结果。

三、实验步骤1.开机后进入DOS系统2.用DEBUG的REGISTER命令检查所有寄存器内容,并作记录R[寄存器名]3.用DEBUG的ASSEMBLE命令输入汇编源程序A[内存地址]4.用DEBUG的UNASSEMBLE命令反汇编U[起始地址][终止地址]5.用DEBUG的TRACE命令单步跟踪程序T[起始地址][终止地址]6.用DEBUG的DUMP命令显示存贮器单元的内容四、参考程序及结果MOV AX,2000 ;AL=00MOV DS,AX ;DS=2000NOT AX ;AX=DFFFXOR AX,AX ;AX=0000DEC AX ;AX=FFFFINC AX ;AX=0000MOV BX,2030 ;BH=20MOV SI,BX ;SI=2030MOV [SI],BL ;[2030H]=30MOV WORD PTR[SI],10F ;[2030H]=0F [2030H]=01 MOV DI,SI ;DI=2030MOV [DI+50],BH ;[DI+50]=20MOV BH,[SI] ;BH=0FMOV BL,[DI+50] ;BL=20MOV SP,5000PUSH AX ;AX=0 [SS:4FFEH]=00H [SS:4FFFH]=00H PUSH BX ;BX=0F20 [SS:4FFCH]=20H [SS:4FFDH]=0FH POP AX ;AX=0F20POPF ;F=00000000NEG BX ;BX=F0E0XCHG BX,AX ;BX=0F20STD ;F=01010001STI ;F=01110001CLD ;F=00110001CLI ;F=00010001ADC DI,2050 ;DI=4081 F=00000010ADC SP,DI ;SP=9081 F=10010010ADC AX,1500 ;AX=05E0 F=00000001SUB AX,BX ;AX=F6C0 BX=0F20SHL AH,1 ;AH=ECRCL AX,1 ;AX=D981SHR BX,1 ;BH=07RCR BL,1 ;BL=90MOV CL,4MOV DX,80F0ROL DX,CL ;DX=0F08 CL=04INT 20 ;CS=00A7 IP=1072实验二数据的建立与传送程序一、实验目的1.学习DEBUG命令2.验证指令的功能二、实验原理在DEBUG状态下,输入程序,用G命令进行连续方式执行程序,用DUMP命令查看建立的数据块内容三、参考程序及结果1.在内存1000单元开始,建立00H~0FH~00H 31个数,要求00H~0FH数据逐渐增大,0FH~00H逐渐减小,程序从内存CS:0100H地址开始输入MOV AX ,100HMOV DS ,AXMOV SI,0MOV CL ,0FHXOR AX,AXPPE1: MOV [SI] ;ALINC SI ;INC ALDEC CLJNZ PPE1MOV CX,10HPPE2:MOV[SI],ALINC SIDEC ALLOOP PPE2INT 20H数据块的内容1000:0000:00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 1000:0100:0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 002.把上一程序的执行结果分几种方式传送到以下指定区域(a)该程序从内存CS:0150H开始输入,把数据块传送到15050H 开始的存储区域中MOV AX,1000HMOV DS,AXMOV SI,0MOV DI,5050HMOV CX,1FHPPEA: MOV AL,[SI]MOV [DI],ALINC SIINC DILOOP PPEAINT 20H结果:1000:5050 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 1000:5060 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00(b)用串传送指令MOVSB,把数据块传送到15150H开始的区域,该程序从内存CS:0200H开始输入MOV AX,100HMOV DS,AXMOV ES,AXMOV SI,0MOV DI,5150HMOV CS,1FHCLDPPEB: MOVSBLOOP PPEBINT 20H结果:1000:5150 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 1000:5160 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00(C)用重复串操作指令”REP MOVSB”把数据传送到15250H开始的区域,该程序从CS:250H地址开始输入MOV AX,1000HMOV DS,AXMOV ES,AXMOV SI,0MOV DI,5250HMOV CX,1FHCLDREPZMOVSBINT 20H结果:1000:5250 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 1000:5260 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00(c)用串操作的减量工作方式,把数据传送到25050H开始的区域,该程序从CS:0300H开始输入MOV AX,1000HMOV DS,AXADD AX,AXMOV ES,AXMOV SI,1EHMOV DI,506EHMOV CX,1FHSTDREP MOVSBINT 20H结果:2000:5050 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 2000:5060 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00实验四统计学生成绩程序一、实验目的进一步掌握分支程序和循环程序的编写方法二、实验原理设有10个学生的成绩分别为56,69,84,82,73,88,99,63,100和80分。

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

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

汇编语言程序设计实验报告(二)一、实验目的1)加深对循环结构的理解。

2)掌握循环程序的设计方法。

3)学习子程序的定义和调用方法。

4)掌握子程序、子程序的嵌套、递归子程序的结构。

5)掌握子程序设计、编制及调试。

6)熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。

二、实验内容1)编制在屏幕上显示九九乘法表的程序。

2)编制在屏幕上显示用*组成的三角形的程序。

三、实验结果(1)(2)四、源代码(1)DA TA SEGMENTM DB 31H,32H,33H,34H,35H,36H,37H,38H,39H DA TA ENDSSTACK1 SEGMENT STACKDW 20H DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACK1 START:MOV AX,DA TAMOV DS,AXMOV CX,9MOV DI,OFFSET MLOP1:PUSH CXMOV CX,[DI]AND CX,0FHMOV SI,OFFSET M LOP2:MOV AL,[SI]MOV DL,ALMOV AH,2INT 21HAND AL,0FHMOV BH,ALMOV DL,'*'MOV AH,2INT 21HMOV BL,[DI]MOV DL,BLMOV AH,2INT 21HMOV DL,'='MOV AH,2INT 21HAND BL,0FHMOV AL,BHMOV AH,0MOV DL,10DIV DLMOV BL,AHCMP AL,0JE NEXTMOV DL,ALADD DL,30HMOV AH,2INT 21H NEXT:MOV DL,BLADD DL,30HMOV AH,2INT 21HMOV DL,' 'MOV AH,2INT 21HINC SILOOP LOP2MOV DL,0AHMOV AH,2MOV DL,0DHINT 21HINC DIPOP CXLOOP LOP1MOV AH,4CHINT 21HCODE ENDSEND START(2)STACK1 SEGMENT STACKDW 20H DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK1 BEGIN:MOV AH,1INT 21HMOV BL,ALSUB BL,30HMOV DL,0AHINT 21HMOV DL,0DHMOV AH,2INT 21HMOV BH,0MOV CX,BXMOV BX,1L1: PUSH CXMOV CX,BX L2: MOV DL,'*'MOV AH,2INT 21HLOOP L2MOV DL,0AHMOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HADD BX,1POP CXMOV AH,4CHINT 21HCODE ENDSEND BEGIN五、实验心得这是第二次做汇编实验,首先,心理上已经没有了第一次做实验的那种茫然,知道了想要编写一个完整的程序,应当先将这一个大问题分解成若干个小的问题,找出每一个小问题所对应的解决方法,然后用代码一步一步实现,再将这一个一个的小问题串联起来,找到它们的契合点,用联系把它们组成一个完整的程序,其中最常用的就是转移指令和循环。

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

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

汇编语言程序设计实验报告汇编语言程序设计实验报告一、实验目的:(1)熟悉汇编语言运行环境和方法;(2)了解如何使用汇编语言编制程序;(3)熟悉DEBUG有关命令的使用方法;(4)利用DEBUG掌握有关指令的功能;(5)利用DEBUG 运行简单的程序段。

二、实验内容:1.学会输入,编辑汇编语言程序;2.学会习汇编语言程序进行汇编,连接和运行;3.进入和退出DEBUG程序;4.学会DEBUG中的D命令,E命令,R命令,T命令,A命令,G命令等的使用。

对于U命令,N命令,W命令等,也应试一下。

三、实验准备:1.仔细阅读有关汇编语言环境的内容,实现准备好使用的例子。

2.准备好源程序的清单,设计好调试的步骤,测试方法,对运行结果额分析。

3.编写一个程序:比较两个字符串所含的字符是否相同,若相同则显示’Match’。

否则显示’No match!’。

4.仔细阅读有关DEBUG命令的有关内容,对有关命令,都要事先准备好使用的例子。

四、实验步骤:1.在DOS提示下进入MASM目录。

2.在MASM目录下启动EDIT编辑程序,输入源程序,对其进行汇编,链接和运行。

(1)调用edit输入,编辑源程序并保存在指定目录中。

例: Edit abc.asin(2)用汇编程序masin对源程序汇编产生目标文件obj;例:不断修改错误,直至汇编通过为止。

(3)用连接程序link产生执行文件exe。

例:link abc(4)执行程序:可直接从DOS执行程序,即在DOS环境中,输入文件名即可。

3.详细记录每一步所用的命令,以及查看结果的方法和具体结果。

五、实验方法:比较字符串sle。

试编写一个程序:比较字符串string1和string2所含的字符是否相同。

若相同则显示’match ‘,否则则显示’No match’可以用串比较指令来完成程序所有要求的功能。

上机过程:1.调用字处理程序wordstar建立asm文件。

使用非文本文件方式(n命令)建立以sle.asm为文件名的源文件如下,然后用CTRLKX命令存入磁盘,并使用系统返回DOS。

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

《汇编语言程序设计》报告书
学生姓名:学号:
学院: 信息工程学院
专业: 计算机科学与技术
班级:
指导教师:杜春来
目录
一.实验内容 (1)
二.实验模块设计(必须有流程图设计) (2)
三.实验模块源码(必须有注释) (3)
四.实验遇到的问题与解决方案 (4)
五.心得体会 (4)
一.实验内容
(1)将下面的数据段输入,取名为1.asm, 保存在MASM5文件夹下,生成.lst文件,不必连接运行,查看1.lst文件,试回答:DA1,DA2 的偏移量分别为多少?
COUNT的值为多少?
data segment
org 20h
num1=8
num2=num1+10h
da1 db 'IBM PC'
da2 db 0ah,0dh
count equ $-da1
data ends
end
DA1 DA2 的偏移量为:COUNT的值为:
(2)Input the following instructions, and correct all the errors (don’t link or run it)
data segment
var1 db 0, 25, 0dh,300 //超过一个字节,300改为小于25的数
var2 db 12h,a4h,6bh //a4h改为0a4h
var3 db 'ABCDEF'
var4 dw 1234h, 5678h
var5 dw 10h dup(?)
data ends
code segment
assume cs:code, de:data //de改为ds
begin //begin后面加冒号
mov ax, data
mov ds, ax
lea si, var5
mov bx, offset var2
mov [si], 0abh //立即数送内存单元要指明字节或字,前面要加BYTE PTR
mov ax, var1+2 //字节数据不能送字寄存器
mov [bx], [si] //内存单元之间不能传送数
mov var5+4, var4
mov ah, 4ch
int 21h
code ends
end start //应改为end begin
(3) 写一个完整的程序放在代码段C_SEG 中,要求把数据段D_SEG中的AGUEND和附加段E_SEG中的ADDEND相加,并把结果存放在D_SEG中的SUM中。

其中AUGEND,ADDEND,SUM 均为dw类型,AUGEND赋值为9251,ADDEND赋值为-5962。

调试步骤(详见书P146~153)
1.编辑源程序,建立一个以后缀为.ASM的文件.
2.汇编源程序,编译: c: \MASM5\masm xxxx.asm 检查程序有否错误,有错时回到编辑状态,修改程序中错误行。

无错时继续第3步。

3.连接目标程序,产生可执行程序。

连接:c:\MASM5\link xxxx.obj
4. 运行: c: \MASM5\ xxxx..exe
5 调试:c:\winnt\system32\debug xxxx.exe
1)先用命令U反汇编整个程序,查看每条指令的物理地址,其显示内容的含义为:
内存地址指令代码反汇编的程序代码
-u
0B75:0000 1E PUSH DS
2)再用-t命令单步执行,检查各个寄存器的值变化情况
6.DEBUG调试可执行程序,记录数据段和附加段的内容。

二.实验模块设计(必须有流程图设计)
实验一:实验二:
实验三:
三.实验模块源码(必须有注释)
实验一:
data segment
org 20h ;赋初值
num1=8 ;初始num1值
num2=num1+10h;计算num2值
da1 db 'IBM PC' ;计算da1值
da2 db 0ah,0dh ;计算da2值
count equ $-da1 ;计算count值
data ends
end ;结束
实验二:
data segment
var1 db 0, 25, 0dh,300 //超过一个字节,300改为小于25的数
var2 db 12h,a4h,6bh //a4h改为0a4h
var3 db 'ABCDEF'
var4 dw 1234h, 5678h
var5 dw 10h dup(?)
data ends
code segment
assume cs:code, de:data //de改为ds
begin //begin后面加冒号
mov ax, data
mov ds, ax
lea si, var5
mov bx, offset var2
mov [si], 0abh //立即数送内存单元要指明字节或字,前面要加BYTE PTR mov ax, var1+2 //字节数据不能送字寄存器
mov [bx], [si] //内存单元之间不能传送数
mov var5+4, var4
mov ah, 4ch
int 21h
code ends
end start //应改为end begin
实验三:
D_SEG SEGMENT ;初始化D_SEG
D_WORD LABEL WORD;初始化D_WORD
AUGEND DD 9251 ;AUGEND赋值9521
S_WORD LABEL WORD;初始化S_WORD
SUM DD ?
D_SEG ENDS ;初始化D_SEG结束
E_SEG SEGMENT ;初始化E_SEG
E_WORD LABEL WORD;初始化E_WORD
ADDEND DD -5962 ;ADDEND赋值-5962
E_SEG ENDS ;初始化E_SEG结束
C_SEG SEGMENT ;对C_SEG操作
ASSUME CS:C_SEG,DS:D_SEG,ES:E_SEG ;初始化寄存器CS,DS,ES MAIN PROC FAR
START:PUSH DS ;DS入栈
MOV AX,0 ;0赋给AX
PUSH AX ;AX入栈
MOV AX,D_SEG ;D_SEG赋给AX
MOV DS,AX ;AX赋给DS
MOV AX,E_SEG ;E_SEG赋给AX
MOV ES,AX ;AX赋给ES
MOV AX,D_WORD ;D_WORD赋给AX
MOV BX,D_WORD+2;D_WORD加2的字赋给BX
ADD AX,ES:E_WORD;ES中E_WORD与AX的和赋给AX
ADD BX,ES:E_WORD+2;ES中D_WORD+2的字与BX的和赋给BX
MOV S_WORD,AX ;AX值赋给S_WORD
MOV S_WORD+2,BX ;BX值赋给S_WORD+2
RET
MAIN ENDP
C_SEG ENDS ;C_SEG的操作结束
END START ;结束
四.实验遇到的问题与解决方案
1.关于db输入错误的问题,db的表示范围是1——255,不能超出此范围。

2.内存到内存无法赋值,可以通过寄存器或堆栈转储赋值。

3.begin后应有“:”,再写语句。

五.心得体会
通过本次实验,我更加熟悉了汇编语言环境的用法,第一题的观察数据让我再次使用了dos界面来操作代码,第二题的改错和第三题的编程也让我对汇编语言有了进一步的认识。

相信这次实验可以为将来更好地学习汇编语言有所帮助,有所启发。

相关文档
最新文档