微机原理实验指导书(学生)

合集下载

微机原理实验指导书

微机原理实验指导书

实验一初级程序的编写与调试一、实验目的1、熟练掌握的DEBUG常用命令,学会用DEBUG调试程序;2、深入了解数据在存储器中的存取方法,及堆栈中数据的压入与弹出;3、掌握各种寻址方法以及简单指令的执行过程。

二、实验内容1、设堆栈指针SP=2000H,AX=3000H,BX=5000H,请编一程序段将AX的内容和BX的内容进行交换。

请用堆栈作为两寄存器交换内容的中间单元,用DEBUG调试程序进行汇编与调试。

2、设DS=当前段地址,BX=0300H,SI=0002H,请用DEBUG的命令将存储器偏移地址300H—304H连续单元顺序装入0AH、OBH、0CH、0DH、0EH。

在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程。

当每条数据传送完毕时,AX中的内容是什么。

程序清单如下:MOV AX,BXMOV AX,0304HMOV AX,[0304H]MOV AX,[BX]MOV AX,0001[BX]MOV AX,[BX][SI]MOV AX,0001[BX][SI]HLT3、设AX=0002H,编一个程序段将AX的内容乘10,要求用移位的方法完成。

三、实验要求1、实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,对程序结果的分析等。

2、本实验要求在PC机上完成。

3、本实验只要求在DEBUG调试程序状态下进行,包括汇编程序,调试程序,执行程序。

4、编程提示:(1)、实验内容1将两个寄存器内容进行交换时,必须有一个中间寄存器才能进行内容的交换。

如果用堆栈作为中间存储单元,必须遵循先进后出的原则。

(2)、实验内容2[1] 其中数据段寄存器中的段地址为进入DEBUG状态后系统自动分配的段地址。

[2] SI和BX的初值可在DEBUG的状态下,用R命令装入,也可以在程序中用指令来完成。

[3] 用T命令执行程序,可进行单步跟踪执行,每执行一条指令就可以看到各寄存器的状态,也可用R命令直接调出寄存器,来检查各寄存器内容是否正确。

微机原理实验学生实验指导书

微机原理实验学生实验指导书

微型计算机原理实验指导书河北大学电子信息工程学院2017年10月目录实验一系统认识及编程初步实验 (1)实验二输入输出程序设计实验 (7)实验三8255并行接口实验 (9)实验四8259中断控制实验 (13)实验五8254定时/计数器应用实验 (19)实验六综合实验 (24)实验一系统认识及编程初步实验一、实验目的1. 掌握TD系列微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。

2. 掌握使用运算类指令编程及调试方法。

3. 学习使用软件监视变量的方法。

二、实验设备PC机一台,TD-PITE实验装置一套。

三、实验内容(一)基础实验1. 系统认识实验编写实验程序,将00H~0FH共16个数写入内存3000H开始的连续16个存储单元中。

2. 运算编程实验80X86指令系统提供了实现加、减、乘、除运算的基本指令,可对表1-1所示的数据类型进行算术运算。

本实验以二进制双精度加法运算为例,计算X+Y=Z,将结果Z存入某存储单元。

表1-1 数据类型算术运算表(二)提高实验1. 在系统认识实验中,编写程序,将内存3500H单元开始的8个数据复制到3600H单元开始的数据区中。

通过调试验证程序功能,使用E命令修改3500H单元开始的数据,运行程序后使用D命令查看3600H单元开始的数据。

2. 在运算编程实验中,求累加和程序设计,在偏移地址为1000H开始依顺序填入16个字(16个16位数),利用程序求和,存放在偏移地址2000H。

四、实验步骤(一)系统认识实验1. 运行Wmd86软件,进入Wmd86集成开发环境。

2. 根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言和寄存器类型,这里我们设置成“汇编语言”和“16位寄存器”,如图1-1、图1-2所示。

设置选择后,下次再启动软件,语言环境保持这次的修改不变。

图1-1 语言环境设置界面图1-2 寄存器设置界面3. 语言和寄存器选择后,点击新建或按Ctrl+N组合键来新建一个文档,如图1-3所示。

微机原理实验指导书(新版)

微机原理实验指导书(新版)

微机原理与接口技术实验指导书主编:王青岳陈超波张晓倩许韫韬西安工业大学电信学院软件实验部分 (1)1 汇编基本原理 (2)1.1 程序,可直接运行的程序,汇编源程序,汇编 (2)1.2 CPU取指令、执行指令的过程 (3)2汇编工具MASM5.0使用方法 (3)2.1汇编源程序文件的建立方法 (3)2.2编译阶段 (5)2.3链接阶段 (6)2.4 程序调试阶段 (7)3软件实验项目 (9)软件实验一清零实验 (9)软件实验二码制转换实验 (11)软件实验三数据区移动实验 (13)软件实验四冒泡法排序实验 (16)软件实验五存储器校验实验 (18)软件实验六实时时钟显示实验 (19)硬件实验部分 (21)1 微机实验系统简介 (22)2 实验系统上位机软件使用方法 (23)2.1 软件启动 (23)2.2 如何使用星研集成环境软件 (23)3 硬件实验项目 (32)硬件实验一8255 PA口控制PB口实验 (32)硬件实验二8255控制交通灯实验 (34)硬件实验三74HC138译码器实验 (37)硬件实验四8253方波实验 (39)硬件实验五8259A中断控制器实验 (41)硬件实验六8250可编程通信实验(与微机) (44)硬件实验七简易电子琴实验 (49)硬件实验八LED8 * 8点阵实验 (58)软件实验部分1 汇编基本原理1.1 程序,可直接运行的程序,汇编源程序,汇编程序程序以文件的形式存在,它是由若干条“指令”顺序排列存储构成的。

指令是对符合CPU指令集的所有信息的统称,“指令”在程序中以两种形式存在,一种是以“指令代码”的形式(在可直接运行的程序文件中),另一种是以“助记符”的形式(在汇编源程序文件中)。

无论“可直接运行的程序”还是“汇编源程序”,其中的指令都是以顺序排列的方式存储的,只是指令存在的方式不同。

可直接运行的程序当程序中的指令是以可执行的“指令代码”的形式存在时,该程序即为可直接运行的程序,该程序所在的文件即为“可执行程序文件”。

微机原理实验指导书

微机原理实验指导书

微机原理实验指导书微机实验一DEBUG软件的使用―、实验目的1.学习DEBUG软件的基本使用方法。

2.掌握8088/8086的寻址方式。

3.掌握数据传送、算术运算逻辑运算等类指令的基本操作。

二、实验内容与步骤本实验进行前必须保证系统盘上有DEBUG.EXE文件。

在DOS环境下执行DEBUG命令就在屏幕上显示DEBUG提示符:“-”(短划线)。

D:\*****GK ;以下在字符下加下划线表示键入的内容,K代表回车1.装载文件――(N、L命令)-N EXSE2_3.EXE K ;程序命名为EXSE2_3.EXE -LK2.反汇编命令(U命令) -U K3.显示当前环境和寄存器内容(R命令)-RK4.以十六进制和ASCII码形式显示内存单元内容(D命令)-DK5.修改寄存器内容-R cxK ;修改完后检查是否已修改6.输入数据(可以是指令的机器码或操作数)――即修改内存内容(E 命令)-E 段地址:偏移地址K ;修改完后检查是否已修改7.程序输入――汇编命令(A命令) 输入程序应注意以下几点:(1)输入的数字必须是十六进制数,并且不输入H。

(2)分号后面的内容(注释)不要输入。

(3)不输入标号,条件转移指令中的标号用偏移地址代替。

-AK;以下用K代表回车键,下面加下划线部分代表要键入的内容。

(可以是任意程序)。

重新回到DEBUG提示符“-”状态,表示汇编命令已结束。

8.执行机器指令程序到指定断点――(G命令)-G=段地址:偏移地址(起始)段地址:偏移地址(指定断点)9.程序调试练习修改并调试以下程序,使之完成*****H开始的内存单元中存入31个先自然递增然后又自然递减的数据(00H~0FH~00H)的功能。

程序从CS:0100H开始存放。

调试完成后程序命名为PCS1.EXE并存盘。

程序如下:;PCS1MOV AX,3000H MOV DS,AX MOV SI,0 MOV CL,0FH XOR AX,AX L1:MOV [SI],AL1微机INC AL DEC CL JNZ L1MOV CX,10H L2:MOV [SI],AL INC SI DEC AL LOOP L2 INT 20H 步骤:(1)用A命令输入程序;(2)用反汇编U命令显示程序及目标码:(3)存盘程序命名为PCSl.EXE;(4)用断点执行G命令执行程序到INT 20H指令(不执行INT 20H指令);(5)用D命令检查程序执行后31个数是否已写入存储器3000H:0H 中。

微机原理实验指导书

微机原理实验指导书

《微机原理与应用实验指导书》XX大学机电工程学院刘XX实验一调试程序——DEBUG实验目的初步掌握汇编语言,可以调试简单的程序实验内容用汇编语言编写一个简单的加法运算程序。

编程提要1.进入DEBUG状态,开机进入DOS状态。

C>DEBUG↙屏幕显示:-“-”为已进入DEBUG状态,在该提示符下可键入DEBUG命令。

下划线部分为用户键入的字符或命令2.键入程序并汇编用DEBUG的A命令送入程序:-A 100↙MOV AL,33MOV DL,35ADD DL,ALSUB DL,30MOV AH,2INT 213。

执行程序-G↙4.反汇编可以用反汇编U命令将键入的程序调出,并且可以得到每条汇编指令的机器码。

-u起始地址终止地址5.退出DEBUG返回DOS状态-Q6.显示内存命令D-D 0100↙-D 起始地址终止地址↙7.修改存储单元命令E-E 地址↙8.检查和修改寄存器内容命令R格式:a. Rc.R[寄存器名]功能:a.显示CPU内部所有寄存器的内容和全部标志位的状态。

b.显示和修改一个指定寄存器的内容和标志位的状态。

9.追踪与显示命令T格式:a. T[=地址]或 T[地址]b. T=[地址][条数]10.命名命令N格式:N文件名11.读盘命令L12.写盘命令W实验报告(写出上机结果及现象)实验二汇编与宏汇编程序实验目的通过实验了解汇编就是把用汇编语言编写的源程序翻译(汇编)成机器语言的目标程序。

汇编程序可以使用小汇编程序(ASM)也可以用宏汇编程序(MASM),由于宏汇编程序不但可以代替ASM,而且可以汇编具有宏定义的汇编程序,因此我们在汇编程序时使用宏汇编程序(MASM)。

实验内容执行宏汇编程序编程提要1.汇编过程在DOS状态下,键入MASM则调入宏汇编程序,屏幕显示与操作如下:masm↙Microsoft (R) Macro AssembLe Version 5.00Copyright (C) Microsoft Corp 1981-1985,1987.All rights reserved.Source filename [.ASM]: ex2↙Object filename [ex2.OBJ]: ex2↙Source listing [NUL.LST]: ex2↙Cross- reference [NUL.CRF]: ex2↙50678+410090 Bytes symbol space free0 Warning Errors0 Severe Errors2.在DOS状态下,键入LINK(或LINK EX2)则系统调入LINK程序,屏幕显示操作如下:C>LINK↙IBM Personal Computer LinkerVersion 2.00(C) Copyright IBM Corp 1981,1982,1983Object Modules [.OBJ]: EX2↙Run File [EX2.EXE]:EX2↙List File[NUL.MAP]:EX2↙Libraries[.LIB]: ↙3.执行程序当用连接程序LINK将目标程序(.OBJ)连接定位后,可产生可执行文件(.EXE),可以在DOS 状态下执行该程序。

微机原理实验指导书 何小海 严华

微机原理实验指导书 何小海 严华

实验一数据传送一、实验目的熟悉星研集成环境软件的使用方法。

熟悉Borland公司的TASM编译器熟悉8086汇编指令,能自己编写简单的程序,掌握数据传输的方法。

二、实验内容1、熟悉星研集成环境软件。

2、编写程序,实现数据段的传送、校验。

使用汇编语言,将数据段中3000H~30FFH单元的内容传送给实验仪B4区的61C256的2000H~20FF中;B4区的61C256在I/O设备区,使用IOR、IOW读写;再将它传送回数据段的6000H~60FFH中。

三、程序流程图(学生根据实验内容设计)四、实验步骤在DS段内3000H~30FFH中输入数据;使用单步、断点方式等调试程序,检测DS段内6000H ~60FFH中的内容。

熟悉查看特殊功能寄存器、CS段、DS段的各种方法。

五、程序清单(参考)本实例的源程序如下:.MODEL TINY ;memory mode : tiny.STACK 100 ;堆栈.CODE ;开始程序段START: MOV AX,@DATAMOV DS,AXMOV ES,AXNOPMOV CX,100HMOV SI,3000HMOV DX,2000HSTART1: MOV AL,[SI]OUT DX,ALINC SIINC DXLOOP START1MOV DI,6000HMOV DX,2000HMOV CX,100HSTART2: IN DX,ALMOV [DI],ALINC DIINC DXLOOP START2SJMP $Move ENDPEND START六、思考题编写一个程序,将数据段中2000H~20FFH单元的内容传送给数据段的6000H~60FFH中。

实验内容:1、用所学过的寻址方式编程实现将存储单元DS:1000H单元的内容送到DS:2020H单元。

2、设各寄存器及存储单元的内容如下:(DS)=0500H,(BX)=0010H,(SI)=0001H,(05010)=12H,(05011)=34H,(05012)=56H,(05013)=78H,(05120)=ABH,(05121)=CDH,(05122)=EFH,说明下列各条指令执行完后AX寄存器中的内容。

微机原理实验指导书

微机原理实验指导书

实验一 DOS命令与汇编源程序输入、汇编、连接、运行一、实验目的掌握在计算机上运行汇编语言程序的整个操作过程。

学会将自己编制的汇编语言源程序用EDIT编辑程序输入计算机并存盘;学会用MASM 宏汇编程序对汇编语言源程序进行汇编形成二进制目标文件;学会用LINK连接程序对二进制目标文件连接形成可执行文件;学会运行经汇编和连接后形成的可执行文件;学会用DEBUG调试程序运行和调试可执行文件。

二、实验设备1、PC系列不低于80286档次的微型机;2、DOS3.3以上版本的操作系统;3、EDIT,MASM,LINK,DEBUG执行程序。

三、实验步骤1、用EDIT编辑汇编源程序(1)MS-DOS Editor的启动与退出Editor是在DOS系统提示符下启动,其命令格式为:C:EDIT [Path] [filename]在编辑完成后,选择屏幕菜单的File命令(按“ALT+F”键)中的Exit项即可退出Editor。

(2)建立文本文件在MS-DOS Editor的屏幕菜单栏中File命令就是对文本文件的建立、存储和打印的操作。

A.建立文件(New)打开屏幕菜单栏中File下拉菜单,选择New项。

B.编辑文件将写好的汇编语言源程序输入到编辑文本区。

输入时,一行结束后按回车键(Enter)换行。

C.保存文件(Save)打开屏幕菜单栏中File下拉菜单,选择Save项在弹出的对话框中键入文件名。

如果要把文件保存到非默认路径下,则在键入文件名的同时键入路径。

D.打开文件(Open)打开屏幕菜单栏中File下拉菜单,选择Open项。

该窗口中有三个区可以选择要打开的文件:文件名区:可以直接键入要打开的文件名;文件表区:文件表中列出要打开的所有文件名,供用户选择;目录/磁盘区:键入的文件名是哪个磁盘目录中的,在该区中选择。

在Open对话框中用“Tab”或“Shift+Tab”键选择各区。

选完后按“OK”确定。

2.MASM宏汇编程序的使用方法(1)命令格式和功能命令格式:MASM文件名功能:对汇编语言源程序进行汇编形成二进制目标文件(2)操作过程在DOS下,将目录切换到汇编语言所在目录下,然后调入MASM宏汇编程序。

微机原理实验指导书

微机原理实验指导书

实验1 数据传送实验目的掌握8086指令系统的数据传送指令及8086的寻址方式利用调试工具来调试汇编语言程序实验设备PC微型计算机一台实验预习要求:复习8086指令系统的数据传送指令及8086的寻址方式学习TD.EXE的使用方法实验内容1:通过下面的程序段输入和执行来熟悉TD.EXE的使用,通过显示屏观察程序的执行情况。

练习程序段如下:MOV BL, 88HMOV CL, BLMOV AX, 9999HMOV DS:[0002H], AX操作步骤:1、启动TD.EXE方法1 直接打开BIN文件夹下TD.EXE文件,方法2 把BIN 文件夹放在根目录下,如在:D:\BIN,打开“开始—附件—命令提示符”用CD命令使当前目录为D:\BIN 然后输入TD 或TD.EXE2、输入程序段把光标移到CS:0100H处开始输入程序在光标处直接输入练习程序段,键入时屏幕上会弹出一个输入窗口,在这个窗口中输入程序段3、执行程序段按F8单步执行程序段,观察寄存器内容的变化情况和内存单元DS:[0002H]的内容变化情况实验内容2:MOV AX, 1111HMOV BX, 2222HMOV CX, 3333H第一种出栈方式PUSH AXPUSH BXPUSH CX第二种出栈方式PUSH BXPUSH CXPUSH AX第三种出栈方式PUSH CXPUSH BXPUSH AX操作步骤:1、启动TD.EXE2、输入程序段把光标移到CS:0100H处开始输入程序在光标处直接输入练习程序段,键入时屏幕上会弹出一个输入窗口,在这个窗口中输入程序段3、执行程序段按F8单步执行程序段,观察寄存器内容的变化情况和内存单元DS:[0002H]的内容变化情况实验报告要求:1、写明本次实验的执行结果,填好表1-12、设置各寄存器及存储单元的内容如下BX=0010H , SI=0001HDS:[0010H]=12H, DS:[0011H]=34H, DS:[0012H]=56H, DS:[0013H]=78H, DS:[0014H]=9AH, DS:[0015H]=0ABH, DS:[0016H]=0BCH说明下列各条指令执行完后AX寄存器中的内容,上机验证(观察寄存器和TD数据区—在窗口的左下角)并填好表1-2(注:输入下列指令前应先用MOV指令把各寄存器和在存储单元的内容设置好)(1)MOV AX, 1200H(2)MOV AX, BX(3)MOV AX, [0010H](4)MOV AX, [BX](5)MOV AX, 0006H[BX](6)MOV AX, [BX][SI](7)MOV AX, 0003H[BX][SI]实验2 算术逻辑运算及移位操作实验目的熟悉算术逻辑运算指令和移位指令的功能了解标志寄存器的各标志位的意义和指令执行对它的影响利用调试工具来调试汇编语言程序实验设备PC微型计算机一台实验预习要求:复习8086指令系统中的算术逻辑类指令和移位指令按照题目要求在实验前编写好实验中的程序段实验内容1:打开TD.EXE输入下面的程序段,观察标志寄存器区的标志位的变化,说明执行下列哪些指令时标志位变化了,哪些指令标志位没有变化(标志位变化时亮白显示),大家也可以用这操作步骤:1、启动TD.EXE2、输入程序段3、把光标移到CS:0100H处开始输入程序在光标处直接输入练习程序段,键入时屏幕上会弹出一个输入窗口,在这个窗口中输入程序段4、执行程序段按F8单步执行程序段,观察寄存器内容的变化情况和各标志位的变化情况实验报告要求:1、填好表2-12、说明ADD SUB AND OR NOT 指令对标志位的影响实验3 程序设计、调试和DOS功能调用实验目的熟悉在PC上汇编程序的建立、汇编、连接、执行、调试的全过程学习提示信息的显示和传送指令、加减1指令和串操作指令的用法。

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

昆明理工大学微机原理及程序设计实验指导书段绍米编昆明理工大学信息工程与自动化学院自动化系2013年10月微机原理实验实验要求及运行环境1、实验要求与注意事项:交纸质版实验报告,实验要求:2、实验运行环境在电脑中装ASM Masm for windows 集成实验环境2008。

双击图标打开ASM MasM for windows 集成实验环境运行工作界面,输入实验程序代码,调试、改错、保存、运行、查看结果,进行记录。

运行结果显示:实验一两个多位十进制数相加的实验一、实验目的1、学习数据传送和算术运算指令的用法。

2、熟悉在PC机上建立、汇编、链接、调试和运行8088汇编语言程序的过程。

二、实验内容将两个多位十进制数相加。

要求被加数均以ASCII码形式各自顺序存放在以DA TA1和DA TA2为首的5个内存单元中(低位在前),结果送回DATA1处。

三、程序框图四、程序清单CRLF MACRO ;宏定义,宏名:CRLFMOV DL, 0DH ;把0DH给DLMOV AH, 02H ; 把02H给AHINT 21H ;系统功能调用——实现回车功能MOV DL, 0AH ;把0AH给DLMOV AH, 02H ; 把02H给AHINT 21H ;系统功能调用——实现换行功能ENDM ;宏定义结束——本段实现回车换行功能DATA SEGMENT;数据段定义,段名DATADATA1 DB 33H, 39H, 31H, 37H, 34H;变量DATA1中装入加数DATA2 DB 36H, 35H, 30H, 38H, 32H;变量DATA2中装入被加数DATA ENDS;数据段定义结束——本段实现了两个数据的定义STACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACK, ES:DATASTART: MOV AX, DATAMOV DS, AXMOV AX, STACKMOV SS, AXMOV AX, TOPMOV SP, AXMOV SI, OFFSET DA TA2MOV BX, 05CALL DISPLCRLFMOV SI, OFFSET DA TA1MOV BX, 05CALL DISPLCRLFMOV DI, OFFSET DATA2CALL ADDAMOV SI, OFFSET DA TA1MOV BX, 05CALL DISPLCRLFMOV AX, 4C00HINT 21HDISPL PROC NEARDS1: MOV AH, 02MOV DL, [SI+BX-1]INT 21HDEC BXJNZ DS1RETDISPL ENDPADDA PROC NEARMOV DX, SIMOV BP, DIMOV BX, 05AD1: SUB BYTE PTR [SI+BX-1] , 30HSUB BYTE PTR [DI+BX-1] , 30HDEC BXJNZ AD1MOV SI, DXMOV DI, BPMOV CX, 05CLCAD2: MOV AL, [SI]MOV BL, [DI]ADC AL, BLAAAMOV [SI] , ALINC SIINC DILOOP AD2MOV SI, DXMOV DI, BPMOV BX, 05AD3: ADD BYTE PTR [SI+BX-1], 30HADD BYTE PTR [DI+BX-1], 30HDEC BXJNZ AD3RETADDA ENDPCODE ENDSEND START五、实验要求1.读懂源程序,写出源程序注释。

2.写出实验结果。

3.把源程序修改为任意两个六位十进制相加。

并思考如果最高位有进位怎么办?实验二字符匹配程序一、实验目的掌握提示信息的使用方法及键盘输入信息的用法。

二、实验内容编写程序,实现两个字符串比较。

如果两个字符串中有一个字符相同,显示“MATCH”,否则,显示“NO MATCH”。

三、程序框图四、程序清单CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDA TA SEGMENTMESS1 DB 'MATCH',0DH,0AH,'$'MESS2 DB 'NO MATCH',0DH,0AH,'$' MESS3 DB 'INPUT STRING1:',0DH,0AH,'$' MESS4 DB 'INPUT STRING2:',0DH,0AH,'$' MAXLEN1 DB 81ACTLEN1 DB ?STRING1 DB 81 DUP (?)MAXLEN2 DB 81ACTLEN2 DB ?STRING2 DB 81 DUP (?)DA TA ENDSSTACK SEGMENT STACKSTA DB 50 DUP (?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,ES:DATA,SS:STACK START: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXMOV SP,TOPMOV AH,09HMOV DX,OFFSET MESS3INT 21HMOV AH,0AHMOV DX,OFFSET MAXLEN1INT 21HCRLFMOV AH,09HMOV DX,OFFSET MESS4INT 21HMOV AH,0AHMOV DX,OFFSET MAXLEN2INT 21HCRLFCLDMOV SI,OFFSET STRING1MOV CL,[SI-1]MOV CH,00HKKK: MOV DI,OFFSET STRING2PUSH CXMOV CL,[DI-1]MOV CH,00HMOV AL,[SI]MOV DX,DIREPNZ SCASBJZ GGGINC SIPOP CXLOOP KKKMOV AH,09HMOV DX,OFFSET MESS2INT 21HJMP PPPGGG: MOV AH,09HMOV DX,OFFSET MESS1INT 21HPPP: MOV AX,4C00HINT 21HCODE ENDSEND START五、实验要求1.读懂源程序,写出程序注释。

2.写出实验结果。

3.修改源程序,使其实现,当两个字符串中所有字符都匹配(注意字符串的长度和顺序)时才显示“MATCH”,否则显示“NO MATCH”。

实验三排序实验一、实验目的掌握用汇编语言编写排序程序的思路和方法。

二、实验内容从首地址为1000H开始存放50个数,要求设计程序将这些数由小到大排序,排序后的数,仍放在该区域中。

三、程序框图四、程序清单CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDA TA SEGMENTORG 160HDA TA1 DB 0ah,09h,08h,07h,06h,05h,04h,03h,02h,01h SORTNUM EQU 10MESS1 DB 'INPUT SEGMENT V ALUE:$'MESS2 DB 'INPUT OFFSET VALUE:$'MESS3 DB 'SORT OK!',0DH,0AH,'$'ERROR DB 'INPUT ERROR!',0DH,0AH,'$'DA TA ENDSSTACK SEGMENTSTA DW 32 DUP(?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,ES:DATA,SS:STACK START: MOV AX,DA TAMOV DS,AXMOV ES,AXMOV SP,TOPMOV AH,09HMOV DX,OFFSET MESS1INT 21HCALL GETNUMMOV ES,DXCRLFMOV AH,09HMOV DX,OFFSET MESS2INT 21HCALL GETNUMMOV SI,DXPUSH ESPOP DS; DS= ESMOV CX,SORTNUMDEC CXXOR BX,BXIII: MOV AL,[SI+BX]MOV AH,BLPUSH CXMOV CX,SORTNUMSUB CX,BXDEC CXMOV DX,BXJJJ: INC DXPUSH BXMOV BX,DXCMP AL,[SI+BX]JBE UUUMOV AL,[SI+BX]MOV AH,DLUUU: POP BXLOOP JJJMOV CL,[SI+BX]MOV [SI+BX],ALMOV DL,AHPUSH BXMOV BX,DXMOV [SI+BX],CLPOP BXINC BXPOP CXLOOP IIIPUSH DSMOV AX,DATAMOV DS,AXMOV AH,09HMOV DX,OFFSET MESS3INT 21HPOP DSMOV CX,SORTNUM VVV: MOV AL,[SI]CALL DISP1CRLFINC SILOOP VVVMOV AX,4C00HINT 21HDISP1 PROC NEARPUSH CXMOV BL,ALMOV DL,BLMOV CL,04ROL DL,CLAND DL,0FHCALL DISPLMOV DL,BLAND DL,0FHCALL DISPLPOP CXRETDISP1 ENDPDISPL PROC NEARADD DL,30HCMP DL,3AHJB DDDADD DL,27H DDD: MOV AH,02HINT 21HRETDISPL ENDPGETNUM PROC NEARPUSH CXXOR DX,DX GGG: MOV AH,01HINT 21HCMP AL,0DHJZ PPPCMP AL,20HJZ PPPSUB AL,30HJB KKKCMP AL,0AHJB GETSCMP AL,11HJB KKKSUB AL,07HCMP AL,0FHJBE GETSCMP AL,2AHJB KKKCMP AL,2FHJA KKKSUB AL,20H GETS: MOV CL,04SHL DX,CLXOR AH,AHADD DX,AXJMP GGG KKK: MOV AH,09HMOV DX,OFFSET ERRORINT 21HPPP: PUSH DXCRLFPOP DXPOP CXRETGETNUM ENDPCODE ENDSEND START五、实验要求1.读懂程序,写出程序注释。

相关文档
最新文档