微机原理实验指导书(2012)(1)
微机原理实验指导书

实验一初级程序的编写与调试一、实验目的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命令直接调出寄存器,来检查各寄存器内容是否正确。
微机原理实验指导书 ( 1 )

实验一基本程序编程和程序调试一、实验目的1、掌握数码转换等基本程序设计的技巧和方法。
2、熟悉DEBUG命令。
3、学会和掌握用DEBUG调试程序的方法。
二、实验设备PC机一台,装有DOS基本系统三、实验内容及步骤用DEBUG建立、汇编和运行调试程序的操作。
DEBUG是DOS系统支持的用于汇编语言源程序调试的系统软件。
它共有19条命令完成相应的功能,命令及其格式可参阅附录一。
(一)DEBUG操作练习1)实验调试程序程序的功能是从3500H内存单元开始建立0-15共16个数据。
程序如下:地址(H)机器码(H)助记符2000 BF0035 MOV DI,35002003 B91000 MOV CX,00102006 B80000 MOV AX,00002009 9E SAHF200A 8805 MOV BYTE[DI],AL200C 47 INC DI200D 40 INC AX200E 27 DAA200F E2F9 LOOP 200A2011 F4 HLT2)实验步骤:(1)输入与修改①启动DOS,在DOS提示符下输入D E B U G后回车,屏幕立即显示DEBUG提示符“—”,表明已进入DEBUG状态,可以执行DEBUG的各种命令。
②用DEBUG中的汇编命令“A 地址”将程序建立在内存单元中。
在提示符“—”下键入:“A 2000 ↵”此时显示器上将会显示程序的段地址CS和偏移地址IP,你就可以输入以上的程序了。
即显示169C :2000 键入MOV DI,3500169C:2003 MOV CX,0010169C:2011 HLT:::③用反汇编命令“U 地址”检查程序在提示符“—”下,键入“U 2000↵”,将从2000内存单元开始的内容反汇编,屏幕上显示169C:2000 BF0035 MOV DI,3500169C:2003 B91000 MOV CX,0010169C:2006 B8000 MOV AX,0000::::::169C:2011 F4 HLT当发现程序有错时,可用汇编命令“A 地址”进行修改,如要修改200A单元中的指令,则键入“A 200A↵”,屏幕显示169C:200A ,然后再键入MOV BYTE[DI],AL↵,就把错误的程序改正了。
微机原理实验指导书1_2_4_5

微机原理实验指导书郑州大学电气工程学院目录实验一比较字符串实验 (1)实验二两个多位十进制数相加的实验 (14)实验三两个数相乘的实验 (18)实验四键盘输入并显示实验 (21)实验五统计学生成绩 (25)实验六 8259A 中断控制器实验 (29)实验七 8253计数器/定时器实验 (34)实验八 8255并行接口实验 (37)实验九 8251A 串行接口实验 (43)实验十 A/D 实验 (51)附录一调试程序DEBUG (51)附录二汇编程序出错信息 (59)实验一比较字符串实验一.实验目的1.掌握分支程序的设计方法。
2.熟悉在PC机上建立、汇编、链接、调试和运行8086汇编程序的过程。
二.实验内容1.比较两个字符串STRING1和STRING2所含的字符是否相同,若相同则显示‘Match’,否则显示‘No Match’。
2.修改程序,显示所比较字符的个数。
三.程序清单DATAREA SEGMENTSTRING1 DB 'Move the cursor backward.'STRING2 DB 'Move the cursor backward.'MESS1 DB 'Match.',13,10,'$'MESS2 DB 'No match.',13,10,'$'DATAREA ENDSPROGNAM SEGMENTMAIN PROC FARASSUME CS:PROGNAM,DS:DATAREA,ES:DATAREASTART: PUSH DSSUB AX,AXPUSH AXMOV AX,DATAREAMOV DS,AXMOV ES,AXLEA SI,STRING1LEA DI,STRING2CLDMOV CX,STRING2-STRING1REPZ CMPSB?LEA DX,MESS2?MATCH: LEA DX,MESS1DISP: MOV AH,09HINT 21HRETMAIN ENDPPROGNAM ENDSEND START四.实验方法1.用编辑程序EDIT.EXE建立源文件EDIT D101-1.ASM↙在编辑状态下输入源程序,存盘后退出编辑状态。
《微机原理与接口技术》2012-2013(1)计系Z11实验指导书(打印版)

《微机原理与接口技术》课程实验指导书课程名称:微机原理与接口技术英文名称:Principle of Microcomputer课程类别:专业基础课实验学时:实验16学时适应对象:计算机Z111-2,软件Z111-2,网络Z111-2任课教师:李艳萍于丽梅实验列表实验1 PC机中断实验实验2 定时器/计数器8253实验实验3 并行接口8255A实验(一)实验4 并行接口8255A实验(二)实验5 串行接口8251实验实验6 数/模转换器DAC 0832实验实验7 模/数转换器ADC 0809实验(一)实验8 模/数转换器ADC 0809实验(二)实验要求预习实验内容1、明确实验目的及任务,了解和掌握实验所需的理论知识及相关接口芯片的工作原理。
2、通过阅读示例程序,掌握编程方法及相关技巧。
3、对每次实验,应根据要求设计接口电路并编写程序。
实验过程1、带上理论课教材、实验指导书及准备的实验程序。
2、连接接口电路前,请关闭电源再搭接线路,检查无误后,再开电源。
3、调试程序,记录结果。
4、实验结束后,请关闭电源,将各实验器材归位,清洁自己的桌面。
编写实验报告实验报告格式实验XX 实验项目名称一、实验目的二、实验内容描述本次实验任务及要求三、实验原理分析设计思想,绘制实验原理图、流程图。
四、实验程序程序清单及相关注释。
五、实验结果描述实验现象及结果并给予分析。
六、问题解决及收获体会说明在实验过程中遇到了哪些问题,是如何处理的;收获体会,不足之处和今后应注意的问题等。
注意事项1、实验前,应确保实验箱与微机通过USB串口正确连接。
2、爱护实验设施,插接、拔取排线时,应旋转插头,不得从线中间拉取。
3、实验完毕后,先关闭实验箱电源,后拔下实验箱与微机的串行连接接口,以免造成串口损坏。
主要设备仪器配置实验仪器:清华大学科教仪器厂:TPC-ZK教学实验系统,包括配套的软件系统。
2第1章 TPC-ZK-USB实验系统介绍在各种计算机外围接口不断推陈出新的今天,USB接口已经成为个人计算机最重要的接口方式之一,USB接口设备的应用也以惊人的速度发展,几乎新型的PC都100%支持USB技术。
微机原理实验指导书

实验一数据传送实验目的:1.熟悉8086指令系统的数据传送指令及8086的寻址方式。
2.利用TurboDebugger调试工具来调试汇编语言程序。
实验任务:1.通过下述程序段的输入和执行来熟悉TurboDebugger的使用,并通过显示器屏幕观察程序的执行情况。
练习程序段如下:MOVBL,08HMOVCL,BLMOVAX,03FFHMOVBX,AXMOVDS:[0020H],BX2.用以下程序段将一组数据压入(PUSH)堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。
压栈程序段如下:MOVAX,0102HMOVBX,0304HMOVCX,0506HMOVDX,0708HPUSHAXPUSHBXPUSHCXPUSHDX出栈程序段请自行编写(用不同的出栈顺序)。
3.指出下列指令的错误并加以改正,上机验证之。
(1)MOV[BX],[SI](2)MOVAH,BX(3)MOVAX,[SI][DI](4)MOVBYTEPTR[BX],2000H(5)MOVCS,AX(6)MOVDS,2000H4.设置各寄存器及存储单元的内容如下:(BX)=0010H,(SI)=0001H(10010H)=12H,(10011H)=34H,(10012H)=56H,(10013H)=78H(10120H)=0ABH,(10121H)=0CDH,(10122H)=0EFH说明下列各条指令执行完后AX寄存器中的内容,并上机验证。
(1)MOVAX,1200H(2)MOVAX,BX(3)MOVAX,[0120H](4)MOVAX,[BX](5)MOVAX,0110H[BX](6)MOVAX,[BX][SI](7)MOVAX,0110H[BX][SI]5.将DS:1000H字节存储单元中的内容送到DS:2020H单元中存放。
试分别用8086的直接寻址、寄存器间接寻址、变址寻址、寄存器相对寻址传送指令编写程序段,并上机验证结果。
微机原理实验指导书

目录实验一并行接口8255应用实验 (1)实验二交通灯模拟控制实验 (5)实验三可编程定时器8254应用实验 (9)实验四8254控制继电器实验 (13)实验五DAC0832数模转换实验 (17)实验六ADC0809模数转换实验 (21)实验七串行通信8251应用实验 (25)实验一并行接口8255应用实验一、实验目的1.掌握8255工作方式0的使用方法;2.掌握8255I/O口的输入输出使用方法;3.了解8255、电平开关、LED发光二极管的电路连接。
二、实验内容1、逻辑电平开关和LED显示电路如图1-1所示,8255的电路连接如图1-2所示。
2、利用8255C口作为并行数据的输入端(逻辑电平开关实现),A口作为并行数据的输出端(LED显示电路实现),当电平开关拨到上方时对应发光二极管亮,拨到下方时对应发光二极管灭,编写程序。
图1-1 逻辑电平开关和LED显示电路图1-2 8255接线电路三、接线方案PC0~PC7/8255 接K0~K7/逻辑电平开关PA0~PA7/8255 接L0~L7/LED显示CS/8255 接Y1/IO地址图1-3实验线路四、编程提示及流程图1、A口地址—288H;B口地址—289H;C口地址—28AH;8255控制寄存器端口地址—28BH。
2、参考程序流程图如图1-4所示。
图1-4 参考程序流程图五、实验步骤1、连接USB通信电缆和电源线;2、根据图1-3实验线路进行电路连接;3、打开“HQFC-A微机接口”应用程序,新建或打开实验程序;4、点击“编译”,并确保实验程序没有语法错误;5、点击“构建”,将目标文件生产可执行文件(后缀为EXE);6、点击“重构运行”,可执行文件(后缀为EXE)下载到实验设备中运行;7、观察实验现象,并记录。
若实验现象有误请重复第4~6步。
六、参考程序;*******************************;;* 8255方式0的C口输入,A口输出 *;;*******************************;data segmentio8255a equ 288hio8255b equ 28bhio8255c equ 28ahdata endscode segmentassume cs:codestart:mov ax,datamov ds,axmov es,axmain:mov dx,io8255b ;设8255为C口输入,A口输出mov al,() ;计算控制字out dx,alinout: mov dx,() ;从C口输入一数据in al,dxmov dx,() ;从A口输出刚才自C口out dx,al ;所输入的数据jmp inout ;跳转,则继续自C口输入,A口输出code endsend start七、思考题1、根据程序要求补充实验程序,并执行程序观察现象;2、修改程序,电平开关拨到上方时发光二极管灭,拨到下方时发光二极管亮。
微机原理实验指导书
微机原理实验指导书第一章DEBUG调试系统的使用。
1一、DEBUG的作用。
1二、DEBUG的使用。
1第二章 Intel 80x86 指令系统及寻址方式和基本程序设计。
18一、数据传送指令。
18二、算术运算类指令及线性程序设计。
20三、逻辑及移位类指令与线性程序设计。
22四、转移类指令与分支型程序设计。
24五、循环控制类指令与循环程序设计。
25第三章 DOS 功能调用。
28一、源程序的编辑和可执行文件的形成。
28二、输入输出程序设计。
29第四章循环和分支结构汇编语言程序设计。
30一、循环程序结构。
30二、分支程序结构。
31三、综合程序练习。
32第五章子程序结构汇编语言程序设计。
32一、子程序之一___原程序结构的编辑和可执行文件的形成。
32二、子程序之二___子程序的设计。
38第六章高级汇编语言程序设计。
39一、宏汇编语言程序的结构。
39二、宏汇编语言程序设计。
40三、重复汇编技术。
40第七章键盘程序设计。
40一、键盘输入程序。
40第八章音乐程序设计。
42一、发音程序。
42二、音乐程序。
42第九章活动图形显示程序。
44一、活动字符图形显示。
44二、静止复合图形显示。
45第十章磁盘文件操作程序。
47一、文本文件内容显示。
47二、磁盘文件拷贝。
50 第十一章绝对磁盘读写程序。
53一、误删除文件的恢复。
53二、磁盘目录显示程序。
53第一章DEBUG调试系统的使用一、DEBUG的作用DEBUG是DOS提供的用于程序调试的系统,作为DOS的外部命令随DOS的其它外部命令一起由DOS的提供产商向用户提供。
因此用户在使用DEBUG系统时一定要注意当前用户所使用的DOS 的外部命令中是否提供该命令(若DOS命令不全,有可能没有此命令)。
二、DEBUG的使用1、DEBUG的调用由于DEBUG是DOS的外部命令,因此必须在DOS的提示符状态下进行调用。
调用的方法如下:C:\>DEBUG [FILENAME]此处FILENAME应是文件的全名,即应包括文件的主名和扩展名(若文件有扩展名),如文件不在当前目录,则还因包括文件所存放的目录名。
微机原理实验指导书
微机原理及其接口技术实验指导书目录第一章汇编语言程序上机实验快览 (1)1.1汇编语言程序上机应具备的工具软件 (1)1.2调试程序(DEBUG)功能简介 (1)1.3预习报告格式 (3)1.4实验报告格式 (3)第二章软件实验 (4)实验一D EBUG程序的使用 (4)实验二汇编语言上机环境及基本步骤 (8)实验三两个多位十进制数相加的实验 (11)实验四循环结构程序设计 (14)实验五数组排序实验 (15)实验六子程序设计 (16)第三章硬件实验 (19)3.1DICE-8086K实验箱使用说明 (19)3.2系统安装与使用 (21)实验一存储器读写实验 (22)实验二8259单级中断控制器实验 (25)实验三8255A并行口实验 (31)实验四定时器/计数器 (33)实验五数码管显示实验 (35)第一章汇编语言程序上机实验快览1.1汇编语言程序上机应具备的工具软件汇编语言程序上机操作,必须经过文件的“建立-汇编-连接-执行”四个阶段。
因此系统磁盘上还应具备下列工具软件。
1.全屏幕编辑程序。
用以将程序键入内容,经编辑后生成源文件(.ASM)存盘。
常用的编辑程序有EDIT.EXE,SK.EXE,WORD97。
2.宏汇编程序,如MS的MASM.EXE,用以将源文件(.ASM)汇编生成二进制代码的目标文件(.OBJ)、列表文件(.LST)、及符号交叉引用表文件(.CRF)。
3. 连接程序LINK.EXE。
用以将目标文件(.OBJ)与欲使用的库文件(.LIB)及其它目标模块,连接装配生成一个可执行文件(.EXE)、及各段空间分配的列表文件(.MAP)。
4.调试程序。
用以对.EXE或.COM文件进行调试,排错。
值得提出的是,人工输入的现成程序,或自编程序,难免不出现键入错误、疏漏错误、语法错误及逻辑错误。
虽然在静态自查及汇编阶段均可被查出,但程序内在的逻辑功能性错误,还必须借助调试工具,在监测环境下动态运行程序时才能表露出来。
【最新推荐】微机原理实验指导书-实用word文档 (18页)
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==微机原理实验指导书篇一:微机原理实验指导书(新版)微机原理与接口技术实验指导书主编:王青岳陈超波张晓倩许韫韬西安工业大学电信学院软件实验部分 (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)硬件实验部分 ................................................................211 微机实验系统简介 .................................................................. .......................................... 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 程序,可直接运行的程序,汇编源程序,汇编程序程序以文件的形式存在,它是由若干条“指令”顺序排列存储构成的。
微机原理及汇编指导书(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命令检查键入的程序,特别注意左边的机器码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
昆明理工大学微机原理及程序设计实验指导书鄢大鹏付丽霞编昆明理工大学信息工程与自动化学院自动化系2007年5月汇编语言的建立和执行要建立和执行汇编语言程序,系统盘上应该首先有如下文件: 编辑程序ASM.EXE 汇编程序(或MASM.EXE) 宏汇编程序LINK.EXE 链接程序 调试程序其中ASM.EXE是普通汇编程序,它不支持宏汇编,如果要用宏汇编,则必须用MASM.EXE。
下面,以建立和执行用户程序NEW.EXE为例来说明上机过程。
1.用EDIT命令建立汇编语言源程序(ASM文件)源程序就是用汇编语言编写的程序,它不能被机器识别。
源程序必须以ASM为附加文件名。
例如键入命令:C:\ EDIT NEW.ASM (如果是建立新程序就不跟文件名)2.用ASM(或MASM)命令产生目标文件(OBJ文件)源程序建立以后,就可以用汇编程序ASM.EXE(或MASM.EXE)进行汇编。
所谓汇编,实际上就是把以ASM为附加文件名的源文件转换成用二进制代码表示的目标文件,目标文件以OBJ为附加名。
汇编过程中,汇编程序对源文件进行二次扫描,如果源程序中与语法错误,则汇编过程结束后,汇编程序会指出源程序中的错误,这时,用户可以再用编辑程序来修改源程序中的错误,最后,得到没有语法错误的OBJ文件。
例如,对NEW.ASM的汇编过程如下:C:\ MASM NEW.ASM此时,汇编程序给出如下回答:Object filename [EX MOVS.OBJ]:Source listing [NUL.LST]: NEWCross reference [NUL.CRF]:NEW如果被汇编的程序没有语法错误,则屏幕上还会给出如下信息:Warning SeversErrors Errors00汇编程序的输出文件有三个,第一个是目标文件,它以OBJ为扩展名,产生OBJ文件是我们进行汇编操作的主要目的,所以这个文件是一定要产生的,操作时,这一步只要回车就行了;第二个是列表文件,它以LST为扩展名,如不需要,键入回车即可,如需要,则键入文件名然后回车;第三个是交叉符号表,同表文件一样一般只需键入回车。
3.用LINK命令产生执行文件(EXE文件)汇编过程根据源程序产生出二进制的目标文件,但OBJ文件用的是浮动地址,它不能直接上机执行。
所以还必须使用链接程序(LINK)将OBJ文件转换成可执行的EXE文件。
例如:C:\ LINK NEW4.程序的执行有了EXE文件后,就可以执行程序了,此时,只要键入文件名即可。
例如:C:\ NEW此时屏幕上就会显示用户所编写程序的运行结果了。
实验一两个多位十进制数相加的实验一、实验目的1、学习数据传送和算术运算指令的用法。
2、熟悉在PC机上建立、汇编、链接、调试和运行8088汇编语言程序的过程。
二、实验内容将两个多位十进制数相加。
要求被加数均以ASCII码形式各自顺序存放在以DA TA1和DA TA2为首的5个内存单元中(低位在前),结果送回DATA1处。
三、程序框图四、程序清单CRLF MACROMOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HENDMDATA SEGMENTDATA1 DB 33H,39H,31H,37H,34HDATA2 DB 36H,35H,30H,38H,32HDATA ENDSSTACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOV AX,DA TAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA2MOV BX,05CALL DISPLCRLFMOV SI,OFFSET DATA1MOV BX,05CALL DISPLCRLFMOV DI,OFFSET DA TA2CALL ADDAMOV SI,OFFSET DATA1MOV 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.把源程序修改为任意两个六位十进制相加。
并思考如果最高位有进位怎么办?实验二两个数相乘的实验一、实验目的掌握乘法指令和循环指令的用法。
二、实验内容实现十进制数的乘法。
被乘数和乘数均以ASCII码形式存放在内存中,乘积在屏幕上显示出来。
三、程序框图四、程序清单DA TA SEGMENTDA TA1 DB 32H,39H,30H,35H,34HDA TA2 DB 33HRESULT DB 6 DUP(00H)DA TA ENDSSTACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA2MOV BL,[SI]AND BL,00001111BMOV SI,OFFSET DATA1MOV DI,OFFEST RESULTMOV CX,05LOOP1: MOV AL,[SI]AND AL,00001111BINC SIMUL BLAAMADD AL,[DI]AAAMOV [DI],ALINC DIMOV [DI],AHLOOP LOOP1MOV CX,06MOV SI,OFFSET RESULT DISPL: MOV AH,02MOV DL,[SI+5]ADD DL,30HINT 21HDEC SILOOP DISPLMOV AX,4C00HINT 21HCODE ENDSEND START五、实验要求1.读懂程序,写出程序注释。
2.修改程序,实现6位数乘2位数的功能。
实验三 BCD码相乘的实验一、实验目的掌握用组合的BCD码表示数据,并熟悉怎样实现组合BCD码乘法运算。
二、实验内容实现BCD码的乘法,要求被乘数和乘数均以组合的BCD码形式存放,各占一个内存单元,乘积存放在另外两个内存单元中。
由于没有组合BCD码乘法指令,所以程序中采用将乘数1作为计数器,累加另一个乘数的方法得到计算结果。
三、程序框图四、程序清单DISPL MACROADD DL,30HMOV AH,02INT 21HENDMCRLF MACROMOV DL,0DHMOV AH,02INT 21HMOV DL,0AHMOV AH,02INT 21HENDMDA TA SEGMENTDA TA1 DB 01001000BDA TA2 DB 01110101BRESULT DW ?DA TA ENDSSTACK SEGMENT STACKSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DA TAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV DI,OFFSET RESULTMOV SI,OFFSET DATA1MOV AH,[SI]MOV CL,04SHR AH,CLMOV DL,AHDISPLMOV AL,[SI]MOV BL,ALAND AL,00001111BMOV DL,ALCRLFMOV SI,OFFSET DATA2MOV AH,[SI]MOV CL,04SHR AH,CLMOV DL,AHDISPLMOV AL,[SI]AND AL,00001111BMOV DL,ALDISPLCRLFXOR DX,DXS1: CMP BL,0JZ S2CLCMOV AL,[SI]ADC AL,DLDAAMOV DL,ALMOV AL,00HADC AL,DHDAAMOV DH,ALMOV AL,BLDEC ALDASMOV BL,ALJMP S1S2: MOV [RESULT],DXMOV SI,DXMOV CL,4SHR DH,CLMOV DL,DHDISPLMOV DX,SIAND DH,00001111BMOV DL,DHDISPLMOV DX,SIMOV CL,4SHR DL,CLMOV DX,SIAND DL,00001111BDISPLCRLFS3: MOV AX,4C00HINT 21HCODE ENDSEND START五、实验要求1.读懂源程序,写出程序注释。
2.修改程序使其不显示被乘数和乘数。
实验四字符匹配程序一、实验目的掌握提示信息的使用方法及键盘输入信息的用法。
二、实验内容编写程序,实现两个字符串比较。
如果两个字符串中有一个字符相同,显示“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.读懂源程序,写出程序注释。