微机原理与汇编实验书

合集下载

汇编语言与微机原理实验指导书范本

汇编语言与微机原理实验指导书范本

汇编语言与微机原理实验指导书《汇编语言与微机原理》实验指导书编写者:董建怀编写时间: -9-10实验一.熟悉DOS环境和DEBUG调试软件的使用一、实验要求: 必做二、实验类型: 验证三、实验学时:2四、实验地点:机房五、实验目的:1、.熟悉DOS环境和DEBUG调试软件的使用方法。

2、掌握DEBUG常见命令A、U、D、E、R、T、G的使用,用DEBUG调试简单程序段。

六、实验内容:(一)、熟悉DOS环境1、MS-DOS的启动:开始—程序—附件—MS-DOS方式(命令提示符)。

2、MS-DOS全屏方式和窗口方式的切换:“ALT”+“ENTER”。

3、MS-DOS工具栏的打开:“ALT”+空格键。

4、MS-DOS方式下的选定、复制和粘贴:利用菜单栏下”编辑”菜单项中的“标记”、“复制”和“粘贴”的功能来实现。

5、MS-DOS方式的退出:EXIT。

练习:进入MS-DOS方式,并将屏幕上显示的全部内容复制到一WORD文档中。

(二)、熟悉一些常见的DOS命令1、更改盘符,如:C:\WINDOWS>d:并按“ENTER”,显示:D:\>(盘符更改为D:)。

2、建立子目录(文件夹)MD,如C:\>MD FOX (在当前驱动器C盘下创立子目录FOX)。

3、显示当前目录CD,如:C:\>CD WINDOWS,显示:C:\WINDOWS>(即从当前目录C:\进入到C:\WINDOWS目录)。

4、显示磁盘目录的内容DIR,如:C:\WINDOWS>,显示的内容即为当前目录C:\WINDOWS中的所有内容。

5、返回上级目录,如:C:\WINDOWS>cd ..,显示C:\>(即从当前目录C:\WINDOWS返回到它的上级目录C:\)。

练习:在MS-DOS方式下,进入C:\WINDOWS\SYSTEM目录,并显示该目录下的所有内容,然后返回C盘的根目录(C:\)。

(三)、熟悉调试程序DEBUG.EXE的应用,练习DEBUG的常见命令实践1:利用DEBUG.EXE的A、D、U命令,观察指令MOV AH,[BX+DI+50H],对应的机器码是什么?,该指令是几个字节的指令?并对机器码进行反汇编,观察对应的指令是什么?ADD [2345H][BX][DI],DX的机器码是什么? 该指令是几个字节的指令? 并对机器码进行反汇编,观察对应的指令是什么?实践2:在DEBUG.EXE方式下(利用A、G命令), 分析两个数相加(C8H+EFH)的结果,运用的指令为:mov AL,0efhadd AL,0c8h问题:(1).运算后两个数的和是多少?(提示:运算的结果在AL寄存器中)(2).6位状态标志位(AF,CF,OF,PF,SF,ZF)分别是多少?(3).当相加的两个数均为无符号数时运算的结果是否正确?为什么?(4).当相加的两个数均为带符号数时运算的结果是否正确?为什么?(5).相加的两个数分别为5B0AH, 4CA3H时,经过上机再回答(1)---(4)的问题。

《微机原理与汇编》实验书

《微机原理与汇编》实验书

微机原理与汇编语言前言本课程是一门实践性较强的课程。

教学采用以课堂教学为主,讲授微型计算机的各部分组成、工作过程、互相之间的连接,以及如何使用汇编语言编程,同时使用教学实验设备,通过一定数量的实验,让学生动手完成微型机各部件之间通过接口的联接、编程及简单应用,使学生对微型计算机的主要技术做到深入理解、牢固掌握、灵活应用。

并为一些对计算机硬件要求较高的专业提供了锻炼学生的动手能力以及发挥创造能力的实验平台。

本实验系统在windows窗口界面调试软件和实验演示软件的支持下,极大地激发了学生学习、实验的兴趣,有效地提高了教学质量。

本书的实验内容由汇编语言程序设计实验和硬件接口电路实验两个部分构成。

接口部分实验是针对DVCC-8086H通用微机原理与接口实验系统而设计的两个实验。

通过开设基础性、提高性、综合性实验以及相关的课程设计,来提高学生的动手能力。

实验指导书微机原理与接口技术第1页汇编语言程序设计的实验环境及上机步骤一、实验环境汇编语言程序设计的实验环境如下:1、硬件环境微型计算机一台2、软件环境✧Windows98/2000/XP操作系统✧任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等)✧汇编程序(MASM.EXE或TASM.EXE)✧连接程序(LINK.EXE或TLINK.EXE)✧调试程序(DEBUG.EXE或TD.EXE)文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用TD.EXE。

二、上机实验步骤1、确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。

如果没有创建过此目录,请用如下方法创建:通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。

把MASM.EXE、LINK.EXE、DENUG.EXE 和TD.EXE都拷贝到此目录中。

汇编语言与微机原理实验指导书

汇编语言与微机原理实验指导书

汇编语言与微机原理实验指导书编写者:董建怀编写时间:2021-9-101《汇编语言与微机原理》实验指导书实验一.熟悉dos环境及debug调试软件的使用一、实验建议:必搞二、实验类型:检验三、实验学时:2四、实验地点:机房五、实验目的:1、.熟悉dos环境和debug调试软件的使用方法。

2、掌控debug常用命令a、u、d、e、r、t、g的采用,用debug调试直观程序段。

六、实验内容:(一)、熟悉dos环境1、ms-dos的启动:已经开始―程序―附件―ms-dos方式(命令提示符)。

2、ms-dos全屏方式和窗口方式的转换:“alt”+“enter”。

3、ms-dos工具栏的关上:“alt”+空格键。

4、ms-dos方式下的选定、复制和粘贴:利用菜单栏下”编辑”菜单项中的“标记”、“激活”和“粘贴”的功能去同时实现。

5、ms-dos方式的选择退出:exit。

练习:进入ms-dos方式,并将屏幕上显示的全部内容复制到一word文档中。

(二)、熟识一些常用的dos命令1、更改盘符,如:c:\\windows>d:并按“enter”,显示:d:\\>(盘符更改为d:)。

2、创建子目录(文件夹)md,如c:\\>mdfox(在当前驱动器c盘下建立子目录fox)。

3、显示当前目录cd,如:c:\\>cdwindows,显示:c:\\windows>(即从当前目录c:\\进入到c:\\windows目录)。

4、表明磁盘目录的内容dir,例如:c:\\windows>,表明的内容即为为当前目录c:\\windows中的所有内容。

5、返回上级目录,如:c:\\windows>cd..,显示c:\\>(即从当前目录c:\\windows返回到它的上级目录c:\\)。

练:在ms-dos方式下,步入c:\\windows\\system目录,并表明该目录下的所有内容,然后回到c盘的根目录(c:\\)。

微机原理与汇编语言实验指导书

微机原理与汇编语言实验指导书

微机原理与汇语言实验指导书信控学院测控系曹玉波孙明革2010-08-21目录Ⅰ.汇编语言部分 (1)实验一汇编基本操作 (1)实验二利用DEBUG调试程序调试程序段 (4)实验三分支程序实验 (7)实验四循环程序实验 (9)实验五子程序实验 (10)实验六字符处理程序实验 (13)实验七汇编语言综合设计实验 (16)Ⅱ. 微机原理及应用部分 (17)实验一8255A可编程并行口实验 (17)实验二8253A定时/计数器实验 (20)实验三使用8259A的单级中断控制实验 (23)实验四使用ADC0809的A/D转换实验 (29)实验五使用DAC0832的D/A转换实验 (32)实验六使用8251A的串行接口应用实验 (35)附录:DVCC-8086JHN实验平台性能特点 (39)Ⅰ.汇编语言部分实验一汇编基本操作实验目的1、熟悉DIR、MD、CD等DOS系统常用命令;2、熟悉在PC机上建立、汇编、链接、调试、和运行汇编语言程序的全过程;3、设计一个完整的顺序结构汇编语言程序,学习数据传送和算术运算指令的用法。

实验内容一、示例题:在屏幕上显示信息:“1A”其宏汇编语言程序如下:DA TA SEGMENT ;定义数据段x db 48 ;定义字节型变量x, x值存放于内存DATA段字节偏移量0处y db 65 ;定义字节型变量y, y值存放于内存DATA段字节偏移量1处DA TA ENDSCODE SEGMENT ;定义代码段(伪指令,编译器使用)ASSUME CS:CODE,DS:DATA(伪指令,编译器使用)1 ST: MOV AX,DATA ;数据段在内在重定位,以便程序能够正确引用的在数据段中2 MOV DS,AX ;定义的变量3 MOV DL,x ;x值即48D(或31H)-“1”的ASCII码存入寄器DL4 MOV AH,2 ;5 INT 21H ;调用2号DOS中断,用于显示DL中存放的字符6 MOV BX,017 MOV DL,[BX] ;通过BX寄存器间接址将y值存入DL(与第3行有相同的作用)8 MOV AH,29 INT 21H ;此段语句功能同上一段10 MOV AH,4CH11 INT 21H ;4C号DOS中断,功能是结束程序,将系统控制权返给操作系统CODE ENDS ;以下两句为伪指令,不占用内存,编译器使用END START实验步骤(假设MASM6汇编程序在D:\ MASM6目录下),方框框起的部分为键盘输入。

微机原理与汇编语言实验循环程序设计实验

微机原理与汇编语言实验循环程序设计实验

微机原理与汇编语言实验报告姓名x x x学号xxxxxx 专业班级计科x班课程名称微机原理与汇编语言实验日期2014.10.22实验名称循环程序设计实验成绩一、实验目的1、掌握循环程序的设计方法。

2、掌握比较指令、转移指令和循环指令的使用方法。

3、进一步掌握调试工具的使用方法。

二、实验内容1、实验原理(1)键盘输入的十进制数如368在计算机中是以33H,36H,38H形式存放的,如何将它们转换为一个二进制数101110000B,以便对累加循环的循环次数进行控制是本程序首先要解决的问题(2)累加结果为一个16位的二进制数,为了显示结果,必需把它们转换为十进制数2、实验步骤(1)流程图(2)实验源码.model small.stack ;定义堆栈段.data ;定义数据段inf1 db "Please input a number(1-627):$"inf2 db 0ah, 0dh, "1+2+......+$"ibuf db 7, 0, 6 dup(0)obuf db 6 dup(0).codestart: mov ax, @datamov ds, axmov dx, offset inf1;将屏幕输入的十进制数(存放于ibuf)转化为二进制数存储于ax 中mov ah, 09hint 21hmov dx, offset ibufmov ah, 0Ahint 21hmov cl, ibuf+1mov ch, 0mov si, offset ibuf+2mov ax, 0loop1: mov dx, 10mul dxand byte ptr [si], 0Fhadd al, [si] 从键盘输入一个十进制数,并将其转换为二进制数,存放在AX中开始结束素、、(CX)-1=0累加循环次数送CX(MOV CX,AX)AX清0(AX中存放累加和)BX送1(BX存放每次循环累加的数,每循环一次,BX值加1)ADD AX,BXINC BX累加和(在AX中)转换为十进制数并显示YNadc ah, 0inc siloop loop1mov cx, ax ;计算1+2+3+...+nmov ax, 0mov bx, 1loop2: add ax, bxinc bxloop loop2mov di, offset obuf+6 ;将ax中的二进制数转换为十进制数并以ascii的形式存于obufmov byte ptr [di], '$'mov bx, 10loop3: mov dx, 0div bxadd dl, 30hdec dimov [di], dlor ax, axjnz loop3dec dimov [di], '='mov dx, offset inf2 ;结果输出mov ah, 09hint 21hmov cl, ibuf+1 ;显示nmov ch, 0mov si, offset ibuf+2loop4: mov dl, [si]add dl, 30hinc simov ah, 02hint 21hloop loop4mov dx, dimov ah, 09hint 21hmov ax, 4c00hint 21hend start实验习题1源码:; multi-segment executable file template..model small ;定义程序的存储模式(small表示小型模式).stack ;定义堆栈段.data ;定义数据段inf1 db 0ah, 0dh, "1+2+......+$"obuf1 db 6 dup(0)obuf2 db 7 dup(0) ;除了六位数字外还要有一个=号.codestart: mov ax, @datamov ds, axmov dx, offset inf1 ;输出 1+2+......+mov ah, 09hint 21hmov ax, 0 ;计算1+2+3+...+nmov bx, 1loop1: add ax, bxinc bxcmp ax, 60000jbe loop1push ax ;将最终结果备份入栈push bx ;将n备份pop cxmov di, offset obuf1+5;将cx二进制数转换为十进制数并以ascii的形式存于obuf1mov byte ptr [di], '$'mov ax, cxmov bx, 10loop2: mov dx, 0div bxadd dl, 30hdec dimov [di], dlor ax, axjnz loop2mov dx, di ;输出nmov ah, 09hint 21hpop axmov di, offset obuf2+6;将ax中的二进制数转换为十进制数并以ascii的形式存于obuf2mov byte ptr [di], '$'mov bx, 10loop3: mov dx, 0div bxadd dl, 30hdec dimov [di], dlor ax, axjnz loop3dec dimov [di], '='mov dx, di ;=输出结果mov ah, 09hint 21hmov ax, 4c00hint 21hend start实验习题2源码:; multi-segment executable file template..model small ;定义程序的存储模式(small表示小型模式).stack ;定义堆栈段.data ;定义数据段inf1 db 'Please input six num:', 0ah, 0dh, '$'inf2 db 'sum:$'obuf0 db 0ah, 0dh, '$'ibuf db 5, 0, 4 dup(0)obuf db 6 dup(0).codestart: mov ax, @datamov ds, axmov dx, offset inf1 ;输出提示信息mov ah, 09hint 21hmov bx, 6 ;设置外层循环次数loop1: mov dx, offset ibufmov ah, 0Ahint 21hmov cl, ibuf+1 ;设置内层循环次数mov ch, 0mov si, offset ibuf+2mov ax, 0loop2: mov dx, 10 ;将屏幕输入的十进制数(存放于ibuf)转化为二进制数存储于ax中 mul dxand byte ptr[si], 0Fhadd al, [si]adc ah, 0inc siloop loop2push ax ;将结果入栈保存mov dx, offset obuf0 ;回车换行mov ah, 09hint 21hdec bxcmp bx, 0jnz loop1mov cx, 6mov ax, 0loop3: pop bxadd ax, bxloop loop3mov di, offset obuf+5;将ax中的二进制数转换为十进制数并以ascii的形式存于obuf mov byte ptr [di], '$'mov bx, 10loop4: mov dx, 0div bxadd dl, 30hdec dimov [di], dlor ax, axjnz loop4mov dx, offset inf2 ;输出提示信息mov ah, 09hint 21hmov dx, dimov ah, 09hint 21hmov ax, 4c00hint 21hend start实验习题3源码:; multi-segment executable file template..model small ;定义程序的存储模式(small表示小型模式) .stack ;定义堆栈段.data ;定义数据段inf db "Please input a num(0-65535):$"inf2 db 0ah, 0dh, "The num of 1:$"ibuf db 6, 0, 5 dup(0)obuf db 6 dup(0).codestart: mov ax, @datamov ds, axmov es, axmov ah, 09h ;输出提示信息Please input a num:mov dx, offset infint 21hmov ah, 0Ah ;接收一个无符号十进制整数(小于65536)mov dx, offset ibufint 21hmov ax, 0mov cl, ibuf+1;将屏幕输入的十进制数(存放于ibuf)转化为二进制数存储于ax中mov ch, 0mov si, offset ibuf+2loop1: mov dx, 10mul dxand byte ptr[si], 0Fhadd al, [si]adc ah, 0inc siloop loop1mov bx, 0loop2: shr ax, 1adc bx, 0cmp ax, 0jnz loop2mov ax, bxmov di, offset obuf+5;将ax中的二进制数转换为十进制数并以ascii的形式存于obufmov byte ptr [di], '$'mov bx, 10loop3: mov dx, 0div bxadd dl, 30hdec dimov [di], dlor ax, axjnz loop3mov ah, 09h ;输出提示信息The num of 1:mov dx, offset inf2int 21hmov ah, 09h ;将统计结果在屏幕上显示出来mov dx, diint 21hmov ax, 4c00hint 21hend start实验习题4源码:; multi-segment executable file template..model small ;定义程序的存储模式(small表示小型模式).stack ;定义堆栈段.data ;定义数据段N equ 5ibuf db 4, 0, 3 dup(0)inf1 db 'Please input N num(0-255):', 0ah, 0dh, '$'inf2 db 'Sort:', 0ah, 0dh, '$'buf db N dup(0)obuf2 db 4 dup(0)obuf db 0ah, 0dh, '$'.codestart: mov ax, @datamov ds, axmov dx, offset inf1 ;输出提示信息mov ah, 09hint 21hmov di, offset bufmov bx, N ;设置外层循环次数loop1: mov dx, offset ibufmov ah, 0Ahint 21hmov cl, ibuf+1 ;设置内层循环次数mov ch, 0mov si, offset ibuf+2mov ax, 0loop2: mov dx, 10 ;将屏幕输入的十进制数(存放于ibuf)转化为二进制数存储于ax中 mul dxand byte ptr[si], 0Fhadd al, [si]inc siloop loop2mov [di], alinc dimov dx, offset obuf ;回车换行mov ah, 09hint 21hdec bxcmp bx, 0jnz loop1mov bx, N-1 ;比较大小mov cx, bxmov dx, bxmov di, offset bufloop3: mov si, dimov al, [di]inc siloop4: cmp [si], aljbe loop5mov al, [si]mov ah, [di]mov [si], ahmov [di], alloop5: inc siloop loop4dec dxmov cx, dxinc didec bxcmp bx, 0jne loop3mov dx, offset inf2 ;输出提示信息mov ah, 09hint 21h;结果输出mov cx, Nmov si, offset bufloop6: mov di, offset obuf2+3;将buf中的二进制数转换为十进制数并以ascii的形式存于obuf2,并输出 mov byte ptr [di], '$'mov bx, 10mov al, [si]mov ah, 0loop7: mov dx, 0div bxadd dl, 30hdec dimov [di], dlor ax, axjnz loop7mov dx, dimov ah, 09hint 21hmov dx, offset obufmov ah, 09hint 21hinc siloop loop6mov ax, 4c00hint 21hend start3、实验结果(1)实验结果(2)实验习题1程序流程图:(3)实验习题2(4)实验习题3(5)实验习题4三、实验总结1)通过本次实验我掌握循环程序的设计方法,掌握比较指令、转移指令和循环指令的使用方法,进一步掌握了调试工具的使用方法。

微机原理与汇编语言实验指导书

微机原理与汇编语言实验指导书

实验一显示程序[实验目的]1.掌握汇编语言程序上机的实验过程2.掌握显示程序的基本设计方法。

[实验原理]汇编语言上机过程1、建立汇编源程序(建立文件名.asm)(1)通过MD-DOS自带的EDIT.EXE文本编辑器进行输入和其它的文本编辑器进行录入、编辑,如可用c语言和pascal语言的文本编辑器来编辑,最后将文件存为filename.asm的形式即可。

2、编译目标文件(即:编译为.obj .lst .crf文件)将正确的源代码编译为机器语言、程序清单及交叉引用表的目标文件。

如果此时程序有语句错误,系统将报错,并指出在第几行,什么类型的错误,可根据提示去逐一修改。

3、连接为可执行文件(即:连接为.exe 或.com文件)在DOS提示符下: LINK filename 回车4、运行编译好的可执行文件当4通过后,会产生一个可执行文件,这时只需运行这个程序,看它是否按你所想象那样得出结果。

在试运行期间,要尽量试一些临界状态,看程序是否运行稳定、结果是否正确,进行5。

5、用调试工具调试,重新修改(逻辑错误)用DOS中自带的调试程序DEBUG.EXE来进行程序调试、检查错误。

6.有关显示DOS基本命令1)单个字符显示命令将要显示的字符的ASCII码送给DL寄存器中断功能号2送AH寄存器,中断类型21H.如显示“3” MOV DL,33H 或 MOV DL, ‘3’如显示‘A’ MOV AH,‘A’MOV AH,2 MOV AH,2 MOV AH,2INT 21H INT 21H INT 21H 2)字符串显示命令将要显示的字符串所在存储区的首地址送给DX寄存器中断功能号9送AH寄存器,中断类型21H.如显示字符串“HELLO”存储区定义为 T DB“HELLO”,10,13,24H LEA DX,TMOV AH,9[实验方法及步骤] INT 21H1、编写实验程序。

2、编译。

3、运行(单步,跟踪),检查结果。

微机原理与汇编实验大纲

微机原理与汇编实验大纲

微机原理与汇编语言实验教学大纲一、说明(一)课程性质本课程属于计算机科学与技术专业本科阶段的核心课程,是为培养满足计算机应用领域对人才的需求而设置的。

学习本课程需要具备电子技术和计算机组成原理方面的知识,即应先修《电子技术》和《计算机组成原理》课程。

(二)教学目的熟悉微型计算机的基本原理和体系结构,熟悉汇编语言程序设计的基本方法,熟悉常用可编程接口芯片的设计方法,掌握以微处理器芯片为核心构成系统的能力,掌握对计算机系统进行应用开发的能力。

(三)教学内容本课程以IBM PC计算机系统为背景,结合DVCC-8086JH十六位微机实验系统的使用,主要介绍微型计算机的基本原理和体系结构、汇编语言程序设计以及接口技术。

相关内容互相结合,形成整体。

主要内容包括8086\8088十六位微处理器,指令系统和寻址方式,汇编语言程序设计,存储器技术,输入输出处理,可编程接口芯片的硬/软件设计等。

(四)教学时数每周2学时,共36学时,计算机师范专业(五)教学方式本课程具有实用性强、理论实践相结合、软件硬件相结合的特性,在学生学习过程中,要特别重视综合应用能力和实际操作能力的提高,注重原理和应用相结合,硬件和软件相结合,讲授与练习相结合。

实验教学需要结合专用的实验设备,配合授课内容进行。

在教学方式上除了课堂讲授外,还应注重课堂演示、作业练习和课程设计等环节。

二、本文(一)基本要求学习8086微处理器的指令系统,以及汇编语言程序设计的基本方法,掌握用汇编语言设计、编写、调试和运行程序的技能,学习常用可编程接口芯片及其应用的硬/软件设计方法,为后续课程打下坚实的基础。

(三)实验项目内容及要求实验一 8086汇编程序的一般结构和上机过程实验目的: 熟悉 8086 汇编程序的一般结构,掌握汇编程序的上机过程。

实验内容: 1. 通过程序设计的实例, 熟悉8086汇编程序的一般结构。

2. 通过实际操作, 掌握 8086 汇编程序的上机过程。

微机原理与汇编实验指导书(第一次)

微机原理与汇编实验指导书(第一次)

微机原理与汇编语言程序设计实验指导书计算机与信息工程系 Copyright © 2006.03目录上机实验环境 (1)实验一、寄存器与存储器 (2)实验二、DEBUG调试程序 (6)实验三、源程序建立与汇编 (9)实验四、顺序程序设计 (13)实验五、分支程序设计 (15)实验六、循环程序设计 (17)实验七、子程序设计 (19)实验八、中断调用程序设计 (21)实验九、宏汇编程序设计 (23)实验十、模块化程序设计 (25)实验十一、与C语言混合编程 (26)上机实验环境【硬件环境】目前8086汇编语言程序一般在IMB PC/XT及兼容机上运行,因此要求机器具备基本配置的IMB PC/XT及兼容机就可以了,对机器的硬件环境没有特殊的要求。

【软件环境】1. 操作系统:MS-DOS2. 源程序编辑程序:纯文本编辑器,如:EDIT、EDLIN、记事本等3. 汇编程序:MASM5.0、TASM3.0以上。

4. 连接程序:LINK5. 调试程序:DEBUG实验一、寄存器与存储器【实验目的】初步认识调试程序DEBUG,掌握调试程序时常用的命令与操作。

【实验内容】1. 调试程序DEBUG的启动与退出。

2. 显示与修改寄存器的内容。

3. 显示与修改存储器的内容。

【实验准备】1. 复习计算机中数据的表示。

2. 复习8086CPU内部结构,特别是8086CPU中的寄存器。

3. 复习8086CPU存储器组织,存储器的分段、逻辑地址、物理地址等概念。

4. 复习汇编语言程序上机过程,特别是DEBUG命令。

【实验步骤】1. 调试程序DEBUG的启动与退出。

1) 启动DEBUG:在DOS提示符下键入:DEBUG↵。

进入后显示DEBUG 提示符‘-’,如下图:2) DEBUG帮助:在DEBUG提示符下键入:?↵。

DEBUG会列出所有命令及使用方法简单提示,如下图:3) 十六进制数加减法:在DEBUG提示符下键入:H 1234 ABCD↵。

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

微机原理与汇编语言前言本课程是一门实践性较强的课程。

教学采用以课堂教学为主,讲授微型计算机的各部分组成、工作过程、互相之间的连接,以及如何使用汇编语言编程,同时使用教学实验设备,通过一定数量的实验,让学生动手完成微型机各部件之间通过接口的联接、编程及简单应用,使学生对微型计算机的主要技术做到深入理解、牢固掌握、灵活应用。

并为一些对计算机硬件要求较高的专业提供了锻炼学生的动手能力以及发挥创造能力的实验平台。

本实验系统在windows窗口界面调试软件和实验演示软件的支持下,极大地激发了学生学习、实验的兴趣,有效地提高了教学质量。

本书的实验内容由汇编语言程序设计实验和硬件接口电路实验两个部分构成。

接口部分实验是针对DVCC-8086H通用微机原理与接口实验系统而设计的两个实验。

通过开设基础性、提高性、综合性实验以及相关的课程设计,来提高学生的动手能力。

汇编语言程序设计的实验环境及上机步骤一、实验环境汇编语言程序设计的实验环境如下:1、硬件环境微型计算机一台2、软件环境✧Windows98/2000/XP操作系统✧任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等)✧汇编程序(MASM.EXE或TASM.EXE)✧连接程序(LINK.EXE或TLINK.EXE)✧调试程序(DEBUG.EXE或TD.EXE)文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用TD.EXE。

二、上机实验步骤1、确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。

如果没有创建过此目录,请用如下方法创建:通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。

把MASM.EXE、LINK.EXE、DENUG.EXE 和TD.EXE都拷贝到此目录中。

2、建立ASM源程序汇编语言原程序后缀为.asm。

建立ASM源程序可以使用EDIT或NOTEPAD(记事本)文本编辑器。

下面的例子说明了用EDIT文本编辑器来建立ASM源程序的步骤(假定要建立的源程序名为HELLO.ASM),用NOTEPAD(记事本)建立ASM源程序的步骤与此类似。

在Windows中点击桌面左下角的“开始”按钮→选择“运行”→在弹出的窗口中输入“ C:\ASM\HELLO.ASM”,屏幕上出现EDIT的编辑窗口,窗口标题行显示了EDIT程序的完整路径名。

紧接着标题行下面的是菜单行,窗口最下面一行是提示行。

菜单可以用Alt键激活,然后用方向键选择菜单项,也可以直接用Alt-F打开File文件菜单,用Alt-E打开Edit编辑菜单,等等。

如果键入EDIT命令时已带上了源程序文件名(C:\ASM\HELLO.ASM),在编辑窗口上部就会显示该文件名。

如果在键入EDIT命令时未给出源程序文件名,则编辑窗口上会显示“UNTITLED1”,表示文件还没有名字,在这种情况下保存源程序文件时,EDIT会提示输入要保存的源程序的文件名。

编辑窗口用于输入源程序。

EDIT是一个全屏幕编辑程序,故可以使用方向键把光标定位到编辑窗口中的任何一个位置上。

EDIT中的编辑键和功能键符合Windows的标准,这里不再赘述。

源程序输入完毕后,用Alt-F打开File菜单,用其中的Save功能将文件存盘。

如果在键入EDIT命令时未给出源程序文件名,则这时会弹出一个“Save as”窗口,在这个窗口中输入你想要保存的源程序的路径和文件名(本例中为C:\ASM\HELLO.ASM)。

3、用MASM.EXE汇编源程序产生OBJ目标文件源文件HELLO.ASM建立后,要使用汇编程序对源程序文件汇编,汇编后产生二进制的目标文件(.OBJ文件)。

具体操作如下:方法一:在Windows中操作用资源管理器打开源程序目录C:\ASM,把HELLO.ASM拖到MASM.EXE程序图标上。

方法二:在DOS命令提示符窗口中操作选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令:I:>C:<回车>C:>CD \ASM<回车>C:\ASM>MASM HELLO.ASM<回车〉不管用以上二个方法中的哪个方法,进入MASM程序后,都会提示让你输入目标文件名(Object filename),并在方括号中显示默认的目标文件名,建议输入目标文件的完整路径名,如:C:\ASM\HELLO.OBJ〈回车〉。

后面的两个提示为可选项,直接按回车。

注意,若打开MASM程序时未给出源程序名,则MASM程序会首先提示让你输入源程序文件名(Source filename),此时输入源程序文件名HELLO.ASM并回车,然后进行的操作。

如果没有错误,MASM就会在当前目录下建立一个HELLO.OBJ文件(名字与源文件名相同,只是扩展名不同)。

如果源文件有错误,MASM会指出错误的行号和错误的原因。

警告错误(Warning Errors)。

警告错误不影响程序的运行,但可能会得出错误的结果。

严重错误(Severe Errors)。

对于严重错误,MASM将无法生成OBJ文件。

在错误信息中,园括号里的数字为有错误的行号,后面给出了错误类型及具体错误原因。

如果出现了严重错误,你必须重新进入EDIT编辑器,根据错误的行号和错误原因来改正源程序中的错误,直到汇编没有错为止。

注意,汇编程序只能指出程序的语法错误,而无法指出程序逻辑的错误。

4、用LINK.EXE产生EXE可执行文件在上一步骤中,汇编程序产生的是二进制目标文件(OBJ文件),并不是可执行文件,要想使我们编制的程序能够运行,还必须用连接程序(LINK.EXE)把OBJ文件转换为可执行的EXE文件。

具体操作如下:方法一:在Windows中操作用资源管理器打开源程序目录C:\ASM,把HELLO.OBJ拖到LINK.EXE程序图标上。

方法二:在DOS命令提示符窗口中操作选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入LINK命令:I:>C:<回车>C:>CD \ASM<回车>C:\ASM>LINK HELLO.OBJ<回车>不管用以上二个方法中的哪个方法,进入LINK程序后,都会提示让你输入可执行文件名(Run file),并在方括号中显示默认的可执行文件名,建议输入可执行文件的完整路径名,如:C:\ASM\HELLO.EXE 〈回车〉。

后面的两个提示为可选项,直接按回车。

注意,若打开LINK程序时未给出OBJ文件名,则LINK 程序会首先提示让你输入OBJ 文件名(Object Modules ),此时输入OBJ 文件名HELLO.OBJ 并回车,然后进行的操作与上面完全相同。

如果没有错误,LINK 就会建立一个HELLO.EXE 文件。

如果OBJ 文件有错误,LINK 会指出错误的原因。

对于无堆栈警告(Warning :NO STACK segment )信息,可以不予理睬,它不影响程序的执行。

如链接时有其它错误。

须检查修改源程序,重新汇编、连接,直到正确。

5、执行程序建立了HELLO.EXE 文件后,就可以直接在DOS 下运行此程序,如下所示:C:>HELLO 〈回车〉程序运行结束后,返回DOS 。

如果运行结果正确,那么程序运行结束时结果会直接显示在屏幕上。

如果程序不显示结果,我们如何知道程序是否正确呢?例如,这里的HELLO.EXE 程序并未显示出结果,所以我们不知道程序执行的结果是否正确。

这时,我们就要使用TD.EXE 调试工具来查看运行结果。

此外,大部分程序必须经过调试阶段才能纠正程序执行中的错误,调试程序时也要使用TD.EXE 。

下图为汇编语言程序上机的整个流程:例:下面给出了一个完整的汇编语言程序hello.asm ,请按照上面所介绍的过程练习。

data SEGMENTHello DB ‘Hello, world!’,0DH,0AH,’$’ data ENDSYYY NN N 有错?有错?有错? 结束汇 编输入(修改)源程序连 接运 行查 错开始用EDIT ,NOTEPAD 等任何文本编辑器。

源程序存为.ASM 文件用TD 、DEBUG 等调试程序进行调试。

命令格式:TD <可执行文件名.EXE>用LINK 连接程序进行连接。

连接后生成.EXE 可执行文件。

命令格式:LINK <目标文件名.OBJ>;用MASM 宏汇编程序进行汇编。

汇编后生成.OBJ 目标文件。

命令格式:MASM <源文件名.ASM>;prog SEGMENTASSUME CS:prog,DS:datastart: MOV AX,dataMOV DS,AXLEA DX,helloMOV AH,9INT 21HMOV AH,4CHINT 21Hprog ENDSEND start1、用MASM程序对其进行汇编,产生SAMPLE.OBJ文件。

2、用LINK程序对其进行连接,产生SAMPLE.EXE文件。

3、执行SAMPLE.EXE文件,并观察运行结果是否相符。

4、用DEBUG调试程序。

问题汇编语言源程序、汇编程序及汇编之间的区别与联系?程序中MOV AH,4CH 与INT 21H 这两条语句的功能是什么?能否省略?实验一 DEBUG程序的使用预习内容预习DEBUG程序的各种命令功能及使用方法。

实验目的1、掌握DEBUG程序的各种命令,重点是R,D,E,U,T,G,Q等命令的使用。

2、掌握用DEBUG调试自编程序的方法,为以后实验打下基础。

实验内容1、程序的装入和退出C:>DEBUG[d:][path] name.exe退出DEBUG -Q2、程序的运行连续运行-G[=地址1][地址2]跟踪运行-T[=地址][值] 缺省时从CS:IP处执行3、内容查询D命令显示内存单元内容-D 地址R命令显示寄存器内容 -R 寄存器名4、修改存储单元和寄存器E命令可方便地修改任一RAM单元的内容-E地址内容表R命令修改寄存器内容 -R 寄存器名5、反汇编U命令反汇编用于把内存单元的内容作为机器指令,用助记符的形式显示出来。

-U地址或者-U 地址范围。

问题1、在指令MOV [BX],AX中,操作数[BX]的寻址方式是什么?在DEBUG下执行完该指令后,如何查看执行结果?2、可否随意在DEBUG提示符“-”后不带参数发出命令G?什么情况下使用命令G时,可不用“=”给出程序的首地址?实验二 DOS系统功能调用预习内容1、预习DOS系统功能调用的方法。

相关文档
最新文档