宏汇编(MASN)及汇编语言上机过程实验报告
实验三 宏汇编语言程序上机过程及调试1

实验三宏汇编语言程序上机过程及调试一、实验目的:1、掌握常用工具软件 EDIT,MASM和LINK的使用。
2、伪指令: SEGMENT,ENDS,ASSUME,END,OFFSET,DUP。
3、利用的 1号功能实现键盘输入的方法。
4、了解.EXE文件和.COM文件的区别及用INT 21H 4C号功能返回系统的方法。
二、宏汇编调试步骤:1、输入程序:用文字编辑工具(记事本或EDIT)将源程序输入,命名为*.ASM,保存到c:\masm5目录中;2、进入dos命令行:开始\运行\cmd 回车;3、进入masm目录:在dos操作符下键入 cd c:\masm5 回车;4、编译文件:在dos操作符下键入 masm *.asm,生成*.OBJ文件和*.LST文件;5、链接文件:在dos操作符下键入 link *.Obj,生成可执行文件*.exe6、运行:在dos操作符下键入 *.exe程序:data segmentmessage db 'This is a sample program of keyboard and disply'db 0dh,0ah,'Please strike the key!',0dh,0ah,'$' data endsstack segment para stack 'stack'db 50 dup(?)stack endscode segmentassume cs:code,ds:data,ss:stackstart: mov ax,datamov ds,axmov dx,offset messagemov ah,9int 21hagain: mov ah,1int 21hcmp al,1bhje exitcmp al,61hjc ndcmp al,7ahja ndand al,11011111bnd: mov dl,almov ah,2int 21hjmp againexit: mov ah,4chint 21hcode endsend start三、实验内容:1、分析程序实现功能;2、调试所给程序;记录运行结果3、将上述程序修改为:在屏幕上显示标题并提示你按键,每按一键在屏幕上显示二个相同的字符,将小写字母改成大写字母。
汇编语言——实习报告

汇编语言——实习报告在大学的学习生涯中,我有幸参与了一次关于汇编语言的实习。
通过这次实习,我对汇编语言有了更深入的理解和掌握,也积累了宝贵的实践经验。
一、实习目的本次实习的主要目的是让我们熟悉汇编语言的编程环境和基本语法,掌握汇编语言程序的设计和调试方法,提高我们的编程能力和解决问题的能力。
同时,通过实际的项目开发,培养我们的团队合作精神和创新意识。
二、实习环境我们使用的编程环境是 MASM(Microsoft Macro Assembler),这是一款功能强大的汇编语言编译器。
同时,我们还使用了一些调试工具,如 DEBUG 和 CodeView,来帮助我们查找和解决程序中的错误。
三、实习内容1、基础语法学习在实习的初期,我们首先学习了汇编语言的基础语法,包括数据类型、寄存器的使用、指令系统等。
通过大量的示例代码和练习,我们逐渐掌握了如何使用汇编语言进行基本的算术运算、逻辑运算和数据传输。
2、程序设计与实现在掌握了基础语法之后,我们开始进行程序设计和实现。
我们先后完成了一些简单的程序,如加法器、减法器、乘法器等。
在这个过程中,我们不仅要考虑程序的功能实现,还要注意代码的优化和效率。
3、系统调用和中断处理接下来,我们学习了如何在汇编语言中进行系统调用和中断处理。
通过使用系统提供的中断服务例程,我们实现了一些与操作系统交互的功能,如文件操作、控制台输入输出等。
4、项目开发在实习的后期,我们分组进行了一个小型的项目开发。
我们的项目是开发一个简单的操作系统内核,包括进程管理、内存管理、文件系统等模块。
在项目开发过程中,我们充分发挥了团队合作的精神,每个人负责一个模块的设计和实现,然后进行整合和调试。
四、实习中遇到的问题及解决方法1、语法错误在编写汇编代码时,由于对语法规则的不熟悉,经常会出现语法错误。
例如,忘记在指令后面添加操作数、寄存器的使用错误等。
对于这些错误,我们通过仔细检查代码和参考教材中的语法规则,逐步找出并改正了错误。
(最新版)汇编语言实验报告

汇编语言课程设计学院:专业:姓名:学号:汇编语言是计算机专业的一门重要的专业基础课,主要介绍汇编语言程序设计的基本原理和方法。
汇编语言是一门理论性和实践性较强的课程,辅助课堂教学的实验有助于帮助学生理解汇编语言的基本原理,锻炼学生的动手能力,提高学生的综合应用知识的能力。
目录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命令(将指令直接汇编成机器码输入到内存中。
微机原理实验报告_2

实验一汇编语言的编译、链接和调试一、实验目的1、学会使用masm对汇编源程序进行编译、链接、调试、运行。
2、掌握汇编语言的程序格式。
3、巩固所学的汇编语言指令。
二、实验环境1、硬件:PC 微机2、软件:宏汇编MASM 软件三、实验原理1、汇编语言程序的上机与处理过程2、汇编语言的程序格式(1)汇编程序一般由若干段组成,每个段都有一个名字,以SEGMENT作为段的开始,以ENDS作为段的结束,这两者前要冠以相同的名字作为段名。
(2)代码段和堆栈段必不可少,数据段和附加段可根据需要设置。
堆栈段的SEGMENT之后有关键字STACK。
代码段中有伪指令ASSUME告诉汇编程序,在各种指令执行时所要访问的各段寄存器将分别对应哪一段。
(3)源程序的每一段是由若干行汇编语句组成,每一行只有一条语句,且不能超过128个字符,但一条语句允许有后续行,最后均以回车结束。
(4)整个源程序必须以END语句结束,它通知汇编程序停止汇编。
四、实验内容进入DOS环境中相应的目录下。
如汇编软件的文件来为:D:\MASM,则对应的操作为(1)选择windows的“开始”→“程序”→“附件”→“命令提示符”(2)在DOS命令提示符下输入如下命令(其中带下划线部分为输入内容)。
C:\Documents and Settings\new>D:D:\>CD MASMD:\MASM>EDIT TEXT.ASM进入编辑程序,在其环境下输入编好的源程序,然后在盘上生成一个扩展名为.asm的文件。
程序示例DATA SEGMENTDA1 DB 10H,20H,30H,40HDA2 DB 0F0H,0B0H,0A0H,90HDA3 DB 00H,00H,00H,00HDATA ENDSSTACK1 SEGMENT PARA STACKDB 10 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATAMOV DS,AXMOV AL,[DA1]ADD AL,[DA2]MOV [DA3],ALMOV AL,[DA1+1]ADC AL,[DA2+1]MOV [DA3+1],ALMOV AL,[DA1+2]ADC AL,[DA2+2]MOV [DA3+2],ALMOV AL,[DA1+3]ADC AL,[DA2+3]MOV [DA3+3],ALCODE ENDSEND START3. 用宏汇编程序MASM,将扩展名为.ASM的源程序汇编成目标程序,即生成盘上扩展名为.OBJ的文件。
汇编实验报告一

汇编语言程序设计实验报告实验名称上机过程及顺序结构与分支结构程序设计实验班级学号姓名日期成绩评阅人软件学院一、实验目的与意义1、掌握汇编语言程序设计的基本方法和技能;2、熟练掌握使用全屏幕编辑程序EDIT编辑汇编语言源程序;3、熟练掌握宏汇编程序MASM的使用;4、熟练掌握连接程序LINK的使用;5、学习数据传送及算数和逻辑运算指令的用法;6、掌握分支程序的结构;7、掌握分支程序的设计、调试方法;8、熟悉在PC机上建立、汇编、连接、调试和运行8086汇编语言程序;二、实验环境操作系统:Windows XP调试软件:Edit Plus 3,MASM 5.0上机地点:综合楼311三、实验的预习内容(1)熟悉上机练习过程和伪指令实验实验预习内容:在实验前,充分熟悉Edit Plus 3的环境以及配置方法,熟悉各种debug 的常用指令:U、D、T、P、G、A、E及R命令的使用和含义,了解数据传送指令和算数以及逻辑运算指令的用法,在理论上了解数据的存储情况以及DD,DB,DW伪指令的用法和含义。
实验思路:按照书上的程序打入代码,进行汇编、连接和运行程序查看此时程序的运行情况,之后进入debug界面,分别使用U、D、T、P、G、A、E及R命令等常用指令,可查看此时的程序的执行状况以及此时寄存器的存储情况以及对于内存的使用情况。
程序一流程图:程序二流程图:(2)顺序结构程序设计实验实验预习内容:在实验前了解十进制,十六进制和ASCII 码之间的转换,了解如何从键盘中输入字符和回车换行,以及在屏幕中显示的汇编指令。
实验思路:从键盘中输入要计算的数字,将其进行平方运算,利用计算得到数字,了解十进制数字、十六进制数字与其对应ASCII 码的转换方法,将数字显示到屏幕上。
程序流程图:(3)分支程序设计实验实验预习内容:在实验前了解分支结构的特点,明白跳转指令和程序转移指令的使用的使用,以及两个数进行比较后各个标志位的变化。
汇编实验1报告

实验一认识汇编、熟悉环境1、实验目的熟悉使用宏汇编程序MASM汇编,并运用源程序的方法,掌握使用该方法的上机步骤,并将预先编好的程序上机调试运行。
了解并掌握汇编程序的输入,调试和运行过程。
搞清程序在运行中,寄存器、存储单元以及状态标志的影响变化。
2、实验要求通过对以及上机实验,查看显示结果,熟悉MASM的基本界面以及程序编译运行过程。
3、实验补充Debug 常用命令:A 汇编,直接输入汇编语句R 查看、改变CPU寄存器的内容r 寄存器D 查看内存中的内容 d 段地址:偏移地址T 单步执行一条机器指令P 单步执行,与T的区别是直接跳过循环,不跟踪子程序G 执行到断点后停止4、实验内容(1)输入以下程序,编译并运行,查看显示内容,并将内容记在实验报告上。
(2)如果要使窗体显示;1+1=2Oh! You are right!程序将改成什么样?(3)更改程序,使得自己的名字(拼音)出现在窗体中。
(4)将下面源程序粘贴在新文件中:CODES SEGMENTSTART:mov AX,0MOV AL,18HADD AL,0FCHCODES ENDSEND START首先自己预判加法运行后6个标志位的变化。
写在实验报告中。
(5)保存文件为test2。
预判运行ADD语句后SF,ZF,CF,AF,OF,PF标志位的值,记录下来。
根据下表,在DEBUG中显示的8个标志位:.输入t命令跟踪运行后,查看到计算完后各个寄存器以及标志位的值,截图下来。
看看与自己的预判一不一致,不一致的话自己查找原因。
运用DEBUG 的命令进行调试、查看内存等功能。
5、实验学时:4学时。
填写实验报告,上传到FTP服务器。
贵州民族大学信息工程学院计算机科学与技术系上机实验报告)如果要使窗体显示;1+1=2等语句。
宏汇编(MASN)及汇编语言上机过程实验报告

佛山科学技术学院实验报告课程名称汇编语言程序设计实验项目实验一宏汇编(MASN)及汇编语言上机过程专业班级 13 网络工程班姓名学号指导教师杨定安成绩日期2015.10. 25一、实验目的1.通过实验了解和熟悉微机系统的配置。
2.学习在DEBUG状态下输入汇编源程序的方法。
3.初步掌握调试(在DEBUG状态下)的过程。
二、实验原理1. 本实验要求在DEBUG状态下输入汇编源程序,并用DEBUG命令进行调试。
用单步跟踪的方法验证指令的功能。
2. 以下是给定的参考程序,并在实验时在每条指令的“;”符号右边按要求填写指令的执行结果。
注:⑴微机进入DEBUG状态下之后,一切立即数和地址数据均被默认为十六进制数,在输入时数的后面不加后缀“H”;⑵在DEBUG状态下执行程序时,“INT 20H”指令可使系统执行完该指令前的程序时返回到“-”提示符状态,并且恢复CS和IP寄存器原来的值。
三、实验仪器微机一台,U盘一块。
四、实验步骤1.开机和关机操作顺序开机:先打开微机外部设备电源开关,如显示器,最后打开主机电源开关。
关机:与开机相反,先关掉主机电源开关,然后关闭所有外设的电源开关。
2. 装入DEBUG程序若计算机系统启动正常,可以进入MASM文件夹或MASM5文件夹从磁盘上调用DEBUG,程序到内存。
如是WINDOWS环境下,先运行CMD命令,然后运行CD MASM命令,再运行DEB2000命令。
一般C盘上装有DEBUG和DEB2000软件,若没有,可以用复制命令从其它盘拷贝过来,然后从装有DEBUG 和DEB2000软件的磁盘上调用DEBUG和DEB2000软件程序。
例如:C :\MASM> DEB2000↙(↙回车符)-(-DEBUG 提示符)当显示器出现提示符“-”时,说明已进入DEBUG状态,这时,可用DEBUG命令进行操作。
4. 用DEBUG的Register命令检查所有寄存器内容,并作记录,主要是R命令5. 用DEBUG的Assemble命令输入汇编源程序。
实验2— 汇编语言上机过程

实验2 汇编语言上机过程一、实验目的掌握汇编语言上机过程,熟练使用EDIT,MASM,LINK,DEBUG命令。
二、实验内容在显示器上显示一段字符串。
三、实验步骤1、进入DOS ,输入D:回车2、输入D:\>CD MASM5输入D:\MASM5>EDIT 123.ASM此时进入EDIT全屏编辑窗口。
输入源程序,并且存盘。
ALT键可以激活菜单,打开FILE下拉菜单中的SA VE或SA VE AS保存编辑好的文件,然后退出。
此时,源程序建立完毕。
3、用MASM产生OBJ文件输入MASM 123.ASM 回车第一个是OBJ文件,回车确定,即建立目标文件。
第二个是LIST列表文件,它同时列出源程序和机器码程序清单,并给出符号表,如需要可输入123.LST,不需要直接回车。
第三个CRF文件用来产生交叉引用表,一般程序不需要建立此文件,直接回车。
注:警告错误和严重错误必须都为0,编译才算通过,如不为0,则记住错误行号,返回EDIT 修改程序,然后再编译。
4、用LINK程序产生EXE文件输入LINK 123.OBJ 回车LINK有两个输入文件OBJ(目标文件)和LIB(库文件),无特殊需要,对LIB直接回车。
LINK的输出文件,一个是EXE文件,另一个是MAP文件,它是连接文件的列表文件,称为连接映象,它给出每个段存储器的分配情况。
如没有严重错误,将产生EXE文件,如有错误重新执行步骤2、3、45、程序执行输入123.EXE 回车查看屏幕显示,是否和预期结果一致。
四、程序清单DA TA SEGMENTBUFF DB 'How are you!','$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DATAMOV DS,AXMOV AH,9HMOV DX,OFFSET BUFFINT 21HMOV AX,4C00HINT 21HCODE ENDSEND START。
汇编语言程序设计实验报告(一)

汇编语言程序设计实验报告(一)一、预备知识汇编语言程序设计是一门实践性很强的课程。
编写程序、上机调试、运行程序是进一步学习和掌握汇编语言程序设计的必要手段。
二、实验目的1、掌握实验运行汇编语言所用的计算机机型2、熟悉常用编辑程序(行编辑程序EDLIN、全屏幕编辑程序QE及其它用于文件编辑的应用程序。
)3、掌握汇编程序ASM、宏汇编程序MASM1.0以上。
4、LINK连接程序5、DEBUG调试程序三、汇编语言源程序上机操作过程2、编辑源文件根据给定的任务,可编写程序。
如果经过检查认为所编程序无错时,就可在计算机上通过编辑程序建立源程序文件了。
一般在编辑过程中总会有错误产生,因此还要进行人工检查、修改以致重新编辑,直到所编辑的源程序无误为止,然后以一个源程序文件(ASM文件)存盘。
将包含QE文件的工作磁盘插入驱动器A:。
进入QEA>\QE进入全屏幕后可以开始编程。
文件名取为Myprog。
asm;Ddisply string (09H)CODE SEGMENT PUBLICASSUME 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

汇编语言上机实验报告1汇编语言上机实验报告1实验内容:1.编写一个程序,求解给定整数的阶乘并输出结果。
2.编写一个程序,求解斐波那契数列中的第n个数并输出结果。
实验步骤:1.阶乘程序:编写一个汇编程序,通过输入一个整数n,求解n的阶乘。
程序流程如下:1.1.定义变量n,用于保存输入的整数。
1.2.将n与0进行比较,如果n为0,则直接将1输出作为阶乘的结果,并跳转到程序结束;否则继续执行下一步。
1.3.将n的值保存到寄存器中,并将n减1,保存到n中。
1.4.将n与0进行比较,如果n为0,则直接跳转到程序结束;否则继续执行下一步。
1.5.将n的值与寄存器中保存的值相乘,将结果保存到寄存器中。
1.6.将n减1,保存到n中并跳转到第4步。
1.7.输出寄存器中的结果作为阶乘的结果,并跳转到程序结束。
2.斐波那契数列程序:编写一个汇编程序,通过输入一个整数n,求解斐波那契数列中的第n个数。
程序流程如下:2.1.定义变量n,用于保存输入的整数。
2.2.将n与0进行比较,如果n为0,则直接将0作为结果输出,并跳转到程序结束;否则继续执行下一步。
2.3.将n与1进行比较,如果n为1,则直接将1作为结果输出,并跳转到程序结束;否则继续执行下一步。
2.4.将n的值保存到寄存器中,并将n减1,保存到n中。
2.5.将n与0进行比较,如果n为0,则跳转到第9步;否则继续执行下一步。
2.6.将n减1,保存到n中并跳转到第7步。
2.7.将n的值与寄存器中保存的值相加,将结果保存到寄存器中。
2.8.将n减1,保存到n中并跳转到第5步。
2.9.输出寄存器中的结果作为斐波那契数列中第n个数的结果,并跳转到程序结束。
实验结果:1.阶乘程序运行结果:请输入一个整数:55的阶乘为:1202.斐波那契数列程序运行结果:请输入一个整数:6斐波那契数列中第6个数为:8实验总结:通过本次实验,我学习了如何在汇编语言中编写程序解决一些基本的数学问题。
汇编语言实验报告

实验一汇编程序的汇编及运行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、将数据段输入,取名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)编写源程序。
汇编语言上机实验报告

汇编语言上机实验报告实验时间:XXXX年XX月XX日实验课程:XXXXX实验室地点:XXXXX一、实验目的:1.熟悉汇编语言的基本语法和指令格式;2.掌握汇编语言程序的编写和调试方法;3.理解汇编语言与计算机硬件之间的关系。
二、实验设备与环境:1.实验设备:个人计算机或计算机终端;2. 实验环境:汇编语言开发工具,如Masm、TASM等。
三、实验内容:本实验通过编写汇编语言程序,实现以下功能:1.输入两个整数,求出其和并输出;2.输入一个正整数,判断其是否为素数并输出结果;3.输入一段字符串,判断其中是否存在一些字符,并输出字符的位置。
四、实验原理与方法:1.汇编语言基本语法:包括数据定义、指令格式、寄存器、标志位等;2.输入输出操作:通过中断调用实现从键盘输入、向屏幕输出;3.常用指令:包括数据传送指令、算术运算指令、逻辑运算指令等;4.判断与分支:通过条件判断指令实现程序流程控制。
五、实验步骤:1. 打开汇编语言开发工具,新建文件,并保存为.asm文件;2.编写程序,包括数据定义、指令编写等;3.进行程序调试,检查程序的正确性和运行结果;4.运行程序,查看程序的输出结果;5.对程序进行优化,确保程序的效率和稳定性;6.编写实验报告,记录实验过程和结论。
六、实验结果与数据分析:1.第一个功能的结果:输入两个整数进行相加并输出;2.第二个功能的结果:输入一个正整数,判断是否为素数并输出结果;3.第三个功能的结果:输入一段字符串,判断是否存在一些字符,并输出字符的位置。
七、实验总结:通过本次实验,我对汇编语言的基本语法和指令格式有了更深入的了解,掌握了汇编语言程序的编写和调试方法,加深对汇编语言与计算机硬件之间关系的理解。
在实验过程中,我遇到了一些困难和问题,但通过不断学习和尝试,最终解决了这些问题。
通过实验,我对汇编语言的应用有了更深入的认识,并体会到了编程的乐趣和挑战。
实验完成后,我深刻感受到了汇编语言的底层性能和灵活性,同时也意识到了其编码复杂和调试困难的一面。
实验二 汇编语言程序上机过程及调试

实验报告二课程微机原理实验名称汇编语言程序上机过程以及调试第页专业电子信息班级__ __ 学号_ __ 姓名实验日期: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;源程序结束注:源程序中的每一行注释语句前一定要加分号‘;’,下同。
微机原理汇编语言的上机过程 实验报告

微机原理技术与接口实验报告学院:专业:班级:姓名:学号:汇编语言程序的上机过程实验目的通过简单地操作了解汇编语言程序的基本内容,体会汇编语言的运行,为以后的实验打下一定的基础。
实验原理及操作步骤一、上机环境要运行调试汇编语言程序,至少需要以下程序文件:▪编辑程序:或其他文本编辑工具软件,用于编辑源程序。
▪汇编程序:MASM.EXE,用于汇编源程序,得到目标程序。
▪连接程序:LINK.EXE,用于连接目标程序,得到可执行程序。
▪调试程序:DEBUG.EXE,用于调试可执行程序。
二、上机过程汇编语言程序上机操作包括:编辑、汇编、连接和调试几个阶段。
1.编辑源程序用文本编辑软件创建、编辑汇编源程序。
常用编辑工具有:、记事本、Word等。
无论采用何种编辑工具,生成的文件必须是纯文本文件,所有字符为半角,且文件扩展名为.asm(文件名不分大小写,由1~8个字符组成)。
2.汇编用汇编工具对上述源程序文件(.asm)进行汇编,产生目标文件(.obj)等文件。
汇编程序的主要功能是:检查源程序的语法,给出错误信息;产生目标程序文件;展开宏指令。
汇编过程如下:在DOS状态下,输入命令:MASM MYFILE.ASM(回车),即启动了汇编程序。
此命令执行后,会出现下面的3行信息,依次按回车键(即选择默认值)即可建立3个输出文件,其扩展名分别为:.OBJ(目标文件),.LST(列表文件)和.CRF(交叉引用文件)。
Object Filename [MYFILE.OBJ]:Source Listing [Nul.LST]:Cross Reference [Nul.CRF]:依次按回车键,进行选择后,汇编程序就对汇编源程序进行汇编。
如果汇编过程中发现有语法错误,则屏幕上会显示出错语言的位置和出错的类型。
此时,需要进行修改,然后再进行汇编。
如此进行,直至汇编无错误,得到目标文件为止。
3.连接汇编产生的目标文件(.obj)并不是可执行的程序,还要用连接程序把它转换为可执行的EXE文件。
《汇编语言上机环境及基本步骤》实验报告

汇编语言上机环境及基本步骤一、实验目的:1.掌握编写汇编源程序的基本格式。
2.熟悉汇编语言上机环境。
3.掌握汇编源程序的编辑和修改,熟悉EDIT或记事本的使用方法。
4.掌握汇编源程序编译、连接成可执行文件的过程,熟悉MASM,LINK的使用方法。
二、实验内容:在屏幕上显示并打印字符串“This is a sample program.”三、实验仪器微机一台四、实验步骤:1.在某盘如E盘,以自己的名字的汉语拼音建立一个工作目录(文件夹,名称不要太长,不超过8个字符比如zhangsan),将文件MASM.EXE,LINK.EXE等复制到该目录下,编辑的源文件也保存到该目录下。
从WINDOWS进入DOS环境:C:\>2.用EDIT编辑SW1.ASM源文件。
(1). 从当前目录进入自己的目录下,C:\>E: 回车E:\> CD zhangsan ↙回车键入EDIT并回车:E:\ zhangsan>EDIT根据菜单提示进行各种操作。
(2)进入EDIT编辑------EDIT是一种全屏幕编辑软件,可输入、编辑、修改、保存、另存源程序非常方便。
说明:也可在WIDNDOWS环境下用记事本编辑源文件,在保存时,保存类型应选择所有文件,不能选择文本文件(*.txt),否则在编译时会找不到源文件的。
(3).编辑新文件:a、在EDIT编辑器中输入汇编源程序。
b、检查输入有无错误。
c、打开文件菜单FILE→选择另存为SA VE AS┅→输入文件名为:SW1.ASM→保存。
注意:保存到你自己的文件夹中d、若需要修改此文件,用FILE菜单→选择打开OPEN→输入文件名SW1.ASM,即可修改。
修改后注意重新再存盘。
(4).编辑汇编源程序a、在EDIT(或记事本)中输入源程序。
b、检查。
c、存盘。
可保存为SW1.ASM3.用汇编程序MASM将SW1.ASM文件汇编,生成SW1.OBJ目标文件。
(1).一般简单程序只需生成.OBJ文件,可键入简化命令:E:\zhangsan>MASM SW1;↙若有错误,则显示错误行号及错误性质,如:SW1.ASM(5):error A2006:undefined symbor:xxxx(2).若有错重新进入EDIT进行修改。
汇编语言上机实验

汇编语言上机实验主讲:左琼一、汇编程序的功能1.MASM的功能.检查语法错误,提示错误信息.产生可重定位的目标文件(.OBJ).处理各种伪指令.处理宏库,对于宏指令进行宏扩展.提供包括源程序、目标程序以及符号表在内的汇编列表文件(.LST) .提供一个夹有特定控制字符的符号交叉参考文件(.CRF)。
MASM是一个两次扫描(即从头到尾逐行阅读处理汇编源程序,直到END伪指令)的汇编程序,第一次扫描确定用户自定义符号的值,第二次扫描产生目标代码。
即两次扫描后MASM就能将源程序翻译成目标程序(.OBJ)。
DATA1 SEGMENT USE16A DD A1 ;第二遍扫描处理DATA1 ENDSDATA2 SEGMENT USE16A1 DW 125 ;第一遍扫描处理DATA2 ENDS2.其它汇编程序TASMNASM二、连接程序的功能1.连接程序LINK的功能.将指定的若干个目标模块(OBJ)和子程序库(LIB)中的子程序模块连接在一起,生成一个能够执行的文件(EXE/COM).生成一个地址分配文件(MAP),描述各段的起始地址、结束地址、大小等信息。
三、在PC机上建立、调试、运行汇编源程序的方法1.上机步骤(1)建立与修改汇编源程序文件,扩展名为.asm在WINDOWS98或WIN2000下可用记事本输入汇编源程序,然后以.asm为扩展名存盘。
(2)在DOS窗口下,汇编源文件以产生相应的目标文件(扩展名为.obj):执行命令:MASM DEMO.ASM;(简单方式)或者:MASM DEMO.ASM (交互方式)(3)在DOS窗口下,连接目标文件以建立可执行文件(扩展名为.exe)LINK DEMO; (简单方式)LINK (交互方式)LINK命令还可以连接多个目标文件:LINK DEMO1(主模块名)+DEMO2+DEMO3产生可执行文件DEMO1.EXE2.程序调试(1) 调试工具TD.EXE源代码级调试器,可以调试ASM/C等多种语言程序。
汇编上机实验报告

汇编上机实验报告实验名称:汇编上机实验报告1. 实验目的通过完成汇编上机实验,掌握汇编语言的基本概念和语法规则,理解计算机底层运行的原理,加深对计算机体系结构的理解。
2. 实验环境硬件环境:个人电脑一台,操作系统为Windows 10软件环境:MASM汇编语言开发工具(Microsoft Macro Assembler)、DOSBox模拟器3. 实验内容及步骤3.1 实验一:汇编程序基本框架搭建步骤:(1) 在MASM环境下创建一个新的汇编源文件,命名为"lab1.asm"。
(2) 在源文件中编写汇编程序的基本框架,包括段定义、数据定义和代码段等。
(3) 使用MASM汇编器将源文件编译为目标文件。
(4) 使用链接器将目标文件连接为可执行程序。
(5) 在DOSBox模拟器中执行可执行程序,观察程序输出结果。
3.2 实验二:实现简单的数值运算步骤:(1) 按照实验一的步骤,在MASM环境下创建一个新的汇编源文件,命名为"lab2.asm"。
(2) 在源文件中编写汇编程序,实现两个数的相加、相减、相乘和相除等简单的数值运算。
(3) 使用MASM汇编器将源文件编译为目标文件。
(4) 使用链接器将目标文件连接为可执行程序。
(5) 在DOSBox模拟器中执行可执行程序,输入两个数值,观察程序计算结果。
3.3 实验三:字符串处理步骤:(1) 按照实验一的步骤,在MASM环境下创建一个新的汇编源文件,命名为"lab3.asm"。
(2) 在源文件中编写汇编程序,实现字符串的输入、输出和处理。
(3) 使用MASM汇编器将源文件编译为目标文件。
(4) 使用链接器将目标文件连接为可执行程序。
(5) 在DOSBox模拟器中执行可执行程序,输入一个字符串,观察程序对字符串的处理结果。
4. 实验结果与分析实验一:汇编程序基本框架搭建在DOSBox模拟器中成功执行了汇编程序,没有出现任何错误提示,并得到了预期的输出结果。
汇编语言上机实验报告

汇编语言上机实验报告汇编语言上机实验报告引言:汇编语言是一种底层的计算机语言,通过使用汇编语言,我们可以更加深入地了解计算机的运行原理和底层机制。
本次实验旨在通过上机实践,掌握汇编语言的基本语法和编程技巧,同时加深对计算机底层的理解。
实验目的:1. 学习汇编语言的基本语法和指令集;2. 掌握汇编语言的程序设计和调试方法;3. 加深对计算机底层原理的理解。
实验环境:本次实验使用的是Windows操作系统,并安装了MASM汇编语言开发工具。
实验过程:1. 实验一:Hello World程序我们首先编写一个简单的Hello World程序,用于验证汇编语言的环境是否正常。
通过使用MASM工具,我们可以将源代码汇编成可执行文件,并在命令行中运行。
该程序的功能是在屏幕上输出"Hello World"。
```assembly.model small.stack 100h.datamsg db 'Hello World$'.codemain procmov ah, 09hlea dx, msgint 21hmov ah, 4chint 21hmain endpend main```通过编译、链接和运行,我们可以在屏幕上看到"Hello World"的输出。
2. 实验二:计算两个数的和在这个实验中,我们将学习如何编写一个简单的加法程序。
我们定义两个变量a和b,并将其值相加,然后将结果输出到屏幕上。
```assembly.model small.stack 100h.dataa db 10b db 20sum db ?.codemain procmov al, aadd al, bmov sum, almov ah, 09hmov dl, sumadd dl, 30hint 21hmov ah, 4chint 21hmain endpend main```在屏幕上,我们可以看到输出结果为"30",即10加20的和。
微原-实验报告

扩充知识:(一)程序的编辑、汇编及连接过程汇编语言程序一般要经过编辑、汇编(MASM)、连接(LINK)和调试这些步骤,然后才能正确行。
如下图所示。
1.建立源程序文件建立源程序文件用编辑软件完成,常用的编辑软件有行编辑EDLIN,全屏幕编辑WORD-STAR等。
2.汇编(MASM)源程序微型计算机提供了两种汇编程序版本:一种是全型版本(MASM);另一种是小型版本(ASM)。
全型版本比小型版本增加了宏汇编、条件汇编及错误信息全部打印输出功能。
小型版本占用存储空间小,有64K的内存就可以运行,而全型版本至少要有90KB以上的内存。
3.程序连接连接程序LINK用来连接汇编程序生成的目标代码文件(.OBJ)以及指定的库文件,产生一个可执行的装入文件(.EXE)。
4.执行程序在DOS提示符下,键入连接程序所产生的可执行文件的名字后,即可执行该程序。
例如:C> ABC↙就会把文件ABC装入内存,并从程序的指定地址开始执行,执行程序其结果不一定正确,有时会“死机”。
“死机”时需重新启动机器,然后用DEBUG调试EXE文件。
5.调试程序调试程序DEBUG是专为宏汇编语言设计的一种调试手段,是专业人员必须掌握的一种调试工具。
(二)调试程序DEBUG的使用程序DEBUG.EXE是专为汇编语言设汁的一种调试工具,具有跟踪程序执行、观察中间运行结果、显示和修改寄存器或存储单元内容等多项功能,是开发汇编程序必须掌握的调试手段。
1.程序的装入与退出装入被调试程序有两种方法:(1)在DOS提示符下,键人命令C>DEBUG [盘符][ 路径][文件名[.扩展名]] ↙(2)先运行DEBUG程序, 在DEBUG状态下用N和L命令装入C>DEBUG ↙—N 文件名↙—L ↙例如:C>DEBUG A:EX_MOVE.EXE ↙或:C>DEBUG ↙-N A:EX_MOVE.EXE ↙-L ↙退出DEBUG,用Q命令。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
佛山科学技术学院
实验报告
课程名称汇编语言程序设计
实验项目实验一宏汇编(MASN)及汇编语言上机过程
专业班级 13 网络工程班姓名学号
指导教师杨定安成绩日期 . 25
一、实验目的
1.通过实验了解和熟悉微机系统的配置。
2.学习在DEBUG状态下输入汇编源程序的方法。
3.初步掌握调试(在DEBUG状态下)的过程。
二、实验原理
1. 本实验要求在DEBUG状态下输入汇编源程序,并用DEBUG命令进行调试。
用单步跟踪的方法验证指令的功能。
2. 以下是给定的参考程序,并在实验时在每条指令的“;”符号右边按要求填写指令的执行结果。
注:⑴微机进入DEBUG状态下之后,一切立即数和地址数据均被默认为十六进制数,在输入时数的后面不加后缀“H”;
⑵在DEBUG状态下执行程序时,“INT 20H”指令可使系统执行完该指令前的程序时返回到“-”提示符状态,并且恢复CS和IP寄存器原来的值。
三、实验仪器
微机一台,U盘一块。
四、实验步骤
1.开机和关机操作顺序
开机:先打开微机外部设备电源开关,如显示器,最后打开主机电源开关。
关机:与开机相反,先关掉主机电源开关,然后关闭所有外设的电源开关。
2. 装入DEBUG程序
若计算机系统启动正常,可以进入MASM文件夹或MASM5文件夹从磁盘上调用DEBUG,程序到内存。
如是WINDOWS环境下,先运行CMD命令,然后运行CD MASM命令,再运行DEB2000命令。
一般C盘上装有DEBUG 和DEB2000软件,若没有,可以用复制命令从其它盘拷贝过来,然后从装有DEBUG和DEB2000软件的磁盘上调用DEBUG和DEB2000软件程序。
例如:
C :\MASM> DEB2000↙ (↙回车符)
- (-DEBUG 提示符)
当显示器出现提示符“-”时,说明已进入DEBUG状态,这时,可用DEBUG命令进行操作。
4. 用DEBUG的Register命令检查所有寄存器内容,并作记录,主要是R命令
5. 用DEBUG的Assemble命令输入汇编源程序。
重点是A,命令和T命令。
五、输入程序得出实验结果
MOV AX, 2000 ; AL=00
MOV DS, AX ; DS=2000
NOT AX ; AX=DFFF
XOR AX, AX ; AX=0000
DEC AX ; AX=FFFF
INC AX ; AX=0000
MOV BX, 2030 ; BH=20
MOV SI, BX ; SI=2030
MOV [SI], BL ; [2030H]=30
MOV WORD PTR[SI], 10F ; [2030H]= 0F [2031H]=01
MOV DI, SI ; DI=2030
MOV [DI+50], BH ; [DI+50H]=20
MOV BH, [SI] ; BH=0F
MOV BL, [DI+50] ; BL=20
MOV SP, 5000
PUSH AX ; AX= 0000 [SS:4FFEH]=00 [SS:4FFFH]=00 PUSH BX ; BX=0F20 [SS:4FFCH]=20 [SS:4FFDH]=0F POP AX ; AX=0F20
POPF ; F=N V UP EI PL ZR AC PE NC
NEG BX ; BX=F0E0
XCHG BX, AX ; BX=0F20
STD ; F=NV DN DI NG NZ NA PO CY
STI ; F= NV DN EI NG NZ NA PO CY
CLD ; F= NV UP DI NG NZ NA PO CY
CLI ; F= NV UP DI NG NZ NA PO CY
ADC DI, 2050 ; DI=4081 F= NV UP DI PL NZ NA PE NC ADC SP, DI ; SP=9081 F= OV UP DI NG NZ NA PE NC ADC AX, 1500 ; AX=05E0 F= NV DN DI NG NZ NA PO CY SUB AX, BX ; AX=F6C0 BX=0F20
SHL AH, 1 ; AH=EC
RCL AX, 1 ; AX=D981
SHR BH, 1 ; BH=07
RCR BL, 1 ; BL=90
MOV CL, 4
MOV DX, 80F0
ROL DX, CL ; DX=0F08 CL=04
INT 20 ; CS=00A7 IP=1072
先通过-A指令输入程序,再通过-T指令输出结果,部分程序运行结如下:
实验结果与理论分析相同。
六,实验结果
六、实验小结
通过这次动手独立完成实验,使汇编程序设计语言的一些理论知识与实践相结合,,巩固了我的理论知识,第一次接触汇编实验有点不知所措,在请教老师后学习到DEBUG状态是先用-A指令输入程序代码,每个指令都有编号,通过输入指令的编号可以修改输入过的指令,然后通过-T指令输出每个指令的结果。
输了三次程序代码最后才无误的输入了整个程序,debug状态汇编不能像高级语言一样输入过程能随意方便修改代码有点麻烦,只有通过耐心认真的一个字母字母输入程序,体会汇编程序每个指令的代表意义和作用。