微机原理与接口技术实验指导

合集下载

《微机原理及接口技术》实验指导书

《微机原理及接口技术》实验指导书

《微机原理及接口技术》实验指导书福建工程学院计算机与信息科学系计算机系统结构教研室实验一 汇编语言程序上机过程一、实验目的1.掌握EDIT 、MASM 、LINK 等软件工具的使用。

2.掌握在计算机上建立、汇编、连接、调试及运行程序的方法。

二、实验内容1.将DISP 单元中存放的一压缩BCD 码内容显示出来。

2.将BUF 单元开始的两个BCD 码相加存放到SUM 单元中,并显示结果。

3.将字节变量DISP 的内容(00H-FFH 任意值)显示出来。

三、实验准备与报告 1.了解实验操作方法,准备好实验程序和数据。

2.记录汇编、连接过程产生的错误及解决办法,设置相关的出错情况,查看汇编结果; 3.记录运行结果,更改数据再运行,记录结果。

4.实验报告主要内容:实验名称、实验目的、实验内容、<实验电路>、程序、实验结果、调试过程记录、总结。

(其它实验也按此要求书写实验报告)实验二 DEBUG 使用实验一、实验目的1.掌握DEBUG 常用命令的使用。

2.进一步了解80X86的存储器和寄存器结构。

3.进一步理解有关指令的功能与应用。

二、实验内容1.进入与退出DEBUG 。

2.用R 命令检查和修改寄存器内容并记录。

3.用D 命令显示内存单元内容并记录。

4.用E 命令修改内存单元内容并记录。

5.A 、U 、T 、P 、G 、N 、W 、L 命令使用。

程序:MOV SI ,0 MOV AX ,[SI] INC SI INC SIADD AX ,[SI] MOV BX ,AX INT 20H(1)使用A 命令输入以上程序;(2)使用U 命令查看输入的程序;(3)使用N 、W 命令将程序存盘;用N 、L 命令重新装载,用U 命令查看; (4)使用DEBUG 的D 、E 命令检查设置(DS ):0000H 起始的四个单元内容; (5)使用R 命令检查、设置有关寄存器的值;(6)分别使用T 、G 命令运行程序,注意观察有关寄存器和单元的变化。

微机原理及接口技术实验指导书(TPC-ZK-II认证)20151026

微机原理及接口技术实验指导书(TPC-ZK-II认证)20151026
7)逻辑电平开关电路
如图1.5,实验台右下方设有8个开关K7~K0,开关拨到“1”位置时开关断开,输出高电平,向下到“0”位置时开关接通输出低电平,电路中串接了保护电阻,使接口电路不直接同+5V、GND相连,防止误操作、误编程损坏集成电路。
图1.5逻辑电平开关电路
8)LED显示电路
如图1.6,实验台上设有8个发光二极管及驱动电路(输入端L7~L0),当输入信号为“1”时发光,为“0”时灭。
4)保存源程序
当前运行环境下,选择菜单栏中的“文件”菜单,菜单下拉后选择“保存”,如果是无标题文档,需在提示下输入文档的名称及选择保存的路径,单击确定后保存;否则程序自动保存当前文档显示区域中显示的文档。或者选择菜单栏中的“文件”菜单,菜单下拉后选择“另存为”,并在提示下输入文档的名称及选择保存的路径,单击确定后保存。
微机原理及接口技术
实验指导书
(2012版)
《微机原理及接口技术》课程教学团队编
2015年4月
概述/前言/课程介绍
《微机原理及接口技术实验》是电、计算机、控制等工科专业教育中的一门核心专业基础实验课,本实验由微机原理部分及接口部分组成,微机原理部分以微机指令系统,汇编程序设计为主要内容,程序设计面向16位/32位系统指今,接口部分面向3种常用的微机接口芯片8255、0832、0809开展实验,要求学生自行设计硬件电路,编程面向16位地址/数据系统,实现对接口芯片的控制并完成具体的实验要求。
汇编+链接+运行
在当前运行环境下,选择菜单栏中的“ASM编译”菜单,选择汇编+链接+运行选项则程序对当前ASM源文件进行汇编与链接,编译调试窗口中输出汇编与链接的结果,若程序汇编或链接有错,则详细报告错误信息。若汇编与链接成功,程序自动运行。

微机原理及接口技术实验指导书

微机原理及接口技术实验指导书

微机原理及接口技术实验指导书目录第一章实验平台的硬件 (I)第一节硬件结构及其特点 (1)第二节硬件电路原理与资源配置 (2)第二章实验平台的软件 (11)第一节实验程序开发集成环境 (11)第二节实验程序开发工具 (12)第三节硬件故障诊断软件 (12)第四节接口演示实验程序 (13)第五节硬件系统的安装与使用 (14)第三章DOS环境下的汇编语言上机过程 (15)第四章基本接口实验 (19)第一节并行接口实验(8255芯片实验) (19)实验一步进电机控制接口实验 (19)实验二声-光报警器接口实验 (23)第二节定时/计数实验(8253芯片实验) (26)实验三音乐发生器接口实验 (27)实验四波特率时钟发生器实验 (30)第三节串行通信接口实验(8251芯片实验) (33)实验五RS-232标准全双工查询方式异步串行通信实验 (33)实验六RS-485标准半双工中断方式异步串行通信实验 (36)第四节A/D,D/A转换器接口实验 (36)实验七A/D转换器接口实验 (38)实验八D/A转换器接口实验 (41)实验九8259应用实验—中断方式控制彩灯闪亮 (42)第五节DMA接口实验 (46)实验十8237A DMAC应用实验 (47)第一章实验平台的硬件第一节硬件结构及其特点一、硬件结构图1.1.1显示了MFID多功能接口实验平台(简称MFID)在PCI多总线微机系统中的位置。

MFID由MFID PCI驱动板、平台板实验区和可以添加的面包板实验区三大部分构成。

图1.1.1 MFID在PCI总线中的位置二、硬件特点MFID总的特征有两个,其一,适用于PCI总线;其二,采用模块化开放式结构,整个平台的硬件资源全部向用户开放。

除了可以作为多门微机课程的实验平台外,还是基于微机应用系统的开发平台。

1.MFID PCI驱动板特点⏹兼容PCI规范2.1版/2.2版⏹在Local Bus侧提供了16/32位地址线,32位数据线以及存储器读写、I/O读写等控制信号线⏹在板CPLD使系统的逻辑更为灵活⏹在板提供32Kb×8 SRAM⏹提供PCI总线模式下Local Bus侧多路中断源的识别方法2.MFID平台板特点⏹实验内容丰富,提供并、串、ADA、定时计数和SRAM五大类接口⏹先进的短路隔离保护系统,确保实验系统安全可靠和“零等待恢复”⏹提供PCI和可选的USB两种总线与主机连接⏹平台板采用整体(排线)与分散(单线)两种接线方式,实验组态灵活⏹平台板元件采用分区定位,便于查找所需接线孔的位置⏹开放式模块化设计,允许任意添加实验功能模块,可扩展性好⏹模块功能独立,可以任意组合各模块进行综合性实验3.MFID面包板特点⏹可以任意搭建实验模块,与平台板的资源一起,构成一个硬件设计的操作平台,以便进行开放性实验,尤其适合设计与制作型实验第二节硬件电路原理与资源配置一、MFID PCI总线驱动板1.MFID PCI总线驱动板的逻辑结构MFID PCI总线驱动板逻辑结构如图1.2.1所示。

微机原理实验指导书

微机原理实验指导书
主界面窗口如下,主要分为三部分:程序编辑区、寄存器/变量/堆栈区和输出 区,下面分别加以介绍。
1
微机原理与接口技术实验指导书
微机原理实验室·BIM
1.程序编辑区: 位于界面右上部,用户可在程序编辑区用“新建”命令打开一个新文档或用 “打开”命令打开一个已存在的文档,在文档中用户可编辑程序。用户可在程序编 辑区打开多个文档,点击文档标签可激活任一文档。编译、链接、加载以及调试命 令只针对当前活动文档。用户调试程序时,调试界面亦在文档中显示。 2.寄存器/变量/堆栈区: 位于界面左上部,包括三个部分:寄存器区、变量区和堆栈区。寄存器区和变 量区用于实时监视寄存器和变量,也能够修改寄存器和变量的值,堆栈区主要用于 实时监视堆栈寄存器。点击寄存器区标签可观察和修改寄存器,点击变量区标签可 观察和修改变量,点击堆栈区标签可观察堆栈寄存器。执行相关操作后寄存器、变 量和堆栈寄存器的值自动刷新,如果寄存器区刷新后的值和刷新前的值相同,则显 示为蓝色,如果不同,则显示为红色。变量区和堆栈区刷新前和刷新后都为蓝色。 想修改寄存器或变量,用鼠标左键单击某寄存器或变量,当寄存器或变量值的区域 变为蓝色后输入修改后的值,然后回车。如果修改的是寄存器,输入的值的长度与 寄存器的长度相同,回车后修改正确,如果输入的值的长度和寄存器的长度不相同, 寄存器的值没有被修改,保持原来的值且可以继续修改该寄存器的值。如果修改的 是变量,输入的值的长度与变量的长度相同,回车后修改正确,如果输入的值的长 度小于变量的长度,回车后输入值的前面自动添零,如果输入值的长度大于变量的 长度,回车后输入值的后面的多余部分自动删除。堆栈区只用于监视,不能够被修 改。 3.输出区: 位于界面下部,输出区包含三个部分:编译区、调试区和结果区。编译区显示 编译和链接的结果,如果编译时有错误或警告,双击错误或警告信息,错误标识符 会指示到相应的有错误或警告的行。调试区主要用于 DEBUG 调试。结果区主要用于 显示程序加载结果、程序运行输出结果和复位结果。结果区中有“加载中,请稍

《微机原理与接口技术》实验指导书

《微机原理与接口技术》实验指导书

《微机原理与接口技术》课程实验指导书实验内容EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求✧实验一实验系统及仪器仪表使用与汇编环境✧实验二简单程序设计实验✧实验三存储器读/写实验✧实验四简单I/0口扩展实验✧实验五8259A中断控制器实验✧实验六8253定时器/计数器实验✧实验七8255并行口实验✧实验八DMA实验✧实验九8250串口实验✧实验十A/D实验✧实验十一D/A实验✧实验十二8279显示器接口实验EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求EL-8086-III微机原理与接口技术教学实验系统是为微机原理与接口技术课程的教学实验而研制的,涵盖了目前流行教材的主要内容,该系统采用开放接口,并配有丰富的软硬件资源,可以形象生动地向学生展示8086及其相关接口的工作原理,其应用领域重点面向教学培训,同时也可作为8086的开发系统使用。

可供大学本科学习《微机原理与接口技术(8086)》,《单片机应用技术》等课程提供基本的实验条件,同时也可供计算机其它课程的教学和培训使用。

为配合使用EL型微机教学实验系统而开发的8086调试软件,可以在WINDOWS 2000/XP等多种操作系统下运行。

在使用本软件系统调试程序时,可以同时打开寄存器窗口、内存窗口、反汇编窗口、波形显示窗口等等,极大地方便了用户的程序调试。

该软件集源程序编辑、编译、链接、调试与一体,每项功能均为汉字下拉菜单,简明易学。

经常使用的功能均备有热键,这样可以提高程序的调试效率。

一、基本特点EL型微机教学实验系统是北京精仪达盛科技有限公司根据广大学者和许多高等院校实验需求,结合电子发展情况而研制的具有开发、应用、实验相结合的高科技实验设备。

旨在尽快提高我国电子科技发展水平,提高实验者的动手能力、分析解决问题能力。

系统具有以下特点:1、系统采用了模块化设计,实验系统功能齐全,涵盖了微机教学实验课程的大部分内容。

《微机原理与接口技术》实验指导书

《微机原理与接口技术》实验指导书

微机原理与接口技术实验指导书实验一:微处理器概述及数据传输实验一、实验目的•了解微处理器的基本概念和工作原理;•学习数据传输的基本知识;•掌握使用微处理器进行数据传输的方法。

二、实验器材•1个微处理器开发板;•1个串行通信模块;•相应的连接线。

三、实验内容在该实验中,你将学习如何使用微处理器进行数据传输,具体实验步骤如下:1.将开发板和串行通信模块连接起来;2.将数据发送器连接到串行通信模块的发送端口,将数据接收器连接到串行通信模块的接收端口;3.通过开发板上的开关设置要发送的数据;4.通过串行通信模块将数据发送到计算机;5.在计算机上使用相应的软件接收数据,并验证接收到的数据是否正确。

四、实验步骤1.将开发板和串行通信模块连接起来,确保连接正确并稳定;2.将数据发送器插入串行通信模块的发送端口,将数据接收器插入串行通信模块的接收端口;3.在开发板上的开关上设置要发送的数据;4.打开计算机上的串行通信软件,配置正确的串口号和波特率;5.点击软件的接收按钮,准备接收数据;6.在开发板上的开关上切换到发送模式,并观察串行通信模块的指示灯是否正常闪烁;7.在串行通信软件上观察接收到的数据是否与设置的数据一致;8.如果数据传输正常,则实验完成。

五、实验注意事项1.连接线务必稳固连接,确保数据传输正常;2.阅读并理解实验器材的使用说明书;3.注意保持实验环境的整洁,避免影响实验结果;4.在进行数据传输时,确保计算机已正确安装了相应的驱动程序。

六、实验总结通过这次实验,我们初步了解了微处理器的基本概念和工作原理,学习了数据传输的基本知识,并掌握了使用微处理器进行数据传输的方法。

我们在实验中成功地连接了开发板和串行通信模块,并成功地进行了数据传输。

通过实验,我们发现数据传输过程中需要注意连接线的稳固连接,以及计算机是否安装了相应的驱动程序。

实验的结果验证了我们的操作方法的正确性,同时也为后续实验奠定了基础。

注意:本指导书旨在引导实验过程,实验过程中如有任何危险情况,请立即停止实验并寻求实验室管理员的帮助。

武汉理工实验指导书-微机原理及接口技术

武汉理工实验指导书-微机原理及接口技术

《微机原理及接口技术B》实验指导书※实验环境实验设备——唐都TD-PITE 80X86 微机原理及接口技术微机实验平台。

每套设备包括实验箱一台、配备安装有Wmd86联机操作软件的PC微机一台、连接线及电源线。

图1 实验平台连接示意图图2 唐都TD-PITE实验箱图3 唐都TD-PITE实验箱布局图操作步骤:1、打开电脑。

2、插好实验平台电源线。

3、通过串口连接线连接实验箱与微机。

4、打开Wmd86联机操作软件。

5、检查端口是否选择好。

6、进行实验接线。

7、录入汇编程序。

8、编译、链接、下载,观察结果。

图4 Wmd86联机操作软件实验一定时器的使用1.实验目的和意义●熟悉接口试验箱的使用环境。

●体会接口电路通过外部总线与处理器连接原理。

●掌握可编程芯片8253的编程方法。

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

3.实验内容1、编写程序,将8254 的计数器0 和计数器1 都设为方式3,用信号源1MHz 作为CLK0时钟,OUT0 为波形输出1ms 方波,再通过CLK1 输入,OUT1 输出1s 方波。

2、编写程序,将8254 的计数器0 设为方式3,计数值为十进制数4,用单次脉冲KK1+作为CLK0 时钟,OUT0 连接MIR7,每当KK1+按动 5 次后产生中断请求,在Wmd86程序运行结果栏上显示字符M 。

改变计数值,验证8254 的计数功能。

4.背景知识〔1〕8254的功能➢8253具有三个独立的16位计数器〔0#~2#通道〕;➢每个通道有6种工作方式;➢可以进行二进制或十进制计数,计数方式为减1计数。

〔最高计数频率2.6MHZ〕〔2〕8254 的内部结构和外部引脚图1.1 8254内部结构图1.2 8254外部引脚〔3〕8254 的工作方式●方式0:计数到0 结束输出正跃变信号方式。

●方式1:硬件可重触发单稳方式。

●方式2:频率发生器方式。

●方式3:方波发生器。

●方式4:软件触发选通方式。

8255实验-微机原理与接口技术

8255实验-微机原理与接口技术

实验线路连接
(1) 8255A芯片PC0~ PC7插孔依次接K1~ K8。
(2) 8255A芯片PB0~PB7插孔依次接L1 ~ L8。
(3) 8255A的CS插孔CS-8255接译码输出Y7插
孔。
要求: ① 读懂系统程序中有关 8255A 的部分。
包括:端口地址、初始化编程、 二极管发光情况与开关状态间的对应关系
并使其根据开关 K1~ K8 的状态发光。 · 以 K8 作为总开关,
若 K8打开(0),则 L1~ L8同时熄灭; 若 K8闭和(1),则 L1~ L7由K1~ K7控 制。
IOCONPT EQU 0073H IOCPT EQU 0072H IOBPT EQU 0071H IOAPT EQU 0070H
② 执行程序,并进行观察,记录。 PC 口 8 位接 8 个开关 K1~ K8 , PB 口 8 位接 8 个 LED 发光二极管 L1~ L8 , 并使其根据开关 K1~ K8 的状态发光。
③ 改变电路接法并修改程序,要求实现:
· PA 口 8 位接 8 个开关 K1~ K8 ,
PB 口 8 位接 8 个发光二极管 L1~ L8
IOLED: CALL FORMAT CALL LEDDISP
MOV AL,90H B口输出
;10010000 写方式控制字 方式0 A口输入
MOV DX,IOCONPT
OUT P
IOLED1: MOV DX,IOAPT
IN AL,DX
MOV DX,IOBPT
OUT DX,AL
并行接口 8255 的应用
1、实验目的 掌握8255A和微机接口方法。 掌握8255A的工作方式和编程原理。
2、实验内容
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《微机原理及接口技术》实验指导书杨霞周林英编长安大学电子与控制工程学院2009年9月前言本实验指导是为适应各大、中专院校开设微机原理及应用方面的课程需做大量软硬件实验的需要而编写的,供学生编程用。

完成本实验指导中的实验,可使学生基本掌握8086/8088的结构原理、接口技术、程序设计技巧。

手册中详细叙述了各实验的目的、内容,列出了接线图、程序框图和实验步骤。

主要学习内容为80X86语言实验环境配置、汇编源语言格式、输出字符、循环结构、子程序调用,以及加减乘除等指令操作、通用接口芯片的接口编程与使用。

所有实验都是相互独立的,次序上也没有固定的先后关系,在使用本书进行教学时,教师可根据教学要求,选择相应实验。

学习结束后,要求学生能够独立编写出综合加减乘除等指令,以及循环结构、子程序调用等程序控制程序、看懂一般接口芯片电路图。

目录实验一清零程序 (4)实验二拆字程序 (6)实验三数据区移动 (8)实验四多分支程序设计 (10)实验五多字节减法运算 (13)实验六显示程序 (19)实验七 8251串口实验 (22)实验八步进电机控制 (28)附录一汇编语言的存储模型 (38)附录二 8279键值显示程序 (39)实验一清零程序一、实验目的掌握8088汇编语言程序设计和调试方法。

二、实验设备STAR系列实验仪一套、PC机一台。

三、实验内容把RAM区内4000H-40FFH单元的内容清零。

四、程序框图五、源程序清单.MODEL TINY.STACK 100.DATA.CODEORG 0100HSTART:MOV BX,4000HMOV AX,0000HMOV CX,80HL1: MOV [BX],AXINC BXINC BXLOOP L1JMP $END START六、实验步骤手动修改RAM区内4000H-40FFH的内容,连续或单步方式运行程序,检查4000-40FFH内容执行程序前后的变化。

七、思考1、把4000H-40FFH中的内容改成FF,如何修改程序。

2、把4000H-40FFH中的内容改成00~FF,如何修改程序。

实验二拆字程序一、实验目的掌握汇编语言设计和调试方法。

二、实验设备STAR系列实验仪一套、PC机一台。

三、实验内容把4000H单元的内容拆开,高位送4001H低位,低位送4002H低位,4001H、4002H 的高位清零,一般本程序用于把数据送显示缓冲区时用。

四、程序框图五、源程序.MODEL TINY.STACK.DATA.CODESTART:MOV BX,4000HMOV AL,[BX]MOV AH,ALMOV CL,4SHR AH,CLINC BXMOV [BX],AHAND AL,0FHINC BXMOV [BX],ALJMP $六、实验步骤手动修改4000H的内容,用连续或单步方式运行程序,检查4000H-4002H 中内容变化情况。

七、思考1.如何用断点方式调试本程序。

2.把4000H、4001H单元低位的内容合成一字送4002H单元。

实验三数据区移动一、实验目的掌握RAM中的数据操作。

二、实验设备STAR系列实验仪一套、PC机一台。

三、实验内容把4100H源RAM区首址内的16字节数据传送到4200H目标RAM区。

四、设计思想程序要求把内存中某一数据区(称为源数据块)传送到另一存储区(称为目的数据块)。

源数据块和目的数据块在存储器中可能有三种情况,如下图:对于两个数据块分离的情况,如图(a),数据的传送从数据块的首址开始,或者从数据块的末址开始均可。

但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏。

可以得出以下结论:当源数据首址>目的块首址时,从数据块首址开始传送数据。

当源数据块首址<目的块首址时,从数据块末地址开始传送数据。

五、程序框图六、源程序清单.MODEL TINY.STACK.DATA.CODEORG 0100HSTART0:MOV CX,0010HMOV SI,4100HMOV DI,4200HCMP SI,DIJA A42ADD SI,CXADD DI,CXA41: DEC SIDEC DIMOV AL,[SI]MOV [DI],ALLOOP A41JMP $A42: MOV AL,[SI]MOV [DI],ALINC SIINC DILOOP A42JMP $END START0七、实验步骤调试运行3060程序,检查4100-410FH中内容是否和4200-420FH中内容完全一致。

八、思考1.把4200H源RAM区首址内的16字节数据传送到4100H目标RAM区。

2.把4100H源RAM区首址内的16字节数据传送到410AH目标RAM区。

实验四多分支程序设计一、实验目的掌握汇编语言的编程,熟悉程序散转的设计方法。

二、实验设备STAR系列实验仪一套、PC机一台。

三、实验内容编写程序,根据接收到的键值,作不同的处理。

四、设计思想多分支结构相当于一个多路开关,在程序设计中通常是根据某寄存器或某单元的内容进行程序转移。

在设计多分支转移程序时,如果分支太多,则平均转移速度太慢,本实验采用转移地址表实现多分支转移,可以提高平均转移速度。

五、程序框图散转程序流程框图六、实验步骤3、使用各种手段调试程序3、结果显示在G5区的数码管上七、源程序清单;调用GetKeyB返回键值,根据键值执行相应的程序.MODEL TINYEXTRN Display8:NEAR, GetKeyB:NEAR.STACK 100.DATABUFFER DB 8 DUP(?).CODESTART: MOV AX,@DATAMOV DS,AXMOV ES,AXNOPSTART1: CALL GetKeyB ;键值存放在AL中CMP AL,8JB START2XOR AL,AL ;大于7,作0处理START2: XOR AH,AHMOV BX,AXSHL BX,1LEA DI,Table_1JMP CS:[DI][BX]Table_1: DW Key0, Key1, Key2, Key3, Key4, Key5, Key6, Key7 Key0: MOV AL,1JMP KeyKey1: MOV AL,2JMP KeyKey2: MOV AL,3JMP KeyKey3: MOV AL,4JMP KeyKey4: MOV AL,5JMP KeyKey5: MOV AL,6JMP KeyKey6: MOV AL,7JMP KeyKey7: MOV AL,8JMP KeyKey: MOV CX,8LEA DI,BUFFERREP STOSBLEA SI,BUFFERCALL Display8MOV CX,60000LOOP $ ;延时JMP START1END START实验五多字节减法运算一、实验目的掌握BCD码、补码,熟悉多文件、多模块汇编语言程序设计的方法。

二、实验设备STAR系列实验仪一套、PC机一台。

三、实验内容从键盘上输入4位被减数、减数,实现双字节BCD码(四位数)的减法,结果显示在数码管上;进一步熟悉使用断点、单步进入、单步、运行到光标处、修改PC指针、全速运行等各种调试手段;熟悉查看特殊功能寄存器、CS段、DS段存贮器的各种方法。

四、程序框图双字节十进制减法程序框图五、实验步骤123、结果显示在G5区的数码管上六、源程序清单.MODEL TINY.STACK 100.DATAResult DB 5 DUP(?)minuend DW 88H,44H,66H,00H,99H ;被减数N1 = $-minuend ;被减数长度subtrahend DW 22H,55H,88H ;减数N2 = $-subtrahend ;减数长度.CODESTART:MOV AX,@DATAMOV DS,AXMOV ES,AXPUSH DSXOR AX,AXPUSH AXSTD ;清方向标志;显示被减数; LEA SI,minuend; ADD SI,N1-1; MOV CX,N1; CALL EX21; CALL PP2; ;显示减数; LEA SI,subtrahend; ADD SI,N2-1; MOV CX,N2; CALL EX21; CALL PP2;计算结果CALL EX22;显示结果LEA SI,minuendADD SI,N1-1MOV CX,N1CALL EX21jmp $;模块名称:EX21;功能:显示运算结果;入口参数:;出口参数:EX21 PROC nearPUSH AXPUSH DXF: LODSBLEA BX,ResultADD BX,CXMOV [BX],AL;用十六进制数显示一个字节的内容; MOV DL,' ' ;显示一个空格符; MOV AH,2 ;; INT 21H ;LOOP FPOP DXPOP AXRETEX21 ENDP;模块名称:EX22;功能:进行多字节减法运算;入口参数:;出口参数:相减的那结果存在EX22 PROC nearLEA SI,minuendLEA DI,subtrahendMOV BX,N1MOV CX,N2CLCMM: MOV AL,[DI]SBB [SI],ALINC DIINC SIDEC BXLOOP MMM1: JZ EXIT22;因LOOP指令对标志位无影响,所以此处的转移是对DEC BX而言。

;处理被减数的位数多于减数的位数的情况 JNC EXIT22 ;无借位则直接退出SBB BYTE PTR [SI],0 ;影响CF标志位INC SI ;不影响CF标志位DEC BX ;不影响CF标志位,影响ZF标志位JMP M1EXIT22: RETEX22 ENDPEND start.MODEL TINYEXTRN Display8:NEAR, GetBCDKey:NEAREXTRN F1:BYTE.STACK 100.DATABUFFER DB 8 DUP(?)minuend DW 1 DUP(?) ;被减数subtrahend DW 1 DUP(?) ;减数.CODESTART:MOV AX,@DATAMOV DS,AXMOV ES,AXNOPMOV F1,0 ;先清除显示,再接收键输入START1:LEA DI,minuendMOV CX,4 ;按键次数CALL GetBCDKey ;得到双字节十进制数(被减数)MOV F1,1 ;接收到第一个键,才清除显示LEA DI,subtrahendMOV CX,4 ;按键次数CALL GetBCDKey ;得到双字节十进制数(减数)MOV AX,minuendMOV BX,subtrahendMOV DL,10HCMP AX,BXJNB START2XCHG AX,BXMOV DL,11H ;负数START2:SUB AL,BL ;低位DASXCHG AL,AHSBB AL,BH ;高位DASXCHG AL,AHCLDLEA DI,BUFFER ;存放显示结果CALL B1toB2 ;低位MOV AL,AHCALL B1toB2 ;高位MOV AL,10H ;最高三位消隐STOSBSTOSBSTOSBSTOSBLEA SI,BUFFER+3MOV CX,3CALL BlackDisplay ;将高位0消隐LEA SI,BUFFERCALL Display8JMP START1;将一个字节压缩BCD码转换成二个字节非压缩BCD码B1toB2PROC NEARPUSH AXAND AL,0FHSTOSBPOP AXAND AL,0F0HROR AL,4STOSBRETB1toB2ENDPBlackDisplay PROC NEAR ;将高位0消隐BlackDisplay1:MOV AL,[SI]CMP AL,0JNZ ExitMOV AL,10HMOV [SI],ALDEC SILOOP BlackDisplay1Exit:CLDMOV [SI+1],DLRETBlackDisplay ENDPEND START七、思考从键盘上输入4位被加数、加数,实现双字节BCD码(四位数)的加法,结果显示在数码管上。

相关文档
最新文档