汇编实验指导书

合集下载

汇编语言实验一 指导书

汇编语言实验一 指导书

实验一:汇编上机指导及例示一、实验目的●了解汇编语言程序的运行环境和所需的系统程序;二、实验要求●掌握如何编辑、汇编、连接和运行汇编程序;●掌握常用的DEBUG命令。

三、实验原理题:在屏幕上显示一条'THIS IS A SAMPLE PROGRAM OF KEYBOARD AND DISPLAY'提示信息,如从键盘上输入ESC键,则结束程序,如输入的不是大写字母,则在显示器上显示出来,如输入的是大写字母,则转换为小写字母输出。

四、实验设备计算机五、实验步骤1、用用文字编辑工具(常用EDIT或记事本)将源程序输入,其扩展名为.ASM。

2、用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。

若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。

3、用TYPE命令显示产生的.LST文件。

4、用LINK将.OBJ文件连接成可执行的.EXE文件。

5、在DOS状态下运行LINK产生的.EXE文件。

用于调试程序时的输入格式:DEBUG FILENAME.??? 回车其中FILENAME是主文件名,???是扩展文件名,例如我们在此前已编译好了一个文件,它的名字为:djx.exe 要对它进行调试时就在DOS提示符下打:DEBUG djx.exe 回车,便可见到 '-' 提示符,如无任何提示说明正确,可进行调试按ESC键可返回DOS。

若未出现预期结果,用DEBUG检查程序。

附: 基本debug操作1、显示内存单元的内容:-d [地址] 或 [范围]2、修改内存单元的内容:-e 地址内容表或-e 地址3、显示CPU内部寄存器和标志位状态:-r4、显示和修改某个寄存器的内容:-r 寄存器名5、汇编命令:-a 地址6、逐条指令追踪:-t [=地址] (无地址则执行IP所指示的指令)7、退出debug:-g8、多条指令追踪:-t [=地址] [n]注:该指令从指定地址起执行n条命令后停下来9、运行命令:-g [=地址1] [地址2 [地址3...]]地址1规定了运行起始地址,后面的地址均为若干断点地址10、反汇编命令:(1)-u [地址]该命令从指定地址开始,反汇编32个字节,若省略地址,则从上一个u命令的最后一条指令的下一单元开始显示32个字节(2)-u 范围该命令对指定范围的内存单元进行反汇编如:-u 04ba:0100 0108等价于:-u 04ba:0100 L9下面给出一些常见出错信息,以便查对:1、Register already defined 汇编内部出现逻辑错误2、Unknown symbol type 在符号语句的类型中,有些不能识别的东西3、Symbol is multi-defined 重复定义一个符号4、Symbol not defined 符号没有定义5、Syntax error 语句的语法与任何可识别的语法不匹配6、Symbol is reserved word 企图非法使用一个汇编程序的保留字(例:定义add为一变量)7、Not proper align/combine type SEGMENT参数不正确8、One operand must be const 这是加法指令的非法使用9、Operands must be same or 1 abs 这是减法指令的非法使用10、Already have base register 试图重复基地址11、Illegal size for item 引用的项的长度是非法的,(如:双字移位)12、Illegal register value 指定的寄存器值不能放入“reg”字段13、Must be AX or AL 某些指令只能用AX或AL14、Improper use of segment reg 段寄存器使用不合法(如:mov ds,0)15、Division by 0 or overflow 给出一个用0作除数的表达式16、Value is out of range 数值大于需要使用的17、CS register illeal usage 试图非法使用CS寄存器18、DUP is too large for linker DUP嵌套太长,以至于从连接程序不能得到所要的记录。

汇编语言实验指导书(第1组)

汇编语言实验指导书(第1组)

实验一、Debug调试实验指导书一、实验目的1.进一步学习汇编语言基本指令使用方法;2.学习DEBUG调试工具的基本使用方法;掌握debug调试命令a、u、r、d、t、g等3.逐条观察程序指令的执行过程,理解指令的功能,理解程序自动、顺序地执行的概念,实践其过程(重点)。

二、实验题目1.编写、输入一个32位二进制数相加程序,逐条执行指令,观察指令执行情况。

2.使用已经过汇编和连接的小程序(t3-2.exe),将其装入内存,逐条执行指令,观察执行过程和结果。

在实验过程中,使用D命令修改XXX和YYY单元中的数据,再重新计算其结果。

三、编程提示1.启动计算机的WINDOWS操作系统,运行DEBUG程序。

2.方法1:在开始菜单中找到“运行”,输入“cmd”后回车,启动ms-dos command程序,再在该程序内输入“DEBUG”并按回车,即启动DEBUG调试程序。

3.方法2:在开始菜单中找到“运行”,输入“DEBUG”后确定,即启动DEBUG调试程序。

4.开始编程方法1:在debug中输入a命令,并回车。

显示出的地址是当前指令代码所存放的地址。

接着,逐条有序地输入汇编指令,直接回车即可结束程序指令的输入过程。

如需修改程序,则先确定错误指令的地址,再使用“a 地址号”命令修改。

注意,修改前后指令长度如发生改变,会对该指令以后的指令码的存储造成影响,使程序不能正确执行。

(为什么?)方法2:将事先已经准备好的可执行程序(.exe文件)装入存储器,使用如下命令:debug 文件名.exe。

(.exe必须写全,否则找不到程序文件,为什么?)5.程序调试过程(1)使用u命令将程序反汇编,观察其汇编指令的与源程序的对应关系,观察每一条指令的代码、存放地址、指令代码长度等;(重要)(2)使用r命令读出各寄存器中的数值,从CS:IP寄存器中的数值确定程序当前应执行的指令;(结合计算机硬件知识加以理解)(3)察看当前指令的长度、指令代码、指令功能、操作数的寻址方式、所涉及的寄存器和存储器中的数值;(4)使用d命令读出所关注的存储器中的数值,并计算其地址顺序;(5)使用t命令执行单条指令,察看指令执行后相关存储器和存储器中的数值变化情况,察看标志位寄存器的变化情况,判断指令执行后的计算结果是否正确?如遇到条件转移指令时要判断是否转移,转移或不转移时下一条指令的地址是什么?(重要)(6)使用e命令读出、修改存储器中的相关数据,可重新执行相关计算指令,再观察结果。

汇编实验指导书

汇编实验指导书

实验一汇编语言程序的上机过程一、实验目的掌握汇编语言源程序的编辑、汇编、连接及运行过程,为以后的实验打下基础。

二、实验内容1、输入下列完整的程序STACK SEGMENT STACKDB 200 DUP(?)STACK ENDSDATA SEGMENTBUF DB‘HOW ARE YOU!$’DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXLEA DX,BUFMOV AH,9INT 21HMOV AH,4CHINT 21HCODE ENDSEND START(本程序的正确运行结果是在屏幕显示“HOW ARE YOU!”)2、完成课本P193习题5.1。

三、实验步骤(1)利用EDIT编辑源程序;(2)汇编源程序;(3)连接目标程序文件;(4)运行可执行文件。

四、实验报告要求写出以上两个实验内容的题目、源码、具体实验步骤和实验结果。

1.在屏幕上打印字符串”How are you?”。

(1)源代码:;打印字符串"How are you?"STACK SEGMENT STACKDB 200 DUP(?)STACK ENDSDATA SEGMENTBUF DB 'How are you?$'DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKSTART: MOV AX, DATAMOV DS, AXMOV AX, STACKMOV SS, AX;在屏幕上打印字符串LEA DX, BUFMOV AH, 9HINT 21HMOV AH, 4CHINT 21HCODE ENDSEND START(2)具体实验步骤:编辑→保存→masm→link→运行(3)结果截图:2.编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

汇编指导书

汇编指导书

第一部分 预备知识一、 汇编语言程序设计的上机过程开发8086/8088汇编语言源程序的过程如下:图1.1 上机过程及生成的文件1、编辑源程序为了将源程序送入计算机并建立一个源程序名为*.ASM 的源文件,可以使用任何流行的字处理程序或能编辑ASCII 文字符号的编辑程序。

例如调用DOS 下的全屏幕编辑程序EDIT 或Windows 下的记事本,建立和修改源程序,生成扩展名为.ASM 的文件。

在Windows 系统中,用鼠标点击开始菜单,指向程序→附件→MS DOS 方式(Windows XP 中为“命令提示符”),在MS DOS 提示符下键入EDIT ,启动编辑程序。

例如C:\>EDIT MYFILE.ASM通过以上操作, 建立了一个名为MYFILE.ASM 的汇编语言源程序。

汇编语言源程序的扩展名必须为.ASM ;若在以后的几个步骤中发现源程序有错,还要回到编辑程序中加以修改,并重新存盘。

2、将源程序文件汇编成目标程序文件一般情况下,MASM 汇编程序的主要功能有:⑴检查源程序中的语法错误,并给出错误信息。

⑵若源程序经汇编后没有错误,产生目标程序文件。

即将用汇编语言编制的源程序转换为机器代码的目标程序的文件(扩展名为.OBJ ),并可给出列表文件(.LST)和交叉索引文件(.CRF)。

⑶若程序中使用了宏指令,则汇编程序将展开宏指令。

在DOS 提示符下,键入MASM 命令行,命令行的格式为:myfile.exeMASM 源文件名[,[目标文件名][,[列表文件名][,[交叉索引文件名]]]][;] 注:命令行中的方括号内为可选项。

例:设有文件名为TRY.ASM的汇编语言源文件,则调用MASM进行汇编的过程为:C:\>MASM TRY.ASM ↙Microsoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Crop 1981 – 1985, 1987, All rights reserved.Object filename [TRY.OBJ]:TRY ↙Source listing [NUL.LST]:TRY ↙Cross–reference [NUL.CRF]:TRY ↙0Warning Errors0Severe Errors其中Object filename 为目标文件名,这是汇编的主要目的,该文件是我们需要的。

《汇编语言》实验指导书.

《汇编语言》实验指导书.

《汇编语言》实验指导书目录实验一Debug命令的使用 (3)实验二基本汇编指令的使用 (7)实验三汇编语言程序的调试与运行 (10)实验四系统功能调用程序的调试与运行 (15)实验五分支程序设计 (17)实验六循环程序设计 (20)实验七子程序设计 (23)实验八高级汇编语言程序设计 (25)实验九I/O程序设计 (30)实验十中断程序设计 (33)实验十一综合程序设计 (38)实验一Debug命令的使用一、知识点1、DEBUG简介DEBUG.EXE是DOS提供的用于调试可执行程序的一个工具软件。

在汇编语言程序调试中很常用。

DEBUG的提示符是“-”,所有DEBUG调试命令均在此提示符下输入。

DEBUG命令都是一个字母,后跟一个或多个参数,也可使用默认参数。

DEBUG命令的使用注意问题:(1)字母不分大小写(2)只使用十六进制数,但没有带后缀字母“H”(3)命令如果不符合DEBUG的规则,则将以“error”提示,并以“^”指示出错位置。

(4)每个命令只有按下回车键后才有效,可以用Ctrl+Break终止命令的执行。

2、Debug的调入和退出以WIN2000环境为例,点击“开始/运行…”,在“运行”对话框中输入命令:cmd,然后点击“确定”,进入DOS命令行状态:C:\Documents and Settings\lfy>然后输入命令:>Debug进入Debug调试状态,出现Debug命令提示府“-”,在此提示符下可运行所需要的Debug 命令了。

退出Debug的命令:Q3、Debug常用命令(1)汇编命令A,格式为:- A [地址]功能:从指定地址开始允许输入汇编指令,并将该指令汇编成机器指令代码从指定地址开始存放。

若不指定地址,则系统从默认的地址开始存放。

按回车键退出汇编状态应用:用于调试一条指令或几条指令组成的一个程序段。

(2)显示和修改寄存器命令R,格式为:- R [寄存器名]功能:若指定寄存器,则显示指定的寄存器的内容,并可进行修改;若不要修改,则按Enter 健。

汇编实验指导1

汇编实验指导1

《汇编语言程序设计》实验指导书实验1 DEBUG的使用1、实验目的掌握DEBUG常用命令的使用;熟悉8086CPU内部有多少寄存器;掌握访问段式存储器结构地址的表示方法。

2、实验内容将数据段中的两个数求和,结果保存在数据段中。

源程序、机器语言程序如下:CS:0100 Al 00 00MOV AX,[0000]CS:0103 03 06 02 00ADD AX,[0002]CS;0107 A3 04 00MOV [0004],AXCS:010A CB RETF数据段内容如下:DS:0000 2301 2500;两个已知数3、实验步骤(1)用E命令键人上述机器语言程序和数据段的初值。

—E DS:000 2301 2500—E DS:006 2A 2A 2A (2A为*标记,是为便于查看数据段内容而设置)—E CS:100 A1 00 00 03 06 02 00—E CS:107 A3 04 00 CB(2)用D命令检查数据段、代码段内容。

—D DS:0—D CS:100(3)用T命令逐条执行上述程序,注意观察每条指令执行后相应寄存器的变化。

(4)用U命令反汇编本程序。

—U 100 10A(5)用R命令修改IP的内容为0100重新执行上述程序。

—R IP显示:IP 010A:0100(6)用G命令运行程序。

—G =CS:0100 107观察:IP=AX=—G =CS:0100 10A观察:IP=AX=4、实验思考题(1)用A命令输入源程序:CS:0100 MOV AX,FFFFSTC0104 MOV DS,AXMOV BX,DSMOV ES,BXMOV CX,ESMOV SS,CXMOV DX,SSMOV SP,DXMOV BP,SPMOV SI,BPMOV DI,SIJNB 012lXOR AX,DIJNZ 0125CLCJMP 01040121 OR AX,DIJZ 01000125 HLT(2)用T命令单步执行上述程序。

汇编实验指导

汇编实验指导

汇编实验指导风格化实验二内存操作数及寻址方法实验目的:通过实验掌握下列知识:1、DEBUG命令:G,N,W,L及Q。

2、8088系统中数据在内存中的存放方式和内存操作数的几种寻址方式。

3、8088指令:INC,DEC,LOOP,INT 3,INT 20H,寄存器SI,DI。

4、8088汇编语言伪操作:BYTE PTR,WORD PTR。

5、求累加和程序和多字节加减法程序。

实验内容和步骤:一、内存操作数及各种寻址方式使用:内容:MOV AX,1234MOV [1000],AXMOV BX,1002MOV BYTE PTR[BX],20MOV DL,39INC BXMOV [BX],DLDEC DLMOV SI,3MOV [BX+SI],DLMOV [BX+SI+1],DLMOV WORD PTR[BX+SI+2],2846步骤:1)用A命令键入上述程序,并用T命令逐条运行。

2)每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注明是什么寻址方式。

3)1、直接寻址方式。

2、寄存器间接寻址方式。

3、寄存器间接寻址方式。

4、基址变址寻址方式。

5、相对基址变址寻址方式6、相对基址变址寻址方式注意D命令显示结果中右边的ASCII字符及双字节数存放法。

思考:有关指令中BYTE PTR及WORD PTR伪操作不加行不行?试一试。

二、求累加和程序:程序:MOV BX,1000MOV CX,10SUB AX,AXLOP: ADD AL,[BX]ADC AH,0INC BXJ: LOOP LOPINT3步骤:1)用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替。

2)用命令N AA将此程序命名为文件AA(文件名可任取)。

3)用R命令将BX:CX17改为程序长度值(即最后一条指令后面的地址减去开始地址)4)用命令W 100将此程序存到AA命名的磁盘文件中。

汇编语言实验指导书

汇编语言实验指导书

实 验 一实验名称:DEBUG 练习和简单程序设计实验目的:通过对调试程序DEBUG 的使用和简单汇编源程序的设计的训练,掌握汇编语言设计、编写和运行程序的方法,为后续试验打下基础。

实验内容:(注:实验报告要求:操作验证性实验需写出实验步骤及每步的实验结果,并对实验结果进行必要的分析;设计性实验需包含:软硬件平台、流程图、源程序、调试步骤、运行结果等,源程序应加必要的注释。

)(一) DEBUG 练习:学习DEBUG1、 进入DEBUG ;的R 命令查看、改变CPU 命令修改寄存器BX 、SI 、3、 用DEBUG 的D 命令查看内存中的内容(以下内容分别使用不同的D 命令);1) 用D 命令查看从1000:0开始的128个内存单元的内容并纪录;2) 用D 命令查看从2000:8开始的128个内存单元的内容并纪录;3) 用D 命令查看从3000:0开始的10个内存单元的内容并纪录;4、 用DEBUG 的E 命令改写内存中的内容;用E 命令将内存1000:0—1000:9单元中的内容改写为0、1、2、3、4、5、6、7、8、9,并进行验证。

5、 用DEBUG 的U 命令将内存中的机器指令翻译成汇编指令;用E 命令从1000:0单元开始写入如下机器码,然后用U 命令将内存中的机器指令翻译成汇编指令,并分析实验结果各部分的含义。

机器码 对应的汇编指令b80100b9020001c86、 用DEBUG 的T 命令执行机器指令;用T 命令单步执行上题程序段的每条指令并纪录结果。

7、 用DEBUG 的A 命令以汇编指令的格式在内存中写入一条机器指令。

用A 命令将下面的程序段写入内存,用U 命令翻译成机器指令,逐条执行,观察每条指令执行后,CPU 中相关寄存器中内容的变化。

MOV AX,4E20HADD AX,1416HMOV BX,2000HADD AX,BXMOV BX,AXADD AX,BXMOV AX,001AHMOV BX,0026HADD AL,BLADD AH,BLADD BH,ALMOV AH,0ADD AL,BLADD AL,9CH(二)简单程序设计1、按要求编写汇编源程序,练习源程序的上机过程,并练习用DEBUG调试程序。

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

汇编语言实验指导书授课教师李娜授课对象 05计科、网络、06计科授课时间 07-08学年第一学期授课地点一、二、四机房课程简介一.实验课程的性质和目的汇编语言程序设计是计算机专业的一门专业基础课,是学好计算机底层系统构成的课程。

汇编语言程序设计是一门实用性很强的课程。

汇编语言程序程序设计实验教案是教案的重要环节,是理论教案的重要补充,只有通过实验,学生才能熟练掌握汇编语言程序设计的基本方法,并对其有更深刻的认识。

本门实验课是单独设课。

二.实验教案的方法和手段为了提高实验教案效果,实验严把预习、实验、实验报告3个环节。

实验在软件实验室机房完成,单独设组,个人完成实验,每项实验以小班为单位,实验考勤采用电子签到制度。

预习:安排学生学习实验内容,了解实验的过程和操作规程,并布置思考题和预习报告,让学生有目的地去查阅与实验相关的资料。

实验:实验开始前由指导教师讲解实验要点,提出注意事项。

实验过程中,主题是学生,教师是辅助作用,要求学生独立完成实验。

实验报告:实验结束后,强调学生及时填写实验记录表,对实验过程进行详细记录,对实验结果细致地分析、讨论,完成相关思考题作业。

三.课程学时本实验课实验总学时为32学时。

四.实验成绩的考核方法汇编语言实验成绩按百分制核定。

实验过程占50%,实验报告占50%。

五.大纲的适用范围本大纲适用计算机科学与技术专业和计算机应用与维护专业学生。

六.主要设备与器材配备七.实验项目汇总表实验一熟悉汇编语言编程环境一.实验目的<1)熟悉汇编语言编程环境;<2)掌握基本汇编程序。

二.实验仪器设备计算机三.实验重点、难点熟悉汇编语言编程环境;DEBUG常用命令的正确使用。

-T/-U/-Q/-G四.实验题目比较两个字符串string1和string2所含的字符是否相同,若相同则显示‘metch’,否则,显示’no match’。

五.实验内容、步骤1.调用EDIT建立ASM源文件。

2.用汇编程序MASM对源文件汇编产生目标文件OBJ。

<如有问题,可用DEBUG调试。

)3.用LINK联接程序产生执行文件EXE。

4.执行程序。

附:源程序;PROGRAM TITLE GOES HERE—COMPARE STRING;********************************************************data segmentstring1 db 'move the cursor backward.'String2 db 'move the cursor backward.'Mess1 db 'match.',13,10,'$'Mess2 db 'no match.',13,10,'$'data endsprognam segmentmain proc farassume cs:prognam,ds:data,es:datastart:push dssub ax,axpush axmov ax,datamov ds,axmov es,axlea si,string1lea di,string2cldmov cx,25repz cmpsbjz matchlea dx,mess2jmp short dispmatch:lea dx,mess1disp:mov ah,09int 21hretmain endpprognam endsend start六.作业布置<1)完成本实验的实验报告。

<2)针对下一个实验预习课本相关章节;<3)预习实验指导书相关内容,设计上机源程序。

实验二简单程序设计一.实验目的掌握简单程序设计的方法二.实验仪器设备计算机三.实验重点、难点进一步熟悉汇编语言编程环境;四.实验题目试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

五.实验内容、步骤1.调用EDIT建立ASM源文件。

2.用汇编程序MASM对源文件汇编产生目标文件OBJ。

<如有问题,可用DEBUG调试。

)3.用LINK联接程序产生执行文件EXE。

4.执行程序。

附:源程序;PROGRAM TITLE GOES HERE—DISPLAY;********************************************************data segmentmess1 db 'please input one character between a-z',13,10,'$'data endscode segmentmain proc farassume cs:code,ds:datastart:push dssub ax,axpush axmov ax,data 。

datarea segment addrmov ds,ax 。

into DS registermov es,ax 。

set ES register to current。

MAIN PART OF PROGRAMlea dx,mess1mov ah,09 。

call DOSint 21hbegin:mov ah,1 。

receive a data from keyboardint 21hcmp al,'a'jb stopcmp al,'z'ja stopsub al,20hmov dl,al 。

show the inputed charactermov ah,2int 21hjmp beginstop:retmain endpcode endsend start六.作业布置<1)完成本实验的实验报告。

<2)针对下一个实验预习课本相关章节;<3)预习实验指导书相关内容,设计上机源程序。

实验三串操作一.实验目的(1)进一步巩固课本中关于串操作指令学习。

(2)掌握用汇编程序设计中字符串的操作方法。

二.实验仪器设备计算机三.实验重点、难点串操作的隐含操作数的变化。

四.实验题目根据自己的情况建立数据段:student_name db ‘ ‘Student_id db ‘ ‘Print_line db 50 dup(?>把student_name移到print_line的前20个字节中,把student_id移到print_line的后10个字节中,并输出字符串print_line.五.实验内容、步骤1.调用EDIT建立ASM源文件。

2.用汇编程序MASM对源文件汇编产生目标文件OBJ。

<如有问题,可用DEBUG调试。

)3.用LINK联接程序产生执行文件EXE。

4.执行程序。

附:源程序;PROGRAM TITLE GOES HERE—DISPLAY;********************************************************data segmentSTUDENT_NAME DB 'LiJingjing'STUDENT_ID DB '04121026','$'PRINT_LINE DB 50 DUP(' '>,'$'data endsprognam segmentmain proc farassume cs:prognam,ds:data,es:datastart:push dssub ax,axpush axmov ax,datamov ds,axmov es,axbegin:lea si,STUDENT_NAME 。

move STUDENT_NAME's content to。

the head of PRINT_LINElea di,PRINT_LINEmov cx,10cldrep movsbstd 。

move STUDENT_ID to the end。

of PRINT_LINElea si,STUDENT_ID+7lea di,PRINT_LINE+49mov cx,8rep movsb。

PRINT STRINGlea dx,PRINT_LINEmov ah,09 。

show the content of print_lineint 21hretmain endpprognam endsend start六.作业布置<1)完成本实验的实验报告。

<2)针对下一个实验预习课本相关章节;<3)预习实验指导书相关内容,设计上机源程序。

实验四循环程序设计一.实验目的(1)学习循环次数确定的循环程序设计方法。

(2)学习循环次数不确定的循环程序设计方法。

二.实验仪器设备计算机三.实验重点、难点多重循环结构的程序设计。

四.实验题目(1)用汇编语言编程实现密码的验证任务,设密码为“3132”H,放在BX中。

(2)验证密码后,要求从键盘输入任意一串字符,碰到‘Q’则结束。

五.实验内容、步骤1.调用EDIT建立ASM源文件。

2.用汇编程序MASM对源文件汇编产生目标文件OBJ。

<如有问题,可用DEBUG调试。

)3.用LINK联接程序产生执行文件EXE。

4.执行程序。

附:源程序;PROGRAM TITLE GOES HERE—DISPLAYdata segmentmess1 db 'please input your password!',13,10,'$' mess2 db 'ok! please input your number:',13,10,'$' data endsprognam segmentmain proc farassume cs:prognam,ds:data,es:datastart:push dssub ax,axpush axmov ax,datamov ds,axmov es,axbegin:lea dx,mess1mov ah,09 。

show the content of print_lineint 21hmov bx,3132hmov ch,2mov dx,0ABC1:mov ah,07hint 21hmov cl,8shl dx,clmov dl,aldec chjnz ABC1cmp dx,bxjnz ABC2lea dx,mess2mov ah,09 。

show the content of print_lineint 21hABC3:mov ah,1int 21hcmp al, 'Q'jz ABC2jmp ABC3ABC2:retmain endpprognam endsend start六.作业布置<1)完成本实验的实验报告。

相关文档
最新文档