汇编语言程序设计 实验1
- 格式:doc
- 大小:26.00 KB
- 文档页数:1
实验一汇编语言的上机过程及指令学习一、实验目的1.学习汇编语言的上机过程;2.学习DEBUG的使用方法;3.学习数据传输指令、算术运算指令的寻址方式、使用方法及对标志寄存器的影响情况。
二、上机环境硬件:PC及兼容微机软件:或或任何文本编辑系统MASM.EXELINK.EXE三、实验内容及步骤1.学习汇编语言的上讥过程:进入MASM文件夹。
(1)建立“*.ASM”文件。
方法是:键入:ED 文件名.ASM回车参考程序如下:;PROGRAM TITLEdata segment ;数据段定义source_buffer db 40 dup(‘a’);源串data endsextra segment ;扩展段定义dest_buffer db 40 dup(?) ;目标串extra endscode segment ;代码段定义main proc far ;主函数assume cs:code,ds:data,es:extra ;段声明start: push ds ;保存返回地址xor ax,axpush axmov ax,data ;数据段寄存器赋值mov ds,axmov ax,extra ;扩展段寄存器赋值mov es,axlea si,source_buffer ;取得源串首地址lea di,dest_buffer ;取得目标串首地址cld ;串传送时地址增量mov cx,40 ;串长40个字符rep movsb ;串传送ret ;返回系统main endpcode endsend start注意:在输入程序的过程中,要用F3_S随时存盘,程序输入完毕后用F3_E命令保存文件并退出编辑系统(也可以使用其他编辑文件,如:TURBO C、TURBO PASCAL、WPS、记事本等均可)。
(2)用MASM汇编程序对刚建立的“*.ASM”文件进行汇编,产生“*.OBJ”目标文件,方法是:键入:MASM 文件名;回车(也可以在文件名后不加“;”,回车后按提示要求进行输入)若有错误,回到第(1)步再用编辑文件进行修改。
实验一基础汇编语言程序设计
一、实验目的
1、学习和了解TEC-XP教学实验系统监控命令的用法;
2、学习和了解TEC-XP教学实验系统的指令系统;
3、学习简单的TEC-XP教学实验系统汇编程序设计;
二、实验内容
1、学习练级使用TEC-XP教学实验系统和仿真终端软件PCEC。
2、使用监控程序R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;
3、使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行改程序,用T、P命令单步运行并观察程序单步执行情况;
三、实验步骤
1、用R命令查看寄存器内容或修改寄存器的内容
2、用D命令显示存储器内容
3、用E命令修改存储器内容
4、用D命令显示着几个单元的内容
5、用A命令键入一段汇编源程序,主要是向累加器送入数据和进行运算,执行程序并观察运行结果。
1)
2)
3)
4)
6、举例编写汇编程序,用“A”命令输入,运行并观察结果
1)、例1:设计一个小程序,从键盘上接受一个字符并在屏幕上输出显示该字符。
2)、例2:设计一个小程序,用次数控制在终端屏幕上输出‘0’到‘9’十个数字符。
实验一单指令功能测试实验一、实验目的1.会使用DEBUG软件;2.利用DEBUG单步执行功能测试指令的执行。
二、实验内容P129,14题三、实验要求:1. 在上机实验之前,首先做完作业;2. 设计如何验证指令执行的正确性操作,并在作业中描述;3. 周五上机验证,并给出上机结果。
若有出入,简要说明原因。
4. 实验报告当堂提交。
实验二完整的汇编语言程序设计实验一、实验目的1.掌握完整的汇编语言源程序的设计方法;2.掌握汇编语言源程序的执行过程。
二、实验内容设计一个程序,将所有的小写字母转换为大学字母,此程序不能改变除字母a~z外的任何其它字符。
三、实验要求(结果)1. 在上机实验之前,首先编写程序;2. 周一上机调试程序,并给出修改、运行正确的源程序;3. 分析错误原因;4. 实验报告当天提交。
实验三子程序设计实验一、实验目的1.掌握汇编语言源程序子程序设计方法;2.会使用CV软件工具。
二、实验内容编写子程序:判断三边能否构成三角形;编写主程序:输入三边,调用子程序判断,若能,则输出“Y”,否则输出“N”。
共判断10次。
三、实验要求同实验二。
实验四 宏汇编程序设计实验一、实验目的1.掌握宏汇编程序编程技术及宏调用的方法;2. 了解浮点CPU 编程方法及特点。
二、实验内容求(1+2+3+4+5+6+7+8+9)⨯LC π21的和。
三、实验要求1. 利用重复宏定义实现1、2、3⋯9数据的定义;2. 编写程序,上机验证结果的正确性。
3. 其它要求同前。
实验五 多模块程序设计实验一、实验目的1.掌握汇编段的属性的含义;2. 掌握利用LINK 将多模块连接起来的方法;3.掌握利用库文件将多模块连接起来的方法。
二、实验内容将字符串反序。
具体要求:1. 子模块:完成反序。
2. 主模块:输入字符串,调用子模块,显示反序后字符串。
3. 用 LINK 或库文件的方法实现多模块连接。
4. 其他要求同前。
实验六 混合程序的开发实验一、实验目的1.了解混合调用中的参数设置;2. 掌握混合调用的方法;二、实验内容求(1+2+3+4+5+6+7+8+9)⨯LC π21的和,并将和显示在屏幕上;具体要求:1. 用汇编语言完成子程序LC π21的编程;2. 通过C++完成实验内容的要求。
汇编语言程序设计实验报告(一)一、实验目的1. 掌握顺序程序设计方法2. 掌握分支程序的结构及分支程序的设计,调试方法3. 学习数据传送及算术和逻辑运算指令的用法4. 熟悉在PC 机上建立、汇编、连接、调试和运行汇编语言程序的过程二、实验内容1. 从键盘上接收一位十进制数X ,计算Y 值,并以十六进制形式显示出来,Y 按下列公式计算。
⎪⎪⎩⎪⎪⎨⎧===-=+=)6(2/)5()4(2)3(2222X X X X X X X X X X Y 2. 从键盘上接收两个一位十六进制数X 和Y ,然后再输入一个A-D 之间的字符,按下列要求计算。
A )当输入字符为A ,则计算X+Y ,并以十六进制形式显示出来B )当输入字符为B ,则计算|X-Y|,并以十六进制形式显示出来C )当输入字符为C ,则计算X*Y ,并以十六进制形式显示出来D )当输入字符为D ,则计算X/Y ,并以十六进制形式显示出来三、实验结果1、结果截图2、结果截图四、源代码1、代码DATA SEGMENTX DB ?TABLE DW L1,L2,L3,L4DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXMOV AH,1INT 21HCMP AL,33HJB L0CMP AL,36HJA L0AND AL,0FHMOV X,ALSUB AL,3SHL AL,1XOR AH,AHMOV BX,OFFSET TABLEADD BX,AXJMP [BX]L1:MOV AL,XMUL ALADD AL,XJMP L7MUL ALSUB AL,XSUB AL,XJMP L7L3:MOV AL,XMUL ALJMP L7L4:MOV AL,XMUL ALMOV CL,2DIV CLJMP L7L7:MOV BL,ALMOV CL,4SHR AL,CLCMP AL,9JLE L5ADD AL,7L5:ADD AL,30HMOV DL,ALMOV AH,2INT 21HAND BL,0FHCMP BL,9JLE L6ADD BL,7L6:ADD BL,30HMOV DL,BLMOV AH,2INT 21HL0:MOV AH,4CHINT 21HCODE ENDSEND START2、代码DA TA SEGMENTX DB ?Y DB ?Z DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA START:MOV AX,DATAXOR AX,AXMOV AH,1INT 21HMOV X,ALMOV AH,1INT 21HMOV Y,ALMOV AH,1INT 21HMOV Z,ALMOV AL,XMOV BL,YMOV AH,ZCMP AL,39HJBE M1SUB AL,7M1:SUB AL,30H MOV X,ALCMP BL,39HJBE M2SUB BL,7M2:SUB BL,30H MOV Y,BLMOV AL,XMOV BL,YCMP AH,41HJE L1CMP AH,42HJE L4CMP AH,43HJE L6CMP AH,44HJE L7L1:ADD AL,BLJMP L5L4:CMP AL,BLJA L8SUB BL,ALMOV AL,BLJMP L5L8:SUB AL,BLJMP L5L6:MOV AL,XMUL BLJMP L5L7:XOR AX,AXMOV AL,XDIV BLL5:MOV BH,ALMOV CL,4SHR AL,CLCMP AL,9JLE L2ADD AL,7L2:ADD AL,30HMOV DL,ALMOV AH,2INT 21HAND BH,0FHCMP BH,9JLE L3ADD BH,7L3:ADD BH,30HMOV DL,BHMOV AH,2INT 21HL0:MOV AH,4CHINT 21HCODE ENDSEND START五、实验心得通过本次实验,我对汇编语言程序设计的方法和特点有了一点理解,并有以下心得体会。
汇编语言程序设计实验报告课程名称汇编语言程序设计班级姓名学号指导教师汇编语言程序设计实验一DEBUG 程序使用技巧1.寄存器和内存开始Debug 程序。
输入“Q ” 退出程序。
再次启动Debug。
输入“r ”来显示CPU的当前状态和寄存器中的当前内容。
输入“r AX ”和“1234”,AX 寄存器中的内容变为1234。
输入“r DS ”和“2000”,DS 寄存器中的内容变为2000。
输入“d DS:1000 ”来显示数据段中80H 字节数据,把数据抄在这里:输入“f DS:1000 1100 77 ”再显示一次这80H 字节。
判断这条指令的作用是什么?答:从DS:1000地址七,将1100H字节的内容赋值为77H再输入“d 2000:1000 ”来显示数据段中80H 字节数据。
观察与前面的数据有无不同。
输入“d 1900:0100 ”和“d 1ff0:0100 ”来显示两个存储段中的内容。
比较其中2000:0000 段中的数据。
相同段落中的数据相同么?根据你的观察,得出结论,是否程序员可以用不同的段起始地址和偏移量组合,把不容内容存入相同的内存段中。
答:相同段落中的数据相同, 程序员可以用不同的段起始地址和偏移量组合,把不容内容存入相同的内存段中。
2.输入机器码,使用单步和断点退出Debug,再重新启动Debug。
输入“r ”观察CPU 的状态,下一条指令是什么?答:下一条指令是ADD [BX+SI],AL使用两种方式输入一段程序,第一种方式:直接输入机器码。
输入“u ”来显示程序段中的指令序列。
然后输入“d CS:100 ” 来显示代码段中的数据。
观察显示内容。
“u CS:100 106 ”做反汇编,就是显示出汇编语句。
将这几句汇编语句记录下来:使用输入“r ”观察CPU 的状态,使用“t ”来跟踪程序,直至最后一条指令执行完毕。
注意,跟踪程序前,要让IP 寄存器中的值是100H。
一直监视AX 和IP 寄存器的内容变化,尤其是标志位的变化。
单片机实验1 汇编语言程序设计实验---- 存储器块赋值一.实验目的1 熟悉存储器的读写方法,熟悉51汇编语言结构。
2 熟悉循环结构程序的编写。
3 熟悉编程环境和程序的调试。
二.实验内容指定存储器中某块的起始地址和长度,要求将其内容赋值。
例如将4000H 开始的100个字节内容清零或全部赋值为33H(参考程序),要求根据参考程序修改:修改程序,赋值内容为(10,9,8,7,6,5,4,3,2,1。
)三.实验仪器微机、VW,WAVE6000编程环境软件,(单片机实验箱)仿真器--仿真器设置-选择仿真器选择仿真头选择CPU Lab8000/Lab6000通用微控制器 MCS51实验 8051前3个软件实验勾选√使用伟福软件模拟器四实验步骤注意:1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。
2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。
5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。
编译器默认设置:程序框图参考例程序:Block equ 4000hmov dptr, #Block ; 起始地址mov r0, #10 ; 清10个字节mov a, #33h ; 将33H赋值给aLoop:movx @dptr, a 将a写入外部RAMinc dptr ; 指向下一个地址djnz r0, Loop ; 记数减一ljmp $ ; $当前程序指针相当于一直执行自己;ljmp $ end说明:$:是当前语句的程序指针(地址)相当于一直执行自己:ljmp $,程序死循环要求赋值数据为10,9,8,7,6,5,4,3,2,1则以上程序该如何改动? 自己修改程序实现。
实验报告实验名称汇编语言程序设计||专业班级:信息安全学号:姓名:实验一汇编语言上机过程和Debug常用调试命令一.实验目的:学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。
二.实验题目:熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。
在调试过程中,学习及掌握debug程序的各种操作命令。
三.问题描述:试编写一程序:比较两个字符串string1和string2所含的字符是否相同,若相同则显示‘match’;否则,显示‘no match’。
四.方法说明:a)使用ws、tc或EDIT编辑程序来建立源文件,然后存盘,使系统返回DOS。
b)用汇编程序masm(或asm)对源文件汇编产生目标文件obj如:汇编指示出错则需重新调用编辑程序修改错误,直至汇编通过为止。
c)用连接程序link产生执行文件EXE.d)执行程序,可直接从DOS执行程序。
e)使用debug程序调试程序的方法。
五.实验步骤:1.调用字处理程序EDIT建立以sample.asm文件datarea segmentstring1db‘move the cursor backward.’string2db‘move the cursor backward.’mess1db‘Match..’,13,10,’$’mess2db‘No match!..’,13,10,’$’datarea endsprognam segmentmain proc farassume cs:prognam,ds:datarea,es:datareastart:push dssub ax,axpush axmov ax,datareamov ds,axmov es,axlea si,string1lea di,string2cldmov cx,25repz cmpsbjz matchlea dx,mess2jmp short dispmatch:lea dx,mess1disp:mov ah,09int21hretmain endpprognam endsend start2.对源文件汇编产生目标文件objD:\masm文件名。
汇编语言程序设计实验说明书实验一 DOS常用命令及8088指令使用 (1)实验二内存操作数及寻址方法 (4)实验三数据串传送和查表程序 (6)实验四屏幕字符显示程序 (8)实验五条件转移指令 (10)实验六汇编语言程序上机过程 (13)实验七分枝程序 (15)实验八多重循环程序 (17)实验九子程序 (18)实验十音乐程序 (21)实验十一数码转换程序 (23)实验一 DOS常用命令及8088指令使用实验目的:通过实验掌握下列知识:1、DOS命令: DIR,DEL,RENAME,FORMAT,COPY。
2、8088指令: MOV,ADD,ADC,SUB,SBB,DAA,XCHG3、DEBUG命令: A,D,E,F,H,R,T,U。
4、BCD码,ASCII码及用16进制数表示二进制码的方法。
5、8088寄存器: AX,BX,CX,DX,F,IP。
内容及步骤:一、DOS常用命令练习:1、将机房提供的系统盘插入A驱动器中,开机,出现提示符后打入命令FORMAT B:/S。
等屏幕上出现提示后将新盘插入B驱动器并打回车。
PC机即对新盘格式化并将糸统拷入。
2、打命令 COPY A:*。
* B 将糸统盘上全部文件拷到你的盘上。
3、将新盘插到 A驱动器中,用DIR命令查看盘上文件。
4、用命令 COPY DEBUG。
COM BUG 复制一个文件。
5、用命令 RENAME BUG BG 将BUG 文件改为BG。
6、用命令 DEL BG 将文件BG删除。
在操作时要注意提示信息,并按提示操作。
二、DEBUG 命令使用:1、打 DEBUG 进入 DEBUG 控制,显示提示苻 '_ '。
2、用命令 F100 10F 'A' 将'A'的ASCII码填入内存。
3、用命令 D100 10F 观察内存中的16进制码及屏幕右边的ASCII字符。
4、用命令 F110 11F 41 重复上二项实验,观察结果并比较。
实验一汇编语言程序设计EMU8086基础实验1、实验目的和要求:了解使用EMU8086(8086汇编模拟工具)学习汇编的方法。
2、实验内容:编写汇编程序,计算2010H+2011H,并把和存入RESULT单元。
8086汇编模拟工具,结合了一个先进的原始编辑器、汇编器、反汇编器、具除错功能的软体模拟工具(虚拟 PC),还有一个循序渐进的指导工具。
这对刚开始学汇编语言的人会是一个很有用的工具。
它会在模拟器中一步一步的编译程式码并执行,视觉化的工作环境让它更容易使用。
你可以在程式执行当中检视暂存器、标志以及内存。
模拟器会在虚拟 PC 中执行程式,这可以隔绝你的程式,避免它去存取实际硬体,像硬盘、内存,而在虚拟机器上执行汇编程序,这可以让除错变得更加容易。
3、实验仪器与器材:计算机及EMU8086汇编软件等。
4、实验原理:自己总结5、实验过程与测试数据(含电路图/程序框图):A、打开EMU8086 v4.08软件,新建工程,选EXE模板,清屏,编写8086程序代码。
B、保存程序代码为*.asm文件,编译保存为可执行文件.exe,编译保存没有错误则模拟运行。
如果有错误返回修改。
运行有单步运行、全速运行等。
实验一参考程序DATA SEGMENTX DW 2010HY DW 2011HRESULT DW ?DATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV AX,XADD AX,YMOV RESULT,AXRETMAIN ENDPCODE ENDSEND START6、实验分析:自己分析7、实验体会自己总结。
实验五汇编语言程序设计实验(一)一、实验目的1、了解和掌握汇编语言子程序和主程序的设计。
2、掌握循环程序的设计。
3、掌握汇编语言主程序与子程序的调用和参数传递。
4、进一步熟悉在PC机上建立,汇编,链接,调试和运行8086、8088汇编语言程序的过程。
二、实验内容1、复习汇编语言源程序的上机过程:2、编写一个完整程序(包含循环设计和子程序设计)在以strg为首地址的缓冲区中存放着1个字符串,以-1作为结束标志,编程统计字符串长度,并将结果存入lenth单元。
要求统计字符串用子程序完成。
data segmentstrg db ‘abcd’,-1lenth dw ?data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea dx,strgcall scountmov lenth,bxmov ah,4chint 21hscount proc nearpush sixor bx,bxmov si,dxnext:cmp byte ptr[si],-1jz overinc bxinc sijmp nextover:pop siretscount endpcode endsend start三、实验器材IBM PC 微机一台四、实验要求1、正确理解本次实验的目的,内容和原理。
2、能编写相应的程序五、实验报告要求完成下面任务:从键盘输入1个长度小于100的字符串,存入以buff 为首地址的缓冲区,其中如有大写字母,要求用子程序转换成小写字母,字符串以回车键作为结束。
写出操作步骤,程序清单,程序注释,实验现象。
汇编语言实验一上机一 EDIT、MASM、LINK、DEBUG程序的使用一、实验目的1.熟悉使用DOS命令:DIR,CD等命令的使用;2.熟悉建立、汇编、连接、调试和运行汇编语言程序的过程。
3. 掌握调试程序DEBUG中的U、G、Q命令的使用。
二、实验内容1.四个要使用到的程序文件用DIR和CD命令找出汇编程序设计工作环境中的4个必要的程序文件:(这4个文件在c:\cai\masm文件夹中), MASM.EXE, LINK.EXE, 2.编辑、汇编、连接和执行程序(操作时要注意路径)。
程序如下:3. Debug命令的使用用U、G、Q命令调试程序。
三、实验过程总的来说,整个过程分为以下几步:1、输入程序(使用到,也可以使用记事本) → 3、编辑程序(使用到MASM.EXE) → 3、连接程序(使用到LINK.EXE,) →4、运行程序(使用到)1.用EDIT编辑源程序(也可以用记事本输入,存盘后再改名),启动EDIT编辑器有两种方法:●在DOS状态下:C:\>EDIT●在windows状态下:开始---运行(运行对话框中输入“EDIT”)①屏幕显示EDIT的编辑界面;②选择File菜单→New命令(激活菜单项用”Alt”键),输入源程序清单。
③待程序输入完后,存盘,文件名为:D:\EX1.ASM。
(注意:扩展名一定为ASM)余下操作在Dos下进行:启动Dos窗口方法:”开始”---“程序”---“附件”---“命令提示符”如图所示:2. 利用宏汇编程序MASM 对EX1.ASM 进行汇编。
(MASM.EXE, LINK.EXE, 都放在c:\cai\Masm 文件夹中,使用时要注意路径)操作如下:① 进入到汇编程序所在文件夹,如图所示:② 将汇编源程序ex1.asm 汇编成目标程序ex1.obj,方法:输入masm d:\ex1.asm 按回车,如图所示:③ 余下操作阅读教材P52~P54。
汇编语言程序设计上机实验指导一、实验目的1.掌握汇编语言的基本原理和编程技巧。
2.加深对计算机系统结构的理解。
3.培养实验操作和编程能力。
二、实验环境1.所需软件:MARS仿真器。
2.操作系统:任意支持MARS仿真器的操作系统。
三、实验内容1.实验一:编写一个简单的汇编语言程序,实现加法运算。
(1)要求用户输入两个整数。
(2)将两个数相加。
(3)输出两个数的和。
2.实验二:编写一个汇编语言程序,实现乘法运算。
(1)要求用户输入两个整数。
(2)将两个数相乘。
(3)输出两个数的乘积。
3.实验三:编写一个汇编语言程序,实现判断一些数是否为质数。
(1)要求用户输入一个整数。
(2)判断该整数是否为质数。
(3)输出判断结果。
4.实验四:编写一个汇编语言程序,实现打印从1到N之间的所有质数。
(1)要求用户输入一个整数N。
(2)打印出从1到N之间的所有质数。
四、实验步骤1.打开MARS仿真器,创建一个新的程序。
2.按照实验要求,编写汇编语言程序代码。
3.在MARS仿真器中调试和运行程序。
4.检查程序输出结果是否与预期相符。
5.优化程序代码,提高程序的效率和性能。
五、实验注意事项1.确保编写的代码逻辑正确、语法规范。
2.程序设计要遵循模块化设计原则,尽量将程序划分为多个模块,提高程序代码的可读性和维护性。
3. 实验过程中要注意调试程序,排除可能出现的bug。
4.在程序编写过程中,保持良好的编程习惯,合理命名变量和子程序,提高代码的可读性。
六、实验总结1.实验报告中需包含实验的目的、内容、步骤、注意事项等内容。
2.分析并总结实验中遇到的问题和解决方法。
3.对实验过程、结果的合理性进行分析和讨论。
4.提出对实验中存在问题的改进建议。
以上就是一份汇编语言程序设计上机实验指导的内容。
希望这份指导能够帮助学生们更好地进行汇编语言程序设计的实验,提高他们的实践能力和编程水平。
《汇编语言程序设计》实验报告院系专业年级学号姓名目录实验1 Masm6.11的使用方法............................................ 错误!未定义书签。
实验2 比较两个字符串的大小 . (9)实验3 求学生名次 (16)实验4 求员工年工作量 (29)实验5 子程序和主程序之间的参数传递 (37)实验6 C语言和汇编语言混合编程下的排序算法 ......................................... .42实验7 采用汇编语言对C语言函数调用的方法求平均数.. (46)实验一 Masm6.11的使用方法一、实验目的1、创建一个新的汇编语言程序,熟练掌握汇编语言开发工具的使用方法,并对开发环境中一些坏境变量进行设置。
2、创建一个工程文件,对该工程文件进行编译,连接,并运行;3、对建立的工程文件进行调试,在运行过程中查看各个寄存器的值,内存单元的值等。
二、实验环境该试验包括的硬件和软件条件如下:1、硬件环境(1)Intel i5 3317U(2)内存4G2、软件环境(1)Window XP Professor(2)MASM6.11开发软件三、实验步骤1、将Masm6.11安装程序拷贝到D盘根目录下,并执行d:\Masm611目录下Setup.exe文件,按照安装提示将程序安装到C盘根目录。
2、将C:\masm611\Bin目录下的所有文件拷贝到C:\Masm611\binr目录下,将C:\Masm611\help目录下的所有文件拷贝到c:\Masm61\binr目录下。
3、执行C:\Masm611\Binr目录下的pwb.exe文件,打开开发环境。
4、在PWB编辑窗口中输入实验1.1中的程序,并保存为test.asm文件。
5、执行Project菜单下New Project子菜单创建一个新的工程文件,并命名为test.mak,将test.asm文件加入到该工程文件中。
实验一汇编语言上机环境及基本操作一、实验目的及要求1.学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互之间的关系。
2.学会使用EDIT、MASM、LINK、DEBUG等软件工具。
3.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。
二、实验内容1.汇编语言源程序的建立本例中给出的程序是要求从内存中存放的10个无符号字节整数数组中找出最小数,将其值保存在AL寄存器中。
设定源程序的文件名为ABC。
DATA SEGMENTBUF DB 23H,16H,08H,20H,64H,8AH,91H,35H,2BH,7FHCN EQU $-BUFDATA ENDSSTACK SEGMENT STACK ’STACK’STA DB 10 DUP(?)TOP EQU $-STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: PUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV BX,OFFSET BUFMOV CX,CNDEC CXMOV AL,[BX]INC BXLP: CMP AL,[BX]JBE NEXTMOV AL,[BX]NEXT: INC BXDEC CXJNZ LPMOV AH,4CHINT 21HCODE ENDSEND START键入以下命令:C:\>EDIT ABC.ASM此时屏幕的显示状态如图1所示。
图1 用EDIT编辑ABC.AS M程序窗口程序输入完毕后一定要将源程序文件存入盘中,以便进行汇编及连接,也可以再次调出源程序进行修改。
2.将源程序文件汇编成目标程序文件一般情况下,MASM汇编程序的主要功能有以下3点:(1)检查源程序中存在的语法错误,并给出错误信息。
(2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.OBJ。
(3)若程序中使用了宏指令,则汇编程序将展开宏指令。
汇编语言编程实验报告汇编语言程序设计实验报告(一)汇编语言程序设计实验报告(一)一、预备知识汇编语言程序设计是一门实践性很强的课程。
编写程序、上机调试、运行程序是进一步学习和掌握汇编语言程序设计的必要手段。
二、实验目的1、掌握实验运行汇编语言所用的计算机机型2、熟悉常用编辑程序(行编辑程序EDLIN、全屏幕编辑程序QE及其它用于文件编辑的应用程序。
)3、掌握汇编程序ASM、宏汇编程序MASM1.0以上。
4、LINK连接程序5、DEBUG调试程序三、汇编语言源程序上机操作过程2、编辑源文件根据给定的任务,可编写程序。
如果经过检查认为所编程序无错时,就可在计算机上通过编辑程序建立源程序文件了。
一般在编辑过程中总会有错误产生,因此还要进行人工检查、修改以致重新编辑,直到所编辑的源程序无误为止,然后以一个源程序文件(ASM文件)存盘。
将包含QE文件的工作磁盘插入驱动器A:。
进入QEA\QE进入全屏幕后可以开始编程。
文件名取为Myprog。
asm;Ddisplystring (09H)CODESEGMENTPUBLICASSUME CS:CODE,DS:CODEORG 100HSTART:JMP BEGINMSG DB‘Hi ! This ia a dollar sign terminated string.’,’$’BEGIN:MOV AX,CS ;set up to display messageMOV DS,AXMOV DX,OFFSET,SG ;set up to display messageMOV AH,09H;display string function requestINT 21H ;call DOSMOV AH ,4CH ;terminate propram funct requestINT 21H ;Call DOSCODE ENDS;end of code segmentEND START;strat is the entry point输入完毕后,按ALT---X,存盘返回DOS3、汇编源程序文件(ASM,MASM)由编辑程序所建立的ASM文件只是个文本文件,计算机无法执行。
汇编语言程序设计实验1——汇编程序与调试器的使用
一、实验目的
熟悉DOS操作系统环境下的汇编程序MASM的使用、掌握DEBUG的基本命令及其功能。
二、实验内容
1.编写一个小程序,从键盘接收一个大写字母,存放到指定的内存单元BUFF1,并转换其为对应的小写字母,存放到指定的内存单元BUF2中。
上机编辑、汇编、连接并运行该程序。
2. 输入源程序、汇编、连接并执行相应程序,并用DEBUG 实现以下操作:
(1)用反汇编命令查看相应程序的可执行语句序列,分析其与源程序的异同,查看相应程序占用内存单元的字节数。
(2)用数据查看命令查看执行前的数据单元的内容。
(3)分别用P命令和T命令逐步执行程序,分析这两种方式的区别,记录“转换为小写字母”指令执行后的状态字。
(4)查看程序执行后数据单元的内容。
(5)查看0000:0000 起始的32个单元的内容。
(6)用汇编命令编写一个简单加法程序“3+5=8”,加数和结果分别存在内存单元NUM1、NUM2、NUM3中。
三、实验要求
学生要提前做好相关内容的预习(包括源程序的分段组织、DEBUG的系列命令等),熟悉被调试的程序(学生应当在本实验中自行设计一些汇编语言程序,其目的是熟悉相关编程环境的特性),并对程序的测试/调试过程(包括所用的编程环境命令、DEBUG命令等)作出详细计划。
认真完成实验,正确记录各项数据,记录实验过程中出现的问题及其解决过程。
四、实验报告
写出各实验程序的测试/调试的详细过程(包括DEBUG命令的使用等),特别是要写出在DEBUG状态下编写、运行程序的过程。
要系统给出各程序在测试/调试过程中所遇到的问题、解决问题的方法与途径。
要对程序在测试/调试过程中的问题进行分析,对相关的执行结果进行分析。