汇编语言上机实验十2015李中

实验十输入/输出与中断实验
一、实验目的
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中断功能调用的使用方法;。

合集下载

实验一、汇编语言程序的上机过程及调试

实验一、汇编语言程序的上机过程及调试

实验一、汇编语言程序的上机过程及调试<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命令(将指令直接汇编成机器码输入到内存中。

汇编语言上机过程(自学)

汇编语言上机过程(自学)
汇编语言上机过程(自学)
附加1 用DEBUG验证程序段
通常汇编教学中,汇编程序结构会在指令系 统后面讲,学生在学习指令系统时由于没有讲汇 编程序结构而无法编写汇编程序来加深对汇编指 令的理解,因此,在这里我们通过2个例子,介 绍使用DEBUG调试工具编写程序段来学习汇编 指令。 有关DEBUG的常用命令的用法请参看教材的 P32 2.5 DEBUG主要命令
为 1时 OV DN EI NG ZR AC PE CY
为 0时 NV UP DI PL NZ NA PO NC
再举一个有访存操作的例子 MOV SI, 0050H MOV DI, 0100H MOV CX, 5 CLD REP MOVSB ; (DS)=2000H ; (ES)=3000H
1)先用A命令输入程序
2)用R命令修改DS和ES寄存器到约定值 DS的原始值 输入的修改值
3)用D命令查看源数据区和目标数据区
4)用E命令初始化源数据区后再用D命令检查源数据 区和目的数据区
5)单步跟踪执行程序
6)执行后检查源数据区和目标数据区
注意,用A命令输入指令时,如果输入错误debug会立 即指出错误和位置。地址不会变化,以便用户修正指 令。
标志位
这是MOV BX,[SI]的执行结果
这是还未执行的下 一条指令
3)对于系统功能调用,可以用G命令来自置断点执行, 也可以用P命令跳过过程与系统功能服务程序。
设断点执行,断点设在INT 21H的后一句 INT 21H输出的一个字符
注意:DEBUG只支持16位汇编调试,如果要编写32位 汇编程序,需要用MASM 6.11汇编和连接,用 CodeView软件查看执行代码。但MASM 6.11中带的 CodeView 4.01可以查看32位程序的执行代码,不能进 行单步调试。要调试可以考虑使用SoftICE软件。 另外,VC嵌入汇编可以支持80486的所有指令,也支 持32位汇编。

汇编语言(王爽第三版)实验十

汇编语言(王爽第三版)实验十

汇编语⾔(王爽第三版)实验⼗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. 参考文献
(列出本报告中所引用的参考文献)
注:该文章只是按照题目提示给出了一个大致的框架和构思,实际根据具体的实验内容和要求来编写每个小节的详细内容。

希望对你有所帮助!。

实验一汇编语言上机及Debug调试

实验一汇编语言程序上机过程以及调试(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文件。

汇编基本命令实验报告

《汇编语言程序设计》实验报告
1、实验目的
1.熟悉汇编语言编程环境;掌握debug用法及常用命令
二、实验内容
1.熟悉debug功能,并分别使用debug命令字查看/修改CPU和内容。
R命令:修改、查看CPU中寄存器的内容;
图2.1
图2.2
D命令:查看内存中内容;
图2.3
E命令:修改内存中内容;
图2.4
U命令:反汇编;
图2.5
T命令:执行CS:IP指向的内存单元处的指令;
A命令:以汇编指令的形式向内存中写入指令;
2.使用A和T命令进行汇编指令操作,将下面程序段写入内器中内存,逐条执行,并观察每条指令执行后CPU中相关寄存的变换。
MOV AX,4E20
ADD AX,1416H
MOV BX,2000H
ADD AX,BX
MOV BX,AX
ADD AX,BX
MOV AX,001AH
MOV BX,0026H
ADD AL,BL
ADD AH,BL
ADD BH,AL
MOV AH,0
ADD AL,BL
ADD AL,9CH
图2.6
图2.7
3.将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。
MOV AX,1
ADD AX,AX
JMP 2000:0003
图2.8
4.验证指令格式,并判断指令格式是否正确,如
操作码(MOV,ADD,SUB)寄存器,作码段寄存器,存储器
操作码存储器,段寄存器
图2.9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档