微机原理与汇编实验书
汇编语言与微机原理实验指导书范本
汇编语言与微机原理实验指导书《汇编语言与微机原理》实验指导书编写者:董建怀编写时间: -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↵。
《微机原理及汇编语言》实训指导书
微机原理及汇编语言综合实验项目指导书系别:计算机系专业:课程:微机原理及汇编语言综合实验制订时间:2019年5月目录内容及时间安排 (3)项目一可编程串行接口芯片8251A的应用 (4)一、项目实施目标 (4)二、项目实施条件 (4)三、实验内容与步骤 (4)四、实验结果 (10)项目二可编程并行接口8255A的基本输入输出 (11)一、项目实施目标 (11)二、项目实施条件 (11)三、实验内容与步骤 (11)1、实验内容 (11)2、操作步骤 (11)四、实验结果 (12)项目三基于8086的交通灯设计与仿真 (13)一、项目实施目标 (13)二、项目实施条件 (13)三、实验内容与步骤 (13)四、实验结果 (14)内容及时间安排项目一可编程串行接口芯片8251A的应用一、项目实施目标1. 项目实施目标(1)掌握串行接口芯片8251A的工作原理和程序设计;(2)掌握串行接口8251A的硬件电路设计。
2. 主要监测点(1)8251A的引脚结构、引脚功能和工作原理;(2)8251A的工作方式及编程;(3)Proteus电路设计。
(4)硬件电路设计和程序控制及系统调试。
二、项目实施条件硬件环境:Windows 操作系统的PC机软件环境:emu8086软件、proteus7.8或更高版本。
三、实验内容与步骤1、运行proteus,按图1-1绘制电路图。
设定8251A的CLK为1MHz,通信端接收频率为20KHz,采用1个停止位、无校验位、8数据位、波特率因子为1,按照要求设定“COMPIM”和“VIRTUAL TERMINAL”的参数。
图1-1 8251A的电路连接图2、编程实现通过8251向终端发送数据“THIS IS PROTEUS 8251 UART TEST ! WELCOME TO 8086 SIMULATION!”,编写源代码。
(1)运行emu8086,点击工具栏的【new】图标。
直接选择empty workspace,点击【确定】,软件出现源代码编辑器的界面。
《微机原理及汇编语言》实验指导书
微机原理和汇编语言实验指导书信息与通信工程学院电气工程系目录实验须知 (3)实验一数据求和实验 (4)实验二循环与分支程序设计实验 (8)实验三中断程序设计实验 (12)实验四屏幕显示程序设计实验 (14)实验五文件操作程序设计实验 (16)第一部分实验须知1、预习要求实验前认真阅读实验教程中有关内容,明确实验目的和实验任务。
每次实验前应有预习报告,未预习者不允许参加实验。
预习报告中:对软件实验,要求画出程序流程图,编好上机程序;对硬件实验,要求画出实验线路图,拟定实验步骤,画出程序流程图,编好上机程序。
2、实验要求实验是学习“微机原理及汇编语言程序”这门课程的重要环节,实验课请勿迟到,缺席。
爱护设备,保持清洁,不随意更换设备。
认真完成实验任务,实验结果经教师检查,教师对实验内容提问,对完成者做记录。
做硬件实验时,注意断电操作,即所有的接线、改线及拆线操作均应在不带电的状态下进行,严禁带电操作,并注意防止导线堵塞插孔。
发生事故,应立即切断电源,并马上向教师报告,检查原因,吸取教训。
实验完毕,请整理实验设备,再离开实验室。
3、报告要求每次实验后,应递交一份实验报告,报告中应包括下列内容:(1)实验名称、实验人姓名、学号、班级、所用的设备号。
(2)实验目的、任务。
(3)各任务程序流程图、程序清单(应加适量注释)。
(4)硬件实验应画出各任务的完整电路图,包括PC总线与实验用到芯片间全部电路。
(5)记录和分析实验结果。
(6)根据实验目的认真做小结。
第二部分实验实验一数据求和实验一、实验目的1、学习使用DEBUG程序的各种命令。
2、了解计算机取指令、执行指令特别是算术运算指令的工作过程。
3、掌握用DEBUG调试程序的方法。
二、实验内容1、参照教材中有关内容,掌握DEBUG程序的各种操作命令,重点为R——寄存器内容检查命令D——存储器内容检查命令A——汇编命令U——反汇编命令T——跟踪及单步执行命令P——单步执行命令,跳过子程序G——全速执行程序命令。
微机原理与汇编语言 实验指导
微机原理与汇编语言实验指导书(计算机科学与技术专业本科)福建工程学院计算机与信息科学系计算机软件与理论教研室赵忠孝编2005年9月目 录实验一 学习使用DEBUG主要命令 -----------------------1 实验二 80X86指令系统和寻址方式(一) -----------------6 实验三 80X86指令系统和寻址方式(二) -----------------10 实验四 汇编语言程序格式、上机过程 -------------------14 实验五 分支程序设计 ---------------------------------17 实验六 循环程序程序 ---------------------------------20 实验七 子程序设计 -----------------------------------22 实验八 输入输出程序设计 -----------------------------27实验一 学习使用DEBUG主要命令实验目的:通过实验掌握下列知识: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。
微机原理及汇编指导书(2012)解析
微机原理及汇编语言程序设计实验指导书苗暹胡宁亚计算机实验中心目录实验一 DEBUG的使用 (142)实验二数制转换程序 (146)实验三数组排序程序 (147)实验四数据的输入与输出程序 (149)实验五子程序设计 (150)实验六宏调用程序设计 (151)实验一 DEBUG的使用【实验目的】1.学习使用DEBUG调试程序的各种命令。
2.掌握8088/8086指令系统---数据传送指令、算术指令。
3.掌握用DEBUG调试程序的方法。
4.掌握8088/8086 CPU寄存器的用途和存储器组织及它们之间的关系。
5.掌握内存操作数及寻址方法。
6.掌握汇编语言伪操作:BYTE PTR,WORD PTR。
7.熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程。
8.掌握数据传送、算术运算、BCD码调整和循环指令的用法,掌握字符显示的方法。
【实验性质】验证性实验(学时数:2H)【实验内容】一、DEBUG 命令的使用1.敲 DEBUG 进入 DEBUG 环境,显示提示符 '_ '。
2.用命令 D100 10F 观察内存中的16进制码及屏幕右边的ASCII字符。
3.用命令 E100 30 31 32 …… 3F 将30H~3FH写入地址为100H开始的内存单元中,再用D命令观察结果,看键入的16进制数是什么字符的ASCII码?4.用命令 F100 L0F 'A' 将'A'的ASCII码填入内存,用D命令查看结果。
5.用命令 F110 11F 41 将41H 填入内存,用D命令观察结果并比较。
6.用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。
7.用R命令将AX,BX内容改写为1234H及5678H。
8.用H命令检查下列各组16进制数加减结果并和你的手算结果比较:(1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H(5)A758,347FH二、8088/8086常用指令练习1.传送指令1)用A命令在内存100H处键入下列内容:MOV AX,1234MOV BX,5678XCHG AX,BXMOV AH,34MOV AL,56MOV CX,75ABXCHG AX,CX2)用U命令检查键入的程序,特别注意左边的机器码。
微机原理-实验一-汇编语言-冒泡排序
微机原理实验报告班级:XXXXX姓名:XXXX学号:20XXXXXXXXX大学信息科学与技术学院信息工程系实验一汇编语言程序设计-(具体题目)一、实验目的(根据实际情况修改):1、熟悉MASM编译环境,了解程序的汇编方法;2、熟悉常用汇编指令,学习汇编程序设计方法;3、学习汇编语言的调试过程,通过调试过程认识CPU执行程序的方式;4、了解冒泡法原理,学习多重循环的编程方法。
二、实验内容:编写程序,用冒泡法实现将数据段内9,8,7,6,5,4,3,2,1按照由小到大的顺序重新排列。
三、程序流程图和程序代码1、流程图2、代码与注释(代码不能和指导书完全一样,写出注释,写出寄存器尤其是DS的值)data segmentbuf1 db 8,7,6,5,4,3,2,1data endscode segmentassume cs:code,ds:datastart: mov ax,data //传送数据段datamov ds,axmov dx,7 //dx放外循环7次L3: mov cx,dx //cx放内循环7次lea si,buf1 //将db里的数据传送到siL2: mov al,[si]cmp al,[si+1] //比较[si]与[si+1]jb L1 //[si]<[si+1],跳转到L1xchg al,[si+1] //[si]>[si+1],两两交换mov [si],alL1: inc si //si减1loop L2 //循环L2dec dx //外循环减1,没减到0则跳转到L3 jnz L3 //入内循环,计数初值mov ah,4chint 21hcode endsend start四、调试过程及遇到的问题1、程序执行截图2、调试用到的命令-U命令:查看数据段地址;-d命令:查看运行前后存储器内容;-g命令:运行程序;-t命令:查看运行前后寄存器和存储器内容。
3、遇到的问题及解决办法问题:运行程序后,数据1在存储器地址末尾没变。
微机原理与汇编语言程序设计实验一
实验一汇编语言上机环境及基本操作一、实验目的及要求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)若程序中使用了宏指令,则汇编程序将展开宏指令。
微机原理与汇编语言程序设计实验指导书
《微机原理与汇编语言程序设计》实验指导书上海工程技术大学电子电气工程学院目录实验一80x86汇编编程环境和工具实验 (1)实验二80x86指令系统实验 (4)实验三80x86汇编编程方法和技巧实验 (7)实验一 80x86汇编编程环境和工具实验一、实验目的1 、掌握汇编语言开发环境和DEBUG的基本命令2 、掌握Intel 80X86的寻址方式二、实验环境1 、硬件:Intel 80X862 、软件:DEBUG三、实验内容1 、查看内存中的数据使用Debug的D命令查看微型计算机主板ROM中写有生产日期,在内存FFF00H-FFFFFH 的某几个单元中,找到这个生产日期并试图改变它,记录操作过程和结果;2 、修改内存中的数据使用Debug的E命令向内存B8100H开始的单元依次写入以下数据,观察产生的结果并记录操作过程和结果:B8100H-B8107H:41 01 42 02 43 03 44 043 、查看内存中的指令使用Debug的U命令查看8086上电复位后执行的第一条指令的内容,8086上电复位后执行的第一条指令地址为FFFF0H,试用Debug的A命令改变存储器地址FFFF0H上的指令,记录操作过程和结果,观察是否能改变8086上电复位后执行的第一条指令;4 、使用Debug工具将以下数据和指令写入内存并观察运行结果编程提示:在DEBUG与汇编源程序中输入数据和指令的不同1 、进制在汇编源程序中数据的默认进制是十进制,如果要指令中出现十六进制数据,必须在它的后面加上十六进制后缀H,如果这个十六进制数据还是以字母开头,必须在它的前面加0,例如MOV AL,0AH(如果不加0,这条指令就变成MOV AL,AH);而在DEBUG中所有数据只能以十六进制显示和输入。
2 、存储器操作数的段前缀(即段地址)在汇编源程序中,通常使用段前缀为指令中出现的存储器操作数显示标明所在段,例如MOV AX,DS:[0000]或MOV AX,ES:[0000];而使用DEBUG输入指令时,不能在指令中显式标明存储器操作数的段前缀而使用默认段前缀,例如MOV AX,[0000]和MOV AX,[BX]中操作数的默认段前缀都是DS。
汇编语言与微机原理实验指导书
《汇编语言与微机原理》实验指导书编写者:董建怀编写时间:2009-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、硬件环境微型计算机一台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都拷贝到此目录中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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系统功能调用的方法。