汇编语言上机实验十2015李中
- 格式:docx
- 大小:30.44 KB
- 文档页数:6
实验一、汇编语言程序的上机过程及调试<i>汇编程序调试过程</i>实验一、汇编语言程序的上机过程及调试<i>汇编程序调试过程</i>一、实验目的熟练掌握汇编语言上机汇编、连接和装入运行。
学会使用调试程序DEBUG或TD来进行程序调试。
<i>汇编程序调试过程</i>二、实验内容(一)汇编程序建立过程a.建立汇编源程序─通过b.编译为目标文件d.连接为可执行文件c.不通过,重新修改(语句错误)f.不正确,用调试工具调试,重新修改(逻辑错误)e运行正确g.完成<i>汇编程序调试过程</i>汇编语言的源程序需要编译和连接后才能在计算机上执行。
汇编语言源程序扩展名规定为.ASM。
用MASM编译源程序后,将产生源程序的目标程序文件,其扩展名为.OBJ。
再经过连接程序(LINK)把目标程序文件与库文件或其他目标文件连接在一起形成可执行文件(扩展名为.EXE)。
这时就可以运行该程序了。
DOS下可直接键入可执行程序的文件名从而运行该程序。
<i>汇编程序调试过程</i>(二)过程详细说明步骤a: 建立汇编源程序如果现在的根目录不是E盘,写入E :然后回车,再打入cd *** (***是你新建的文件夹名),例如电气031班的同学,现在你的DOS界面根目录为:E\dq031 。
打入edit然后回车,EDIT的操作画面便会出现在屏幕上,alt键可以控制工具栏操作,←↑→↓箭头控制阴影选择的上下移动。
我们现在按alt键,选中flie, 按↓选中open,回车,找到刚刚拷贝的asm 文件,回车。
选择存盘并给你输入的文件起一个文件名,形式:*** . asm ;然后回到dos环境。
<i>汇编程序调试过程</i>步骤b: 编译目标文件在DOS提示符下键入MASM *** .asm回车,(其中***为你刚才在*****RE a 中建立的文件名)这时汇编程序的输出文件可以有三个(分别:.obj .lst .crf),便会出现三次提问,在这可以一路回车即可。
实验二汇编语言上机过程实验一、实验目的1、了解和掌握由键盘接收数据,并显示其运行结果的方法。
2、掌握INT 21H 的09H和0AH,01H和02H的功能。
3、熟悉在PC机上建立,汇编,链接,调试和运行8086/8088汇编语言程序的过程。
二、实验内容1、汇编语言源程序的上机过程:①将masm5.zip文件下载放在D:\masm文件夹下, 在该文件夹下将压缩文件解压缩。
②利用编辑器建立一个ASM 源文件。
Edit ,记事本等编辑器文件以文件名.asm文件名保存。
最好保存在D:\masm文件夹下。
(即:D:\masm\文件名.asm)文件名自取。
③点击开始菜单,运行↙>cmd↙>d: ↙>cd masm↙>masm 文件名 3下回车>link 文件名 3下回车>debug 文件名.exe>g ↙其中利用MASM.EXE对源程序进行编译。
生成中间代码文件:文件名.obj。
利用link.exe对obj文件进行连接。
生成最终目标代码文件:文件名.exe。
运行可执行文件:文件名.exe,并利用debug调试工具查看结果。
2、编写一个完整程序,在屏幕上显示字符串How are you!data segmentstring db 'how are you!$'data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,offset stringmov ah,9int 21hmov ah,4chint 21hcode endsend start三、实验器材IBM PC 微机一台四、实验报告要求1、实验报告应包括实验目的,实验内容,实验步骤,实验思考题2、完成实验思考题,如有编程题,写出调试正确的程序,并给程序加注释,写出实验中所记录下的内存数据存放格式。
五、实验思考题下面的汇编语言源程序有错误的,试给程序加注释。
汇编语言程序设计实验指导【实验提要】以下列举的10个实验,都是以Intel的8086及后续系列微处理器的指令系统为核心,采用宏汇编工具MASM6. X以及调试工具DEBUG或DEBUG32,针对本教材所述内容进行相关的上机实践。
旨在帮助学生加深认识和理解理论教学知识,通过大量的上机实验熟悉8086 CPU的指令功能、用途和使用技巧,进而提高汇编语言程序设计的能力。
(带*号的为选作内容)实验一调试工具DEBUG的应用实验目的通过实验掌握下列知识:1、8086指令: MOV,ADD,ADC,SUB,SBB,DAA,XCHG的功能;2、DEBUG命令: A,D,E,F,H,R,T,U的使用;3、BCD码、ASCII码及用十六进制数表示二进制码的方法;4、寄存器: AX,BX,CX,DX,FLAGS,IP。
内容及步骤注:本次实验可以参照教材上关于DEBUG的叙述内容进行。
一、DEBUG 命令使用1、开机后,切换到命令提示符窗口下,出现提示符后键入命令DEBUG, 进入调试环境,显示提示符 '- '。
2、用命令 F 200 220 'AB' 将'AB'的两个ASCII码循环填入内存。
注:第一个参数200是当前段的起始偏移地址,第二个参数220是终了偏移地址,第三个参数‘AB’是被填入的数值,若不给出第二个参数则填入128(8行)个字节。
3、用命令 D200 观察内存中的十六进制码及屏幕右边的ASCII字符。
4、用命令 F230 23F 12 重复上二项实验,观察结果并比较。
5、用命令 E200 41 42 43 44 45将A-E的ASCII码写入地址为200开始的内存单元中,再用D命令观察结果,看键入的十六进制数和ASCII码的对应关系。
6、用H命令检查下列各组十六进制数的和与差(补码表示):(1)56H,34H (2)23H,45H (3)AB,3045H注:输入 H 12 34 则在下一行显示0046 FFDE,即二者的补码和与差。
(最新版)汇编语言实验报告汇编语言课程设计学院:专业:姓名:学号:汇编语言是计算机专业的一门重要的专业基础课,主要介绍汇编语言程序设计的基本原理和方法。
汇编语言是一门理论性和实践性较强的课程,辅助课堂教学的实验有助于帮助学生理解汇编语言的基本原理,锻炼学生的动手能力,提高学生的综合应用知识的能力。
目录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命令(将指令直接汇编成机器码输入到内存中。
汇编语⾔(王爽第三版)实验⼗10_1显⽰字符串assume cs:codedata segmentdb 'welcome to masm!',0data endscode segmentstart:mov dh,8mov dl,3mov cl,2mov ax,datamov ds,axmov si,0call show_strmov ax,4c00hint 21hshow_str:push dxpush cxpush simov di,0mov bl,dhdec blmov al,160mul blmov bx,axadd dl,dladd bl,dlmov ax,0b800hmov es,axmov al,cls:mov ch,0mov cl,ds:[si]jcxz okmov es:[bx+di],clmov es:[bx+di+1],aladd di,2inc siloop sok:pop dxpop cxpop siretcode endsend start10_2解决除法溢出的问题assume cs:code,ss:stackstack segmentdw 8 dup (0)stack endscode segmentstart:mov ax,stackmov ss,axmov sp,16mov ax,4240hmov dx,00fhmov cx,0ahcall divdwmov ax,4c00hint 21hdivdw:push axmov ax,dxmov dx,0div cxmov bx,axpop axdiv cxmov cx,dxmov dx,bxretcode endsend start10_3数值显⽰assume cs:codedata segmentdb 10 dup (0)data endsstack segmentdw 8 dup(0)stack endscode segmentstart:mov ax,42243mov bx,datamov ds,bxmov bx,stackmov ss,bxmov sp,10hmov si,0call dtocmov dh,8mov dl,3mov cl,2call show_strmov ax,4c00hint 21hdtoc:push axpush bxpush simov bx,10mov si,0s0:mov dx,0div bxadd dx,30hpush dxmov cx,axinc siinc cxloop s0mov cx,simov si,0s1:pop ds:[si]inc siloop s1pop sipop bxpop axretshow_str:push axpush dxpush cxpush simov di,0mov bl,dhdec blmov al,160mul blmov bx,axadd dl,dladd bl,dlmov ax,0b800hmov es,axmov al,cls:mov ch,0mov cl,ds:[si]jcxz okmov es:[bx+di],clmov es:[bx+di+1],al add di,2inc siloop sok:pop sipop cxpop dxpop axretcode ends end start。
《汇编语言程序设计》实验指导手册《汇编语言程序设计》实验是学习本课程的每个考生必须要通过的一个重要的实践环节。
本指导手册依照我系各类计算机专科专业教学大纲,根据人民邮电出版社的《汇编语言程序设计》(梁发寅著)教材编写而成。
本指导手册共计有编有10个实验,在实际实验过程中可以按照实际教学进度情况加以增删。
每个实验都应做到:1.做好上机实验的准备工作:应考者对每个实验需要进行预习,了解相关内容和具体要求,熟悉上机操作步骤,学会相关系统软件的使用,掌握各种操作调试命令。
2.编写源程序:按照实验题目的要求,应考者要事先独立完成汇编语言源程序的编写工作,并对源程序进行认真的静态检查,减少错误的发生。
3.完成实验报告:做完上机实验,应考者要严格按照实验报告的格式要求写出实验报告。
实验报告的内容为:实验名称、实验的目的、实验的内容和要求、实验步骤、实验结果并附上源程序清单和程序流程图。
实验一汇编语言上机环境(一)实验目的1熟悉汇编语言上机环境;2掌握汇编语言上机过程与步骤。
(二)实验器材与实验准备实验器材:硬件:微机一台软件:DOS或WIN98/2000/XPMASM . EXE和LINK . EXE实验准备:cs1 segmentassume cs : cs1 , ds : cs1start: push cspop dsmov ah,0int 10hlea dx , str0mov ah,9int 21hmov ah,4chint 21hstr0 db 'hello' , '$'cs1 endsend start(三)实验内容和要求1.建立汇编源程序文件2.逐步汇编,连接生成可执行文件3.运行生成的可执行文件(四)实验步骤:1.在记事本中创建和编辑源文件2. 将MASM . EXE和LINK . EXE以及源文件拷贝在同一目录下3. 汇编源文件4. 连接目标文件5. 执行可执行文件(五) 实验结果分析在生成可执行文件过程中,一共生成了多少个相关的文件,它们的作用分别是什么?实验二 DEBUG 的使用(一)实验目的1、熟悉 DEBUG 程序中的命令,学会在 DEBUG 下调试运行汇编语言源程序。
汇编语言实验报告
1. 实验简介
本次实验是针对汇编语言的学习和实践,在实验中,我们将学习如何使用汇编语言编写程序、调试程序,并通过一系列实例来练习和巩固所学知识。
2. 实验目的
(这一部分可以根据实际情况来写,列举实验的具体目的和要求)
3. 实验环境及工具
(介绍实验所使用的软件环境和工具,如:编译器、调试器)
4. 实验步骤
(根据实验内容具体描述实验步骤,可以分为多个小节)
4.1 准备工作
在开始实验之前,需要进行一些准备工作,包括安装编译器、创建工作环境等。
4.2 实验一:简单的汇编程序
本实验通过编写一个简单的汇编程序来熟悉汇编语言的基本语法和指令集,包括数据传送、算术运算、逻辑运算等。
4.3 实验二:汇编程序的调试
在实验二中,我们将学习如何使用调试器对汇编程序进行调试,包括设置断点、查看变量值、单步执行等操作。
4.4 实验三:汇编程序的优化
本实验将通过优化代码来提高程序的执行效率,包括减少指令的使用、优化循环结构等。
5. 实验结果与分析
(对实验的结果进行总结和分析,可以包括程序的输出结果、性能分析等)
6. 实验总结
(针对本次实验的收获和心得体会进行总结,可以包括对汇编语言的理解、解决问题的思路等)
7. 实验感想
(对本次实验的感想和建议,如实验过程中遇到的困难、改进的方向等)
8. 参考文献
(列出本报告中所引用的参考文献)
注:该文章只是按照题目提示给出了一个大致的框架和构思,实际根据具体的实验内容和要求来编写每个小节的详细内容。
希望对你有所帮助!。
实验一汇编语言程序上机过程以及调试(1)一、预习内容1.工具软件MASM、LINK的使用2.常用DEBUG命令的使用: G,D,R,T,U,Q3.完整程序设计方法的格式。
二、目的要求1.掌握常用工具软件MASM、LINK的使用2.掌握常用DEBUG命令: G,D,R,T,U,Q 能灵活使用这些命令调试程序3.掌握完整程序设计方法的格式,能正确书写数据段,代码段等。
三、实验内容比较两个字符串string1和string2所含的字符是否相同,如果相同则显示’Match'否则显示’No match’.请读程序,并将程序补充完整。
DSEG SEGMENTstring1 db 'Move the cursor backward.'string2 db 'Move the cursor backward.'mess1 db 'Match.',13,10,'$'mess2 db 'No match.',13,10,'$'DSEG ENDSCSEG SEGMENTassume cs:CSEG, ds:DSEG, es:DSEG,MAIN PROC FARstart: mov ax, dsegmov ds, axmov es, axlea si ,string1①cld②repz cmpsbjz matchlea dx,mess2jmp short dispmatch:lea dx,mess1disp: mov ah,09hint 21hmov ax, 4c00hint 21hMAIN ENDPCSEG ENDSend start实验步骤:1)用文字编辑工具(记事本或EDIT)将源程序输入完整后保存在d:\masm下,注意保存时将文件扩展名改为.asm(如test1.asm)。
2)屏幕左下角”开始”–“运行”输入cmd ,进入dos命令操作,先用d: 和cd mas m 命令改变路经,接着用”masm + 文件名” (如masm test1,这里文件名可以不带扩展名)对源文件进行汇编,产生.obj文件和.LST文件。
微机原理技术与接口实验报告学院:专业:班级:姓名:学号:汇编语言程序的上机过程实验目的通过简单地操作了解汇编语言程序的基本内容,体会汇编语言的运行,为以后的实验打下一定的基础。
实验原理及操作步骤一、上机环境❖要运行调试汇编语言程序,至少需要以下程序文件:▪编辑程序:或其他文本编辑工具软件,用于编辑源程序。
▪汇编程序: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.实验目的和要求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)编写源程序。
实验一认识Tddebug集成操作软件实验日志指导教师曾素华实验时间:2013 年04 月02 日学院计算机科学与技术专业计算机科学与技术班级0411005 学号2010211912 姓名李新娱实验室s401一、实验题目认识Tddebug集成操作软件二、实验目的1.熟悉汇编程序的开发过程。
2.认识Tddebug集成操作软件。
3.掌握在Tddebug集成环境中编辑、编译、连接汇编语言程序方法。
4.掌握INT 21H软件中断来调用DOS内部子程序的方法三、实验内容及说明1.实验内容:数据传送实验1)编程将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。
参见示例出程序。
2)修改此程序,采用字符串传送指令完成。
2.实验中使用DOS功能调用(INT 21H):参见教材《32位微型计算机原理与接口技术》89页(1)显示字符串入口:AH=09H调用参数:DS:DX=串首地址,‘$’为结束字符。
(2)返回DOS系统入口:AH=4CH调用参数:AL=返回码四、实验主要步骤要求一数据传送实验1.运行Tddebug软件,选择Edit菜单编写实验程序2.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。
3.使用Rmrun菜单中的Run运行程序,观察运行结果。
4.使用Rmrun菜单中的Debug调试程序,查看程序段、数据段、附加段装入内存后的分配情况。
单步执行数据传送指令后,观察各寄存器及数据区的内容。
过程如下:3)按F7单步执行,在代码区中有一个三角,表示正在执行的指令。
每一条指令的执行一定会使目标寄存器和状态寄存器发生变化,从相关窗口看结果。
4)检查内存数据区的内容,关键是找出用户程序的数据段和附加段:●方法1:在CPU窗口按Tab键使内存数据显示区成为活动区,按Ctrl+G键,输入:“DS或ES寄存器的值:偏移地址”,即可显示用户指定的数据区●方法2:选择菜单View| Dump,弹出内存数据显示窗口。
目录第一篇汇编语言程序设计实验一汇编语言上机操作—比较字符串----------------------1-1 实验二循环程序设计—建立学生名次表---------------1-5 实验三显示器界面设计—光标轨迹程序----------------1-8 实验四键盘界面设计—键盘输入程序------------------1-10 实验五算术程序设计—判断闰年程序----------------1-22第二篇微机硬件实验系统实验一简单I/O口扩展实验-------------------2-1 实验二 8255并行口实验----------------------2-实验三 8253定时器/计数器接口实验-----------2-实验四 8250串口实验------------------------2-实验五存储器扩展实验-----------------------2- 实验六 8259中断控制器实验------------------2-实验七基于定时中断的实时控制综合实验-- ---2- 附录1 ASCII码表--------------------------3-1附录2 常用BIOS中断调用------------------3-2 附录3 INT 21H DOS系统功能调用------------3-5 附录4 PCI BIOS中断调用INT 1AH- -------3-11 附录5 汉字字符集表-----------------------3-13 附录6 DEBUG 主要命令------------- -------3-21第一篇汇编语言实验一汇编语言上机操作—比较字符串实验项目名称:比较字符串实验项目性质:普通所属课程名称:微机原理与应用实验计划学时:2一、实验目的1、学习程序设计的基本方法和技能;2、熟练掌握汇编语言设计、编写、调试和运行;二、实验内容和要求1、汇编语言上机操作方法编写程序,比较两个字符串STRING1和STRING2所含字符是否相同,若相同则在屏幕上显示‘MATCH’,否则显示‘NOT MATCH’。
李忠汇编语言一、引言在计算机科学领域中,汇编语言是一种低级别的编程语言,与机器语言直接对应。
李忠汇编语言是一种基于x86架构的汇编语言,由李忠先生开发并广泛应用于计算机体系结构教学和实践中。
本文将全面、详细、完整地探讨李忠汇编语言的特点、应用领域以及使用方法。
二、李忠汇编语言的特点李忠汇编语言具有以下特点:1. 直观易懂相较于其他汇编语言,李忠汇编语言的语法更加简洁明了,使得初学者能够更快地理解和掌握。
它采用了类似于英语的语法结构,使得编写代码更加直观易懂。
2. 强大的底层控制能力汇编语言是一种直接操作硬件的编程语言,而李忠汇编语言在此基础上进一步提供了强大的底层控制能力。
它允许程序员直接操作寄存器、内存和其他硬件资源,从而实现对计算机系统的精细控制。
3. 高效的执行速度由于汇编语言直接对应机器语言,李忠汇编语言能够充分发挥硬件的性能,提供高效的执行速度。
对于对计算性能要求较高的任务,使用李忠汇编语言编写的程序可以获得更好的性能表现。
三、李忠汇编语言的应用领域李忠汇编语言在以下领域有着广泛的应用:1. 操作系统开发操作系统是计算机系统的核心组成部分,而汇编语言在操作系统的开发中扮演着重要的角色。
李忠汇编语言提供了对硬件的底层控制能力,使得操作系统能够更好地管理和调度计算机资源。
2. 嵌入式系统开发嵌入式系统是一种专用计算机系统,通常被嵌入到其他设备中。
由于嵌入式系统对性能和资源的要求较高,使用李忠汇编语言编写的程序可以更好地满足这些需求。
3. 网络编程网络编程涉及到对网络协议的理解和底层通信的实现。
李忠汇编语言提供了对网络协议的灵活处理能力,使得网络编程能够更加高效和可靠。
4. 数据加密和解密数据加密和解密是信息安全领域的重要内容。
李忠汇编语言提供了对底层数据操作的能力,使得数据加密和解密算法能够更加高效地实现。
四、使用李忠汇编语言的方法使用李忠汇编语言编写程序的一般步骤如下:1. 确定需求首先,需要明确程序的需求和目标。
汇编语言上机环境及基本步骤一、实验目的: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.上机前对选定的实验题应有所了解,并写好程序。
2.上机过程中对重要方法和步骤、问题和结果应有记录。
3.所有程序原则上都要通过调试手段运行。
4.实验后进行分析和总结,给出实验报告。
二.实验报告的内容一般有:1.实验题的内容及要求。
2.思路和方法、算法描述及有注释和说明的程序清单。
3.程序调试和运行的重要步骤、问题和结果。
4.分析和总结。
三.实验环境的建立参看第二章第一节。
通常在WINDOWS XP系统下。
如果其他操作系统(如WIN 7),不支持汇编程序工作,可安装Masm for Windows集成实验环境asm20125(支持Win2000、WinXP、WinVISTA、WIN7等操作系统)。
/实验1 上机过程及程序调试实验目的:1.通过第二章两个简单实例认识汇编语言程序,初步了解程序格式;段定义;标号;DOS系统功能;操作数;指令;说明语句等作用。
2.掌握汇编语言程序从设计到形成可执行程序文件的方法和步骤。
即编辑、汇编、连接。
了解汇编语言的系统工作文件和工作环境。
理解汇编程序和连接程序的作用。
理解列表文件内容。
3.初步了解程序的运行和调试方法。
学会使用DEBUG主要命令和常用的DOS命令。
实验内容:【1】编辑第二章两个简单实例,通过汇编、连接。
【2】用DEBUG对hello程序进行调试。
问题:(1) 该程序在内存中的起始地址是多少?结束地址是多少?共占几个字节?(2) 0B63:0008表示什么意思?(3) 程序中定义的串‘HELLO, WORLD !$’在内存中的起始地址是多少?请用DEBUG命令显示该串。
(4) 如果用带有断点的G命令运行该程序,写出命令。
(5) 用P命令单步执行程序。
(6) 用T命令跟踪程序,在跟踪执行INT 21时出现什么问题?(7) 用A命令在偏移地址100H处建立该段程序,并运行。
(8) 用W命令把该段程序写成文件,再调入。
实验2 算术及位串处理程序实验目的:掌握多数位的算术运算、移位操作、字符串操作等程序的设计,学习使用分支与循环等基本编程方法,熟练使用DEBUG。
计算机科学系实验报告(首页)一、实验目的:掌握子程序的编写和调用二、实验内容、程序清单及运行结果1.显示字符串问题显示字符串是现实工作中经常要用到的功能,应该编写一个通用的子程序来实现这个功能。
我们应该提供灵活的调用接口,使调用者可以决定显示的位置(行、列)、内容和颜色。
子程序描述名称:show_str功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串。
参数:(dh)=行号(取值范围0~24),(dl)=列号(取值范围0~79), (cl)=颜色,ds:si指向字符串的首地址返回:无就用举例:在屏幕的8行3列,用绿色显示data段中的字符串。
assume cs:codedata segmentdb 'Welcome to masm!', 0data endscode segmentstart: mov dh, 8 ; 行号mov dl, 3 ; 列号mov cl, 2 ; 颜色mov ax, datamov ds, ax ; 将数据段地址放入至ds中mov si, 0 ; 将si设置为数据段的偏移地址call show_strmov ax, 4c00hint 21hshow_str:……code endsend start2.解决除法溢出的问题问题前面讲过,div指令可以做除法。
当进行8位除法的时候,用al存储结果的商,ah存储结果的余数:进行16位除法的时候,用ax存储结果的商,dx存储结果的余数。
可是,现在有一个问题,如果结果的商大于ah 或ax所能存储的最大值,那么将如何?比如,下面的程序段:mov bh,1mov ax,1000div bh进行的是8位除法,结果的商为1000,而1000在ah中放不下,又比如,下面的程序段:mov ax,1000hmov dx,1mov bx,1div bx进行的是16位除法,结果的商为11000H,而11000H在ax中存放不下。
汇编语言编程实验报告汇编语言程序设计实验报告(一)汇编语言程序设计实验报告(一)一、预备知识汇编语言程序设计是一门实践性很强的课程。
编写程序、上机调试、运行程序是进一步学习和掌握汇编语言程序设计的必要手段。
二、实验目的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.掌握输入/输出与中断指令的使用方法;
2.掌握中断向量表的结构及使用方法;
3.掌握INT 指令的使用方法;
4.掌握BIOS 中断功能调用的使用方法;
5.掌握DOS 功能调用的使用方法。
二、实验要求
1.了解INT 指令与CALL 指令的不同点;
2.会用DEBUG 观察中断向量表;
3.会用DEBUG 的T 和P 命令执行INT 指令;
4.会用INT 10H、INT 16H 编制程序;
5.会用DOS 功能调用的02H、09H 功能编制程序
三、实验题目
1. 编制程序。
利用IBM PC BIOS 功能调用的INT 16H 功能,编制一个从键盘上接收若干个字符串的程序。
2.编制程序。
利用IBM PC BIOS 功能调用的INT 10H 功能,编制一个在屏幕上指定位置显示若干个字符串的程序。
四、实验思路
1调用INT16号功能实现输入字符,并且用int10号功能实现显示字符,并且将字符保存到data开始的内存单元中,如果不是ctrl+c的话循环输入输出,是的话结束程序.
2用INT10中03功能读出当前光标位置,然后保存当前的光标位置,只有用INT10中的02号功能设置要显示字符的位置,调用INT10的0E号功能循环显示字符,遇到结尾符号0的时候结束输出,然后恢复光标位置,调用INT10的1号功能恢复光标类型,用INT10的2号功能设置光标位置,使光标位置回到起点,结束程序.
PUSH DX;保存当前光标位置
PUSH CX;保存光标类型
MOV DX,1020H;设置光标位置
MOV AH,02H
INT 10H;设置光标位置
五、实验程序
1
DSEG SEGMENT;数据段开始
DATA DB 80 DUP (0);存储数据的单元
DSEG ENDS
;数据段结束
CSEG SEGMENT;代码段开始
ASSUME CS:CSEG,DS:DSEG;段假设
START:
MOV AX,DSEG
MOV DS,AX;段地址初始化
MOV BX,0
A1: MOV AH,0
INT 16H;调用16号功能输入
CMP AL,03H;判断是否为ctrl+c
JE A2;是的话程序结束
MOV AH,0EH
INT 10H;调用10号功能实现显示
MOV DATA[BX],AL;存储到data单元
INC BX;指向下一字符
JMP A1;循环输入
A2: MOV AX,4C00H
INT 21H;程序结束
CSEG ENDS
END START
2
DSEG SEGMENT
DATA DB 'I LOVE YOU.';字符
DB 00H;字符结尾标志
DSEG ENDS
;
CSEG SEGMENT;代码段开始
ASSUME CS:CSEG,DS:DSEG
START:
MOV AX,DSEG
MOV DS,AX;短地址初始化
MOV SI,OFFSET DATA;取字符的偏移地址
MOV AH,03H
INT 10H;读出当前光标位置
PUSH DX;保存当前光标位置
PUSH CX;保存光标类型
MOV DX,1020H;设置光标位置
MOV AH,02H
INT 10H;设置光标位置
A1: MOV AL,[SI];取出第一个字符
CMP AL,0;判断是否为0
JE A2
MOV AH,0EH
INT 10H;显示字符
INC SI;指向下一个字符
JMP A1;循环
A2: POP CX;恢复光标位置
POP DX;恢复光标类型
MOV AH,01H
INT 10H;设置光标类型
MOV AH,02H
INT 10H;设置光标位置
MOV AX,4C00H
INT 21H
CSEG ENDS
END START
六、实验结果
1
2如图,显示字符'ILOVEYOU'位于中间位置处
七、实验总结
1,利用INT实现输入和输出,并且改变光标的位置;
2,会自己写入中断向量表,使程序执行自己设置的中断程序;3,理解INTn的调用过程以及其中堆栈指针的变化情况;4,学会运用BIOS中断功能调用的使用方法;。